我是编程新手。我已经为石头布剪刀游戏编写了代码,但是有一个bug我似乎无法修复。当游戏结束时,用户会被问到是否想再玩一次。如果用户第一次回答“是”,然后再次播放,第二次回答“否”,计算机出于某种原因再次询问用户是否要再次播放。在这种情况下,用户必须输入no。这是因为尽管用户回答“否”,但答案会被重置为“是”,然后再次返回。如何修复?你知道吗
# This code shall simulate a game of rock-paper-scissors.
from random import randint
from time import sleep
print "Welcome to the game of Rock, Paper, Scissors."
sleep(1)
def theGame():
playerNumber = 4
while playerNumber == 4:
computerPick = randint(0,2)
sleep(1)
playerChoice = raw_input("Pick Rock, Paper, or Scissors. Choose wisely.: ").lower()
sleep(1)
if playerChoice == "rock":
playerNumber = 0
elif playerChoice == "paper":
playerNumber = 1
elif playerChoice == "scissors":
playerNumber = 2
else:
playerNumber = 4
sleep(1)
print "You cookoo for coco puffs."
print "You picked " + playerChoice + "!"
sleep(1)
print "Computer is thinking..."
sleep(1)
if computerPick == 0:
print "The Computer chooses rock!"
elif computerPick == 1:
print "The Computer chooses paper!"
else:
print "The Computer chooses scissors!"
sleep(1)
if playerNumber == computerPick:
print "it's a tie!"
else:
if playerNumber < computerPick:
if playerNumber == 0 and computerPick == 2:
print "You win!"
else:
print "You lose!"
elif playerNumber > computerPick:
if playerNumber == 2 and computerPick == 0:
print "You lose!"
else:
print "You win!"
replay()
def replay():
sleep(1)
playAgain = "rerun"
while playAgain != "no":
playAgain = raw_input("Would you like to play again?: ").lower()
if playAgain == "yes":
sleep(1)
print "Alright then brotha."
sleep(1)
theGame()
elif playAgain == "no":
sleep(1)
print "Have a good day."
sleep(1)
print "Computer shutting down..."
sleep(1)
else:
sleep(1)
print "What you said was just not in the books man."
sleep(1)
theGame()
您应该在调用
theGame
之后中断循环。想象一下你决定再玩15次。然后在堆栈上有15个replay
循环,等待询问您是否要再次播放。因为playAgain
在每个循环中都是"yes"
,所以每个循环都会再次询问您,因为playAgain
不是"no"
这是因为调用堆栈的创建方式。你知道吗
第一次播放并输入
yes
再次播放时,您正在创建另一个对theGame()
的函数调用。函数调用完成后,您的程序将继续执行while
循环,并询问他们是否要再次播放,而不管他们是否输入了no
,因为该输入是第二次调用theGame()
。你知道吗若要解决此问题,请在调用
theGame()
之后添加一个break
或将playAgain
设置为no
,当它们输入yes
相关问题 更多 >
编程相关推荐