<p>设置分数后,您没有进行小于零的检查</p>
<p>为了测试,我添加了以下几行:</p>
<pre class="lang-py prettyprint-override"><code>#Stuff before...
p2dice1 = random.randint(1,6)
p2dice2 = random.randint(1,6)# roll dice using cpu.
p2dicecomb = p2dice1+p2dice2
print(p2score)
print(p2dicecomb)
if p2dicecomb % 2 == 0:
p2score = p2score+10# compare the score to see if odd or even.
if p2dicecomb % 2 == 1:
p2score = p2score-5
print ("score is", p2score)
</code></pre>
<p>您将看到第一次打印<code>p2score</code>时,它是0。如果<code>p2dicecomb</code>是奇数,那么<code>p2score</code>变成0-5,即-5</p>
<p>稍微重新排列代码,在</em>减法后设置检查<em>,例如:</p>
<pre class="lang-py prettyprint-override"><code>import math
import random
print("successfully imported modules.")
roundno=0
p1score=0
p2score=0
p1dicecomb=0
p2dicecomb=0
p1dice1=0
p1dice2=0
p2dice1=0
p2dice2=0 # assign values.
while roundno < 6:
if p2score < -1 or p2score == -1:
p2score = 0
if p1score < -1 or p1score == -1:
p1score = 0
print("round number is round", roundno) #new round always begins on player 1 turn.
print("player 1")
p1dice1 = random.randint(1,6)
p1dice2 = random.randint(1,6)# roll dice using cpu.
p1dicecomb = p1dice1+p1dice2
if p1dicecomb % 2 == 0:
p1score = p1score+10# compare the score to see if odd or even.
if p1dicecomb % 2 == 1:
p1score = p1score-5
if p1score < -1 or p1score == -1:
p1score = 0
print ("score is", p1score)
print("dice 1 is", p1dice1)
print("dice 2 is", p1dice2)
input("press enter to continue rolling dice.")
print ("player 2")
p2dice1 = random.randint(1,6)
p2dice2 = random.randint(1,6)# roll dice using cpu.
p2dicecomb = p2dice1+p2dice2
if p2dicecomb % 2 == 0:
p2score = p2score+10# compare the score to see if odd or even.
if p2dicecomb % 2 == 1:
p2score = p2score-5
if p2score < -1 or p2score == -1:
p2score = 0
print ("score is", p2score)
print("dice 1 is", p2dice1)
print("dice 2 is", p2dice2)
roundno = roundno+1
input("press enter to continue rolling dice.")
</code></pre>
<p>(也可以导入<code>math</code>,但不要使用它!)</p>