我是一个新的编程,并决定尝试和作出一个简单的最好的3石头剪刀布游戏,你对电脑玩。但是当我测试代码时,即使在我或计算机获得2次胜利之后,while循环也不会停止。你知道吗
import random
computerInputList = ["rock", "paper", "scissors"]
userScore = 0
computerScore = 0
while userScore < 2 or computerScore < 2:
computerInput = random.choice(computerInputList)
print("rock, paper or scissors? ")
userInput = input()
print()
if userInput == computerInput:
print("You played: " + userInput)
print("Computer played: " + computerInput)
print()
print("This round is a tie!")
elif userInput != computerInput:
if userInput == "rock":
if computerInput == "scissors":
print("You played: " + userInput)
print("Computer played: " + computerInput)
print()
print("You won this round!")
userScore = userScore + 1
elif computerInput == "paper":
print("You played: " + userInput)
print("Computer played: " + computerInput)
print()
print("You lost this round!")
computerScore = computerScore + 1
elif userInput == "paper":
if computerInput == "rock":
print("You played: " + userInput)
print("Computer played: " + computerInput)
print()
print("You won this round!")
userScore = userScore + 1
elif computerInput == "scissors":
print("You played: " + userInput)
print("Computer played: " + computerInput)
print()
print("You lost this round!")
computerScore = computerScore + 1
elif userInput == "scissors":
if computerInput == "paper":
print("You played: " + userInput)
print("Computer played: " + computerInput)
print()
print("You won this round!")
userScore = userScore + 1
elif computerInput == "rock":
print("You played: " + userInput)
print("Computer played: " + computerInput)
print()
print("You lost this round!")
computerScore = computerScore + 1
else:
print("Invalid input!")
print("Accepted inputs: rock, paper, scissors.")
我没有收到错误消息
这是因为您对
or
操作符在这种情况下的工作方式有一个基本的误解:如果或者
userScore
或者computerScore
小于2,则此while
块中包含的循环将继续执行。你知道吗你要寻找的是当两个循环中的一个超过2时循环结束。将
or
更改为and
,以确保只有当userScore
和computerScore
都小于2时循环才会继续:while中应该有一个
and
,而不是or
。你知道吗当两者都低于2时,您要继续。你知道吗
相关问题 更多 >
编程相关推荐