这是一个石头剪刀布程序迷你游戏,但是random.choice即使从嵌套循环中重复选择,也只能从列表中选择一个。
我尝试查看其他答案,但是其中大多数都声明使用循环,而其他答案不足以满足我的情况。
rpsloop = True
while rpsloop:
#credit to https://thehelloworldprogram.com/python/python-game-rock-paper-scissors/ for help
aiselc = ["rock","paper","scissors"]
computer = random.choice(aiselc)
print("type exit to leave")
player = input("rock, paper, scissors?")
if player == computer:
print("Tie!")
print("-------------------------")
continue
elif player == "rock":
if computer == "paper":
print("You lose!", computer, "covers", player)
print("-------------------------")
continue
else:
print("You win!", player, "smashes", computer)
print("-------------------------")
continue
elif player == "Paper":
if computer == "Scissors":
print("You lose!", computer, "cut", player)
print("-------------------------")
continue
else:
print("You win!", player, "covers", computer)
continue
elif player == "Scissors":
if computer == "Rock":
print("You lose...", computer, "smashes", player)
print("-------------------------")
continue
else:
print("You win!", player, "cut", computer)
print("-------------------------")
continue
else:
break
else:
break
我希望计算机可以捡石头,纸或剪刀。 它选择一个并在循环后仍保留该值。 但是每次执行都会选择另一个值。
答案 0 :(得分:0)
请记住,比较字符串时在Python中使用==
会进行精确比较。这意味着在比较字符串时会考虑字母的大小写。例如,Scissors
和scissors
将被视为彼此不相等。
我高度怀疑您将所有选择都以小写形式输入。这意味着,如果您要输入scissors
或paper
,则检查玩家是否输入if
的{{1}}语句将不会执行。最终会发生的事情是,由于字符串比较区分大小写,其他任何Scissors
语句都不会处理您输入的内容,因此循环将退出。这就是为什么if
仅执行而其他rock
条语句均不执行的原因。
请特别注意,在您的if
语句中,if
是小写字母,但是rock
和Scissors
的首字母大写。
因此,鉴于此实现,请更改您的Paper
语句,以使字符串实际上是小写。
if