我正在创建一个玩游戏猪骰子的程序。它应该做到以下几点: 1.选择用户或计算机是否在第一圈进行播放。 2.如果计算机先启动,计算机会转一圈 3.只要计算机分数小于100,重复: 一个。用户转一圈。 湾如果用户的分数达到100,则退出循环 C。电脑转了一圈。 4.打印结果。 我的问题是,当我运行程序时,有一个无限循环,我不知道它在哪里遇到这个问题。任何人都可以指出问题发生的位置,并可能就如何防止这种情况提出建议吗?指出任何其他错误也很受欢迎,因为我是python的新手。
{{1}}
答案 0 :(得分:1)
你的问题是
if u_score >= 100:
exit
“exit”不是留下循环的关键字,它是“中断”。如果您确实希望程序终止,则需要使用exit()
调用该方法。
答案 1 :(得分:1)
您的代码中存在一些问题,因为我已经广泛地使用了您的代码。
在以下代码段
中def roll_two_dice(): roll1 = randint(1,6) roll2 = randint(1,6)
if roll1 or roll2 == 1:
return 0
elif roll1 and roll2 == 1:
return 25
else:
return roll1 + roll2
两个案件都应该包含,
roll1 == 1
由于您编写的条件不会检查roll1 = 1还是roll2 = 1.实际上它会检查roll2 = 1和roll1除1以外的任何内容。这可能会导致无限循环。
其次在以下两个功能中: -
computerTurn(评分)
和
userTurn(分数)
你没有更新turn_score的值并返回那个导致事情变得更糟的值,而值c_score总是渲染为0而代码将落入无限循环。
同样在功能
def final_result(uscore,cscore):
你不应该将uscore和cscore = 0的值设为uscore> = 100的条件永远不会出现