我必须在一个石头,纸和剪刀的游戏上做一个项目,到目前为止,我的代码是该游戏的完整代码,但是我的教授不喜欢它,因为它太多余了.是否有缩短它或使其更简单的方法?
import random
while True:
bot = random.choice(["Rock","Paper","Scissors"]).lower()
user_choice = input("Choose between Rock,Paper,and Scissors or -1 to exit: \n ").lower()
if user_choice == bot:
print("We tied! I chose",bot," and you chose",user_choice)
elif user_choice == "rock":
if bot == "paper":
print("You lose! I chose",user_choice,",Paper beats rock!")
elif bot == "scissors":
print("You win! I chose",Rock beat scissors!")
elif user_choice == "paper":
if bot == "rock":
print("You win! I chose",Paper beats rock!")
elif bot == "scissors:":
print("You lose! I chose",Scissors beats paper")
elif user_choice == "scissors":
if bot == "paper":
print("You win! I chose",Scissors beats paper")
elif bot == "rock":
print("You Lose! I chose",Rock beats scissors")
else:
print("Invalid Entry,you typed:",Please try again: ")
if user_choice == '-1':
print("You selected -1 to exit,Goodbye!")
exit()
还有有时候当我输入纸张作为输入时,我没有得到输出,代码只是循环回到开头,有人知道为什么会这样吗?
例:
在“石头”,“纸”和“剪刀”之间选择,或-1退出:
岩石
你赢了!我选择了剪刀,然后您选择了Rock,Rock beat剪刀!
在“石头”,或-1退出:
纸
我们绑!我选择了纸,你选择了纸
在“石头”,或-1退出:
纸
剪刀
你输了!我选择了摇滚,而您选择了剪刀,摇滚击败了剪刀
在“石头”,或-1退出:
^没有输出
最佳答案
我建议使用模运算符并列举您的选择. (摇滚(0)=>纸(1)=>剪刀(2))
获胜条件是user_choice-机器人选择%3 == 1.