我不知道我做了什么,但现在当我玩游戏时,它会在输入我的选择( r,p或s)之后结束,这与验证有关吗?
这是代码:
from random import randint
computer = randint(1,3)
r = "r"
p = "p"
s = "s"
print ("The computer has chosen. Your turn")
player = input ("r is Rock, p is Paper, and s is Scissors. Put your letter in HERE-----> ")
a = 1
while (a == 1):
if (player not in(r,p,s)):
player = input ("That wasn't r, p, or s. Please try again. r is Rock, p is Paper, and s is Scissors. Put your letter in HERE-----> ")
if (player in (r,p,s)):
a = 2
if (computer == 1):
AI = ("rock")
if (computer == 2):
AI = ("paper")
if (computer == 3):
AI = ("scissors")
if (player == r and computer == 1):
print ("lol draw")
if (player == p and computer == 2):
print ("lol draw")
if (player == s and computer == 3):
print ("lol draw")
if (player == r and computer == 3):
print ("You WIN!!!!!! AI chose " + AI)
if (player == p and computer == 1):
print ("You WIN!!!!!! AI chose " + AI)
if (player == s and computer == 2):
print ("You WIN!!!!!! AI chose " + AI)
if (player == s and computer == 1):
print ("You LOSE!!!!!! AI chose " + AI)
if (player == r and computer == 2):
print ("You LOSE!!!!!! AI chose " + AI)
if (player == p and computer == 3):
print ("You LOSE!!!!!! AI chose " + AI)发布于 2013-12-12 19:01:26
如果输入r,p或s,则进入无限循环。
a = 1
while (a == 1): #always enters
if (player not in(r,p,s)): #if it is r or p or s it skips this
player = input ("That wasn't r, p, or s. Please try again. r is Rock, p is Paper, and s is Scissors. Put your letter in HERE-----> ")
if (player in (r,p,s)):
a = 2
#and loops back, a being still 1你在寻找这样的东西:
player = None
while player not in (r, p, s):
player = input ("That wasn't r, p, or s. Please try again. r is Rock, p is Paper, and s is Scissors. Put your letter in HERE-----> ")发布于 2013-12-12 19:01:42
要清理这些代码,还有很多工作要做,但您的问题来自于以下几个方面:
while (a == 1):
if (player not in(r,p,s)):
player = input ("That wasn't r, p, or s. Please try again. r is Rock, p is Paper, and s is Scissors. Put your letter in HERE-----> ")
if (player in (r,p,s)): #this shouldn't be indented this far
a = 2 #this one either, obviously :)发布于 2013-12-12 19:06:03
现在,您的程序被困在第12-16行的无限循环中。你应该找出你自己的原因,因为你会从中学到更多。
就风格而言,您使用过多的if语句,这会使程序难以阅读。试着找出一种更简洁的方法来回答这个问题,而不用列举每一个案例。
https://stackoverflow.com/questions/20551877
复制相似问题