繁体   English   中英

骰子卷蟒

[英]Dice roll python

尝试创建一个程序,如果总和大于8小于20,则打印4个骰子骰。如果我运行此程序,则会遇到无限循环。 我尝试设置total = 0,然后在while循环中将4个骰子的总和加到total中,但这没有用。

码:

from random import randint

def main():
    total = sum(diRoll())
    while total > 8 and total < 20:
        print(diRoll())




def diRoll():
    dice1 = randint(1, 6)
    dice2 = randint(1, 6)
    dice3 = randint(1, 6)
    dice4 = randint(1, 6)
    diceRolls = dice1, dice2, dice3, dice4
    return sorted(diceRolls)


main()

好吧,在while循环中,您永远不会将total设置为新值。 因此,您的循环将继续测试旧值,从而永远不会结束。

请尝试以下操作: While将进入无限循环,但这将打印出满足您的合计标准的不同骰子排列。 如果包含中断 ,它将终止

def main():
    while True:
        total = sum(diRoll())
        if total > 8 and total < 20:
            print(diRoll())
            break

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM