【发布时间】:2019-03-06 01:57:18
【问题描述】:
程序应该随机选择哪个玩家先走。它 应保持每个玩家的总分,并交替轮流 电脑玩家,直到一名玩家以分数结束其回合 100 或更高。
这是我尝试解决问题的方法:
import random
print("Well, hello there")
def roll_the_dice():
dice_value = random.randint(1,6)
return dice_value
def roll_AI(player):
point = 0
checker = 1
while (checker==1):
dice_value = roll_the_dice()
print("- rolled a :" , dice_value)
if dice_value==1:
print("Pigged out, mate!")
point=0
checker=0
else:
point += dice_value
print("Your total be: ",point)
print("Turns over, mate!")
return point
playerOne = 0 #Score of P1
playerTwo = 0 #Score of P2
while (playerOne<100 and playerTwo<100):
whos_turn = random.randint(1,2)
if (whos_turn==1):
print("Initial point of both of these bots be 0.")
dice_value = roll_AI(1)
playerOne+=dice_value
print("Now, player one score: ",playerOne)
else:
dice_value = roll_AI(2)
playerTwo += dice_value
print("Now, player two score: ",playerTwo)
print("GAMES OVER!")
print("Player One:",playerOne)
print("Player Two:",playerTwo)
if playerOne>playerTwo:
print("Player one wins!")
elif playerTwo>playerOne:
print("Player two wins!")
else:
print("ITS A DRAW!.")
这是程序应该运行的示例输出:
Player One’s score: 0
Player Two’s score: 0
It’s Player One’s turn
- rolled a 1
Pigged out!
Total turn score = 0
Player One’s score: 0
Player Two’s score: 0
It’s Player Two’s turn
- rolled a 6
- rolled a 2
...
Player One’s score: 85
Player Two’s score: 88
It’s Player One’s turn
- rolled a 2
- rolled a 6
- rolled a 2
- rolled a 4
- rolled a 3
Total turn score = 17
Final score: 102 vs 88
Player One wins!
我的程序正在运行一个无限循环。有人可以指导我哪里出错了吗?
【问题讨论】:
-
尝试使用调试器并单步执行代码。 iPython 有一个很好的交互式调试器,具有很好的自动完成功能。
标签: python python-3.x statistics probability dice