【发布时间】:2013-10-12 19:17:56
【问题描述】:
我应该为以下问题编写代码:
玩家掷出两个六面骰子。如果两个骰子的和不是 七、总和加上玩家的总分和玩家 再次滚动。当玩家掷出七的总和时,游戏是 结束了。
这是我目前所拥有的:
def main():
dice1 = randrange(1, 7,)
dice2 = randrange(1, 7,)
roll = dice1 + dice2
score = 0
count = 0
while roll != 7:
count = count + 1
score = score + roll
if roll == 7:
break
print count
print score
main()
但是,当它应该滚动骰子时,它只会给我一个无限循环,直到骰子的总和为 7。
我该如何解决?
【问题讨论】:
-
您不会在 while 循环中更改 roll 的值。难怪它会陷入无限循环
-
另外,你不需要
if roll == 7: break由while roll != 7:处理 -
print ( (lambda f: f (f, 0, 0, 0, __import__ ('random') ) ) (lambda f, r, c, s, i: (c, s) if r == 7 else f (f, i.randint (1, 6) + i.randint (1, 6), c + 1, s + r, i) ) )
标签: python while-loop infinite-loop