如何用Python制作简单的骰子游戏?

-1 投票
1 回答
1041 浏览
提问于 2025-04-17 22:35

我正在尝试制作一个非常简单的骰子游戏,具体要求是:

  • 掷两个“骰子”,并把它们的点数存储在一个列表里。

我需要它能够:

  • 返回这些点数,
  • 指出哪些是双数,
  • 统计双数出现了多少次,以及
  • 它们分别是在第几次掷骰子时出现的。

这是我目前的代码:

def dice():
    import random
    list1 = []

    for i in range (2):
        x = random.randint(1,6)
        list1.append(x)

    if list1[0] == list1[1]:
        print list1, "<-- DOUBLES"
        return
    else:
        return list1

counter = 0
for i in range (10):
    counter = counter + 1
    print "Roll", counter, "was", dice()

print "Doubles were rolled", ### times: on roll x, y, and z

有没有什么建议?

1 个回答

1

与其把所有的骰子结果放在一个连续的列表里,不如把每一对骰子的结果存成一个二元组,放在列表中:

outcomes = []
for roll in range(rolls):
    outcomes.append(tuple(random.randint(1, 6) for _ in range(2)))

或者,可以用更符合Python风格的“列表推导式”来实现:

outcomes = [tuple(random.randint(1, 6) for _ in range(2))
            for _ in range(rolls)]

这样你就可以很方便地遍历这些结果,轻松找到每一对骰子的结果:

for index, roll in enumerate(outcomes, 1):
    if roll[0] == roll[1]:
        print("Roll {0} was a double {1}.".format(index, roll[0]))

撰写回答