Python 两人骰子游戏的得分问题
这是一个两个掷骰子5次的用户的游戏。如果骰子总数为偶数,则玩家获得10分;如果是奇数,他们损失5Python 两人骰子游戏的得分问题,python,python-3.x,dice,Python,Python 3.x,Dice,这是一个两个掷骰子5次的用户的游戏。如果骰子总数为偶数,则玩家获得10分;如果是奇数,他们损失5 total_score2 = 0 total_score1 = 0 rounds = 0 playerOnePoints = 0 playerTwoPoints = 0 total_score2 = total_score2 + playerTwoPoints total_score1 = total_score1 + playerOnePoints rounds = rounds + 1 num
total_score2 = 0
total_score1 = 0
rounds = 0
playerOnePoints = 0
playerTwoPoints = 0
total_score2 = total_score2 + playerTwoPoints
total_score1 = total_score1 + playerOnePoints
rounds = rounds + 1
number = random.randint(1,6)
number2 = random.randint(1,6)
playerOnePoints = number + number2
print("-------------------------------------------")
print("Round",rounds)
print("-------------------------------------------")
print("Player 1's turn Type 'roll' to roll the dice")
userOneInput = input(">>> ")
if userOneInput == "roll":
time.sleep(0.5)
print("Player 1's first roll is", number)
print("Player 1's second roll Type 'roll' to roll the dice")
userOneInput = input(">>> ")
if userOneInput == "roll":
time.sleep(0.5)
print("player 1's second roll is", number2)
if playerOnePoints % 2 == 0:
playerOnePoints = playerOnePoints + 10
print("Player 1's total is even so + 10 points")
print("-------------------------------------------")
print("Player 1 has",playerOnePoints, "points")
else:
playerOnePoints = playerOnePoints - 5
print("player 1's total is odd so -5 points")
print("-------------------------------------------")
print("Player 1 has",playerOnePoints, "points")
number = random.randint(1,6)
number2 = random.randint(1,6)
playerTwoPoints = number + number2
print("-------------------------------------------")
print("Player 2's turn Type 'roll' to roll the dice")
userTwoInput = input(">>> ")
if userTwoInput == "roll":
time.sleep(0.5)
print("Player 2's first roll is", number)
print("Player 2's second roll Type 'roll' to roll the dice")
userTwoInput = input(">>> ")
if userTwoInput == "roll":
time.sleep(0.5)
print("player 2's second roll is", number2)
if playerTwoPoints % 2 == 0:
playerTwoPoints = playerTwoPoints + 10
print("Player 2's total is even so + 10 points")
print("-------------------------------------------")
print("Player 2 has",playerTwoPoints, "points")
else:
playerTwoPoints = playerTwoPoints - 5
print("player 2's total is odd so -5 points")
print("-------------------------------------------")
print("Player 2 has",playerTwoPoints, "points")
错误的是,假设一个用户掷1和2,加起来是3,这是一个奇数,游戏将从3中减去5,使总数为-2,但我不希望它变成负数,我希望这样,如果他们真的得到了mius分数,它会说他们得到了0分,而不是负分在减去玩家的分数后,你可以使用max() 如果PlayerPoints为负值,则为0;如果PlayerPoints为正值,则为0 也可以使用abs()来执行此操作
def x(number):
return (abs(number)+number)/2
x(-2) # This would return 0
x(2) # This would return 2
PSM答案的另一种选择是使用
if
语句,以简化:
playerOnePoints = playerOnePoints - 5
if playerOnePoints < 0:
playerOnePoints = 0
请提供一个最小的,完整的,可验证的例子,谢谢你,真不敢相信我一直在努力解决这个问题这么简单ages@colkat406不客气。如果成功,请将其标记为答案。
playerOnePoints = playerOnePoints - 5
if playerOnePoints < 0:
playerOnePoints = 0
# playerOnePoints = playerOnePoints - 5 # Delete this line and just use below
if playerOnePoints >= 5:
playerOnePoints = playerOnePoints - 5