我正在尝试创建这个游戏,但我被整个记分器的生活和如何打破while循环。在
player = input("Welcome! Let's play Rock, Paper, Scissors, Lizard, Spock. You have five lives. Press enter to start.")
from random import randint
t = ["rock", "paper", "scissors", "lizard", "spock"]
computer = t[randint(0,4)]
player = False
while player == False:
lives = 5
score = 0
player = input("rock, paper, scissors, lizard, spock?")
print("Computer plays",computer)
if player == computer:
print("Tie!")
score + 1
elif player == "rock":
if computer == "paper":
print("You lose!", computer, "covers", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
elif computer == "lizard":
print("You win!", player, "crushes", computer)
score + 2
elif computer == "spock":
print("You lose!", computer, "vaporises", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
else:
print("You win!", player, "smashes", computer)
score + 2
elif player == "paper":
if computer == "scissors":
print("You lose!", computer, "cuts", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
elif computer == "lizard":
print("You lose!", computer, "eats", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
elif computer == "spock":
print("You win!", player, "disproves", computer)
score + 2
else:
print("You win!", player, "covers", computer)
score + 2
elif player == "scissors":
if computer == "rock":
print("You lose...", computer, "smashes", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
elif computer == "spock":
print("You lose!", computer, "smashes", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
elif computer == "lizard":
print("You win!", player, "decapitates", computer)
score + 2
else:
print("You win!", player, "cuts", computer)
score + 2
elif player == "spock":
if computer == "lizard":
print("You lose!", computer, "poisons", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
elif computer == "scissors":
print("You win!", player, "smashes", computer)
score + 2
elif computer == "rock":
print("You win!", player, "vaporises", computer)
score + 2
else:
print("You lose!", computer, "disproves", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
elif player == "lizard":
if computer == "spock":
print("You win!", player, "poisons", computer)
score + 2
elif computer == "rock":
print("You lose!", computer, "crushes", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
elif computer == "paper":
print("You win!", player, "eats", computer)
score + 2
else:
print("You lose!", computer, "decapitates", player)
lives - 1
if lives == 0:
print("Your socre is", score)
break
else:
print("That's not a valid play!")
player = False
computer = t[randint(0,4)]
一些建议,以获得管理
score
计数器的预期行为,lives
以及如何中断while循环。score
和{while
-循环上方。即使是在循环中计算它们的新值,如果它们在循环中定义,它们的值将重置每个循环。在
当进行计算以分配新值时,您需要将计算结果保存回变量。像
score + 1
和lives - 1
这样的语句在保存结果之前对这些变量没有影响。您可以将所有score + 1
更改为score = score + 1
(或score +=1
),并类似地将所有lives - 1
更改为{lives -=1
)。有关详细信息,请参见Behaviour of increment and decrement operators in Python。在break
是有用的,如果你想打破while
循环,但由于游戏一直在玩(我假设,因为你跟踪lives
),直到所有生命都消失,那么当条件lives > 0
是False
时,循环将“中断”。在在进行这些更改之后,您的游戏应该按预期运行。
希望这有帮助。
顺便说一句,这个游戏做得很好,我很喜欢玩和调试它!
相关问题 更多 >
编程相关推荐