制作Rock Paper Scissors游戏(使用和声明)

时间:2018-02-11 23:10:25

标签: python

import random

def rps():
    for i in range(1,10):
        print("1 for R, 2 for P, 3 for S") 
        userchoice = input("Enter your number")
        a = random.randint(0,3)

        if userchoice == 1 and a == 3:
            print("Rock beats Scissors")
        elif userchoice == 1 and a == 2:
            print("Paper beats Rock")

        elif userchoice == 2 and a == 1:
            print("Paper beats rock")
        elif userchoice == 2 and a == 3:
            print("Scissors beats paper")

        elif userchoice == 3 and a == 1:
            print("Scissors beats paper")
        elif userchoice == 3 and a == 2:
            print("Scissors beat paper")
        elif userchoice == a:
            print("its a draw")


rps()

所以我正在制作一个石头剪刀游戏并需要帮助。我认为我的问题在于“和”声明。当我运行代码并输入我的答案时它不做任何事情,但再次问问题(我使用了while语句)。 如果有人能提前感谢您找到问题。

2 个答案:

答案 0 :(得分:1)

我认为您正在将字符串与整数进行比较以获得错误。

尝试将输入转换为int:

userchoice = int(input("Enter your number"))

答案 1 :(得分:0)

另一个问题:randint的范围是包容性的,因此计算机将能够选择0,

另外,您可以通过在阵列上预设条件来节省大量时间,然后通过迭代来检查获胜或抽奖,例如

user_wins = [[1,3],[2,1],[3,2]]
comp_wins = [[3,1],[1,2],[2,3]]

然后为所有消息创建一个数组,并使用索引来决定要说出哪条消息。