我必须在一个石头,纸和剪刀的游戏上做一个项目,到目前为止,我的代码是该游戏的完整代码,但是我的教授不喜欢它,因为它太多余了.是否有缩短它或使其更简单的方法?
@H_404_6@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.