很难弄清楚如何在代码中安装while(True)函数。也不知道这是否正确使用,因为我试图循环游戏,直到计算机或用户达到所需的点数(用户在开始时作为回合输入)
import random
def main():
print
print "----------------------------------"
print "Welcome to Rock, Paper, Sciccors! "
print "----------------------------------"
rounds = input("How many points to win?: ")
user_choice = input("Choose Rock = 1 , Paper = 2 or Sciccors = 3: ")
user_score = 0
computer_score = 0
if user_choice == 1:
print "You chose Rock"
elif user_choice == 2:
print "You chose Paper"
elif user_choice == 3:
print "You chose Sciccors"
else:
print " Wrong! Choose 1, 2 or 3!"
computer_choice = random.randrange(1, 4)
if computer_choice == 1:
print "Computer chose Rock"
elif computer_choice == 2:
print "Computer chose Paper"
elif computer_choice == 3:
print "Computer chose Sciccors"
def checkResults(computer_choice, user_choice):
checkResults = computer_choice - user_choice
if computer_choice - user_choice == 0:
print("Draw!")
user_score += 1
computer_score += 1
elif computer_choice - user_choice == 1 or computer_choice - user_choice == -2:
print("Computer wins")
computer_score += 1
elif computer_choice - user_choice == -1 or computer_choice - user_choice == 2:
print("You win!")
user_score += 1
print (" Computer {} , You {}" .format(computer_score, user_score))
while(True):
if computer_score == rounds or user_score == rounds:
main()
else:
break
答案 0 :(得分:1)
你可以把它缩短一点:
while computer_score == rounds or user_score == rounds:
' Your code returning computer_score and user_score
基本上while True
是一个无限循环,只能使用break
语句或键盘中断来结束。
答案 1 :(得分:0)
while True:
是一个无限循环,只能通过命令break
停止。在您的示例中,您创建了一个循环,该循环将无限运行main()
方法(您之前定义的方法,通过说def main():
)。循环结束的唯一时间是你杀死进程(即在Windows上使用任务管理器),或者computer_score
和user_score
都变得不等于rounds
(这就是你的{ {1}}声明暗示倒数第二行)。发生这种情况时,程序会调用else
,它会立即强制结束循环并继续...到文件末尾(然后结束程序)。
应该注意的是,程序员有时不赞成使用break
循环,因为它不被视为“优雅”。这是完全没问题的代码,但是重写最后几行的另一种方法如下:
while True ... break
通过运行while computer_score==rounds or user_score==rounds:
main()
循环直到while
和computer_score
都不等于user_score
,才能获得相同的结果。此时,while循环以干净的方式结束,并通过到达文件末尾来结束程序。