剪刀石头布

时间:2020-07-25 04:08:14

标签: python python-3.x python-3.7

我正在尝试制作剪刀石头布的程序。但是对于我得到的输出来说,它是令人满意的。

def rpc():
  import random
  moveset=["Rock","Paper","Scissors"]
  a=random.choice(moveset)
  "Rock">"Scissors","Scissors">"Paper","Paper">"Rock"
  playermove=input ("What will you play? please keep the first letter capital")
  print (a)
  if playermove == a:
    print ("draw")
  elif playermove>a:
    print("you win")
  elif playermove<a:
    print("you lose")
  else:
    print("no valid choice")
rpc()
rpc()

应如何修改代码?

1 个答案:

答案 0 :(得分:0)

如上所述:您的问题行在此处: "Rock">"Scissors","Scissors">"Paper","Paper">"Rock"。这行实际上什么也没做。

另一个问题在这里: elif playermove>a:正在比较两个字符串,而上方的行将被忽略。要了解字符串比较,请尝试使用一些字符串并进行比较。比较工作类似于按字母顺序排序,并且大写字母小于小写。

>>> "a" > "b"
False
>>> "ac" > "ab"
True
>>> "A" > "a"
False
>>> "A" > "z"
False

因此,您需要创建其他测试来检查输掉比赛的胜利。有许多方式可以做到这一点。一个简单的测试可能是创建一个winner_to_loser列表,然后查看您的组合是否在列表中

winner_loser = [('rock', 'scissors'), ('scissors', 'paper'), ('paper', 'rock')]
if (player_move, computer_move) in winner_loser:
    print("you win!")
elif (computer_move, player_move) in winner_loser:
   print("computer wins!")