【发布时间】:2011-08-24 22:43:08
【问题描述】:
我仍然认为自己是一个编程新手(我的名声主要是因为 gamedev.SE),因此我遇到了一个我自己无法解决的问题。
我有一个函数,它接受指定数量的骰子并掷骰子,然后返回结果。但是,如果它碰巧掷出最高可用值,例如 6 面骰子上的 6,它会移除有问题的骰子并在其位置掷两个新骰子。它按预期工作,但我在实现另一个必要部分时遇到了问题:跟踪掷出的 1 的数量,特别是在初始骰子中掷出的任何 1。
from random import randint
def roll_die(number, sides=6):
results = []
for dice in range(number):
roll = randint(1, sides)
if roll == sides:
#rolling two new dice instead
results.append(roll_die(2, sides))
else:
results.append(roll)
return sum(results)
我也不确定是否将结果存储在列表中然后对其求和是否是最好的方法,但我想我永远不会达到足够多的骰子来担心这一点。
如何跟踪掷出的第一个骰子?当我说“第一个”时,我的意思是在最初指定的要滚动的数字中,在由于滚动六点而添加任何新骰子之前。
【问题讨论】: