加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

我如何使我的代码在石头,纸和剪刀的游戏中减少冗余?

发布时间:2020-12-17 17:38:26 所属栏目:Python 来源:网络整理
导读:我必须在一个石头,纸和剪刀的游戏上做一个项目,到目前为止,我的代码是该游戏的完整代码,但是我的教授不喜欢它,因为它太多余了.是否有缩短它或使其更简单的方法? import randomwhile True:bot = random.choice(["Rock","Paper","Scissors"]).lower()user_cho

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

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退出:
^无输出

剪刀

你输了!我选择了摇滚,而您选择了剪刀,摇滚击败了剪刀

在“石头”,或-1退出:

^没有输出

最佳答案
我建议使用模运算符并列举您的选择. (摇滚(0)=>纸(1)=>剪刀(2))

获胜条件是user_choice-机器人选择%3 == 1.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读