【发布时间】:2019-03-15 17:52:18
【问题描述】:
我目前正在用 Python 3.6 为骰子游戏编写代码,我知道我的代码在这方面有点偏离,但是,我真的只是想知道如何开始我的 while 循环。游戏说明如下...
人类玩家与计算机对战。
玩家 1 掷骰,直到他们获胜、决定保住或掷出 1。玩家 2 也是如此。
他们轮流掷两个骰子,骰子的总数相加,除非掷出 1。
如果掷出一个 1,则不会增加分数,轮到下一个人。如果掷出两个 1,您将失去所有分数,轮到下一个人。
第一个达到 100 分的玩家获胜。
我的游戏运行良好,直到玩家 1 和玩家 2 都按“y”来保持背靠背。然后游戏退出玩家之间的切换,直到“n”再次被击中。知道为什么吗? 有人告诉我我需要变量来决定轮到谁,但我不确定如何将它们合并到我的代码中。 任何帮助将不胜感激。
import random
def main():
print("Welcome to the Two Dice Pig Game. You are Player 1!")
Player1 = 0
Player2 = 0
while(Player1<100 and Player2<100):
p1dice=random.randrange(1,7)
p1dice2=random.randrange(1,7)
Player1+=p1dice+p1dice2
print("Player 1 dice 1 =",p1dice)
print("Player 1 dice 2 =",p1dice2)
print("Player 1 dice total =",Player1)
print("Does player 1 want to hold?")
choose1 = input("Enter y for yes or n for no.")
if(choose1=="n"):
p1dice=random.randrange(1,7)
p1dice2=random.randrange(1,7)
Player1+=p1dice+p1dice2
print("Player 1 dice 1 =",p1dice)
print("Player 1 dice 2 =",p1dice2)
print("Player 1 dice total =",Player1)
if(Player1>=100):
print("Player 1 wins!")
else:
print("Does player 1 want to hold?")
choose1 = input("Enter y for yes or n for no.")
while(choose1=="y"):
print("It's player 2's turn.")
p2dice=random.randrange(1,7)
p2dice2=random.randrange(1,7)
Player2+=p2dice+p2dice2
print("Player 2 dice 2 =",p2dice)
print("Player 2 dice 2 =",p2dice2)
print("Player 2 dice total =",Player2)
print("Does player 2 want to hold?")
choose2 = input("Enter y for yes or n for no.")
while(choose2=="n"):
p2dice=random.randrange(1,7)
p2dice2=random.randrange(1,7)
Player2+=p2dice+p2dice2
print("Player 2 dice 2 =",p2dice)
print("Player 2 dice 2 =",p2dice2)
print("Player 2 dice total =",Player2)
print("Does player 2 want to hold?")
choose2 = input("Enter y for yes or n for no.")
while(choose2=="y"):
print("It's player 1's turn.")
p1dice=random.randrange(1,7)
p1dice2=random.randrange(1,7)
Player1+=p1dice+p1dice2
print("Player 1 dice 2 =",p1dice)
print("Player 1 dice 2 =",p1dice2)
print("Player 1 dice total =",Player1)
print("Does player 1 want to hold?")
choose2 = input("Enter y for yes or n for no.")
main()
【问题讨论】:
-
一旦进入
while(choose1=="y")循环,choose1将无法改变,因此它永远不会退出该循环。您可能想尝试修复这部分逻辑,看看是否还有问题。
标签: python while-loop