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语句)。 如果有人能提前感谢您找到问题。
答案 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]]
然后为所有消息创建一个数组,并使用索引来决定要说出哪条消息。