开发者社区> 问答> 正文

我的python石头剪刀布游戏怎么了?一切都错了吗?

我试着写了最基本的RPS游戏是: 我有什么办法可以做到吗?

import  random
while True:
  AI=random.randint("rock","paper","scissors")
  player=input("rock-paper-scissors:")
  def x():
    "rock">"scissors"==True
    "paper">"rock"==True
    "scissors">"paper"==True
    if AI > player:
      print(AI)
      print("AI wins")
    continue
    else: 
      if AI < player:
      print(AI)
      print("player wins")
    continue

首先,我想定义的值有意义的一些是比其他像“石头”>“剪刀”==True。我知道这是不对的,但我想知道正确的方法是什么。通过这样做,我希望对输入求值并返回结果。 其次,else语句返回一个无效语法错误,我不明白为什么。 我希望这能进一步澄清。 问题来源StackOverflow 地址:/questions/59466183/what-is-wrong-with-my-rock-paper-scissors-game-in-python-is-everything-wrong

展开
收起
kun坤 2019-12-25 15:49:41 918 0
1 条回答
写回答
取消 提交回答
  • import random

    def result(num): if num == 1: ret = '石头' elif num == 2: ret = '剪刀' else: ret = '布' return ret

    def games(nums): for i in range(nums): try: # 得到键盘内容 player_num = input('请输入 [ 1. 石头 2. 剪刀 3. 布] 退出请输入 exit ') # 如果键盘输入的是exit, 就直接跳出当前循环, 结束程序 if player_num == 'exit': break

            # 判断用户输入的内容是不是字符串类型的 1 2 3 如果不是, 则主动抛出异常
            if player_num not in ['1', '2', '3']:
                raise 123
    
            # 用于把数字和石头剪刀布对应起来, 待会下面输入就能够很好的字符串拼接
            you = result(int(player_num))
    
            # 把用户输入的内容转换成数字类型, 能够走到这里, 就代码player_num决定是字符串类型的 1 2 3
            player_num = int(player_num)
    
        except Exception:
            print('输入有误, 请重新来过')
            continue
    
        # 电脑出拳
        computer_num = random.randint(1, 3)
        # 用于把数字和石头剪刀布对应起来, 待会下面电脑输入就能够很好的字符串拼接
        computer = result(computer_num)
    
        if (player_num == 1 and computer_num == 2) or (player_num == 2 and computer_num == 3) or (
                player_num == 3 and computer_num == 1):
            print('')
            print('*' * 50)
            print('你出的是%s' % you)
            print('电脑出的是%s' % computer)
            print('你赢了, 你向对方说, 不要跑, 决战到天亮!!')
            print('*' * 50)
            print('')
    
        elif player_num == computer_num:
            print('')
            print('*' * 50)
            print('你出的是%s' % you)
            print('电脑出的是%s' % computer)
            print('打平了')
            print('*' * 50)
            print('')
    
        else:
            print('')
            print('*' * 50)
            print('你出的是%s' % you)
            print('电脑出的是%s' % computer)
            print('你输了, 但是不要气馁, 再接再励!')
            print('*' * 50)
            print('')
    

    if name == 'main': print("欢迎来到猜拳游戏*") nums = int(input('请问你想玩几盘: ')) print("游戏开始*") games(nums)

    2019-12-26 13:53:45
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载