我是新手,尝试掷 3d6,重新掷 1,然后将它们放入列表中。我似乎无法在列表中获得 3 "new" 个值。数字不断增加
I am new, trying to roll 3d6, rerolling 1's, and put them into a list. I cant seem to get 3 "new" values in the list. The numbers just keep adding up
import random
my_stats = []
stat = 0
while len(my_stats) < 3:
for i in range(1,4): # generates a num (d6) but no 1's
number = (random.randint(1, 6))
while number == 1:
number = (random.randint(1, 6))
else:
stat += number # sums the 3 rolls into stat
my_stats.append(stat)
print(my_stats)
我不确定如何在我的列表中获得 3 个不同的条目,只是不断累加。
您从未重置 stat
。
尝试将其初始化移动到循环中,例如
while len(my_stats) < 3:
stat = 0
for i in range(1,4):
# ...
您的代码当前掷骰子 3 次,如果掷骰不是 1,则添加结果,否则毫无意义地重新掷骰子(因为从未使用过该值)。然后将求和值附加到列表中,然后重复该过程,但不要先将求和值重置为 0。所以它至少包含 2 个错误(因为忽略 1 和不使用 reroll 似乎不是你想要的)
我想这就是你想要的:
import random
my_stats = []
stat = 0
while len(my_stats) < 3:
# you'd want to restart the count every time
stat = 0
# you'll need to keep track of the number of good rolls, can roll any number of 1's
good_rolls = 0
while good_rolls < 3:
number = (random.randint(1, 6))
if number != 1:
stat += number # sums the 3 rolls into stat
good_rolls += 1
my_stats.append(stat)
print(my_stats)
import random
my_stats = []
stat = 0
while len(my_stats) < 3:
for i in range(1,4): # generates a num (d6) but no 1's
number = (random.randint(1, 6))
while number == 1:
number = (random.randint(1, 6))
else:
stat += number # sums the 3 rolls into stat
my_stats.append(stat)
print(my_stats)
我不确定如何在我的列表中获得 3 个不同的条目,只是不断累加。
您从未重置 stat
。
尝试将其初始化移动到循环中,例如
while len(my_stats) < 3:
stat = 0
for i in range(1,4):
# ...
您的代码当前掷骰子 3 次,如果掷骰不是 1,则添加结果,否则毫无意义地重新掷骰子(因为从未使用过该值)。然后将求和值附加到列表中,然后重复该过程,但不要先将求和值重置为 0。所以它至少包含 2 个错误(因为忽略 1 和不使用 reroll 似乎不是你想要的)
我想这就是你想要的:
import random
my_stats = []
stat = 0
while len(my_stats) < 3:
# you'd want to restart the count every time
stat = 0
# you'll need to keep track of the number of good rolls, can roll any number of 1's
good_rolls = 0
while good_rolls < 3:
number = (random.randint(1, 6))
if number != 1:
stat += number # sums the 3 rolls into stat
good_rolls += 1
my_stats.append(stat)
print(my_stats)