Python 3.x Python 3石头、布、剪刀游戏名称错误:名称';计算机选择摇滚乐;没有定义
我正在为编程课制作一个石头、布、剪刀的游戏。这就是我得到的,然后PowerShell吐出了那个错误。我不明白出了什么问题(我是一名初级Python程序员)。我的编程老师帮不了我多少忙,他更喜欢“弄明白”的学习方法。我真的被困在这一点上了。非常感谢您的帮助,谢谢Python 3.x Python 3石头、布、剪刀游戏名称错误:名称';计算机选择摇滚乐;没有定义,python-3.x,Python 3.x,我正在为编程课制作一个石头、布、剪刀的游戏。这就是我得到的,然后PowerShell吐出了那个错误。我不明白出了什么问题(我是一名初级Python程序员)。我的编程老师帮不了我多少忙,他更喜欢“弄明白”的学习方法。我真的被困在这一点上了。非常感谢您的帮助,谢谢 import random def rps(): computer_choice = random.randint(1,3) if computer_choice == 1: comuter_choice
import random
def rps():
computer_choice = random.randint(1,3)
if computer_choice == 1:
comuter_choice_rock()
elif computer_choice == 2:
comuter_choice_paper()
else:
comuter_choice_scissors()
def computer_choice_rock():
user_choice = input("1 for Rock, 2 for Paper, 3 for Scissors: ")
if user_choice == "1":
print ("It's a Tie!")
try_again()
if user_choice == "2":
print ("You Win! Paper covers Rock!")
try_again()
if user_choice == "3":
print ("I Win and You Lose! Rock crushes Scissors!")
try_again()
else:
print ("Please type in 1, 2, or 3")
computer_choice_rock()
def computer_choice_paper():
user_choice = input("1 for Rock, 2 for Paper, 3 for Scissors: ")
if user_choice == "1":
print ("I Win and You Lose! Paper covers Rock!")
try_again()
if user_choice == "2":
print ("It's a Tie!")
try_again()
if user_choice == "3":
print ("You Win! Scissors cut Paper!")
try_again()
else:
print ("Please type in 1, 2, or 3")
computer_choice_paper()
def computer_choice_paper():
user_choice = input("1 for Rock, 2 for Paper, 3 for Scissors: ")
if user_choice == ("1"):
print ("You Win! Rock crushes Scissors")
try_again()
if user_choice == "2":
print ("I Win! Scissors cut Paper!")
try_again()
if user_choice == "3":
print ("It's a Tie!")
try_again()
else:
print ("Please type in 1, 2, or 3")
computer_choice_paper()
def try_again():
choice = input("Would you like to play again? Y/N: ")
if choice == "Y" or choice == "y" or choice == "Yes" or choice == "yes":
rps()
elif choice == "n" or choice == "N" or choice == "No" or choice == "no":
print ("Thanks for Playing!")
quit()
else:
print ("Please type Y or N")
try_again()
rps()
你的代码有一个输入错误
if computer_choice == 1:
comuter_choice_rock()
elif computer_choice == 2:
comuter_choice_paper()
else:
comuter_choice_scissors()
Comuter您的代码可以简化到极限程度。请参见下面的示例程序。要用NPC替换任一玩家,请将
player_1
或player_2
设置为random.choice(priority)
。如果你想,你甚至可以让电脑自己玩
priority = dict(rock='scissors', paper='rock', scissors='paper')
player_1 = input('Player 1? ')
player_2 = input('Player 2? ')
if player_1 not in priority or player_2 not in priority:
print('This is not a valid object selection.')
elif player_1 == player_2:
print('Tie.')
elif priority[player_1] == player_2:
print('Player 1 wins.')
else:
print('Player 2 wins.')
你也可以调整你的游戏,这样人们就可以玩了。代码只是略有不同,但展示了如何实现稍微复杂一点的游戏。计算机播放可以用前面示例中提到的相同方式实现
priority = dict(scissors={'paper', 'lizard'},
paper={'rock', 'spock'},
rock={'lizard', 'scissors'},
lizard={'spock', 'paper'},
spock={'scissors', 'rock'})
player_1 = input('Player 1? ')
player_2 = input('Player 2? ')
if player_1 not in priority or player_2 not in priority:
print('This is not a valid object selection.')
elif player_1 == player_2:
print('Tie.')
elif player_2 in priority[player_1]:
print('Player 1 wins.')
else:
print('Player 2 wins.')
仔细看,你有一个拼写错误:这个函数在定义上叫做“computer\u choice\u rock”,而在调用中叫做“comuter\u choice\u rock”(p不见了)。哇,真不敢相信我居然漏掉了!如果答案解决了你的问题,你应该接受它;)