我仍然認爲自己是一個編程新手(我的名聲很大程度上是因爲gamedev.SE),因此我遇到了一個我自己無法解決的問題。如何跟蹤骰子滾動腳本中滾動的特定值?
我有一個函數,它接受指定數量的骰子並將它們滾動並返回結果。但是,如果它恰好將可用的最高值(例如,6)放在6面模具上,則會移除相關模具,然後在該位置滾動兩個新模子。它按預期工作,但我在實現另一個必要的部分時遇到問題:跟蹤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)
我也不能確定是否存儲在列表中的結果,然後將其加爲做到這一點的最好辦法,但我想我永遠也不會達到足夠多的骰子是擔心這一點。
我該如何跟蹤第一個擲骰子?當我說「第一」時,我的意思是在最初指定的數量內滾動,在因六個滾動而添加新的骰子之前。
第一個版本進入無限循環;第二個是非常好的,所以謝謝你!列表推斷絕對是我需要更多練習的東西。 – RxS
呃,對不起。如果你想要這種方式的話,需要檢查'count == 0'。 :)修正。 –