所以,我正在尝试制作这种小型的R,P,S模拟器,为每个玩家指定一个特定的选项,在这种情况下:Rock,Paper或Scissors。在我的第一个版本中,我不得不手动编写剧本。在我的第二篇文章中,值是随机选择的,在游戏中保留了“乐趣”。然后我希望将这些值打印在结果之前,但现在所有结果都是联系。 我有点想像这是因为播放器1和播放器2在技术上具有相同的值,但是我该如何解决呢?
import sys
import random
options=["Rock", "Paper", "Scissors"]
player1 = print(random.choice(options))
player2 = print(random.choice(options))
def compare (p1,p2):
if p1==p2:
print("Tie!")
elif p1=="Rock":
if p2=="Scissors":
return ("Rock wins!")
else:
return ("Paper wins!")
elif p1=="Scissors":
if p2=="Rock":
return ("Rock wins!")
else:
return ("Scissors wins!")
elif p1=="Paper":
if p2=="Scissors":
return ("Scissors wins!")
else:
return ("Paper wins!")
else:
return ("Invalid imput!")
sys.exit()
print(compare (player1, player2))
答案 0 :(得分:1)
print
返回None
,因此这样做
player1 = print(random.choice(options)) player2 = print(random.choice(options))
player1
和player2
均为None
,因此
if p1==p2: print("Tie!")
将始终被执行。
相反,使用
player1 = random.choice(options)
player2 = random.choice(options)
答案 1 :(得分:0)
我认为问题已得到解答,但我仍然建议对该功能进行一些优化:
代替:
def compare (p1,p2):
if p1==p2:
print("Tie!")
使用此:
def compare (p1,p2):
if p1==p2:
return("Tie!")
使代码更加独立,并优化执行。