如何用Python制作简单的骰子游戏?
我正在尝试制作一个非常简单的骰子游戏,具体要求是:
- 掷两个“骰子”,并把它们的点数存储在一个列表里。
我需要它能够:
- 返回这些点数,
- 指出哪些是双数,
- 统计双数出现了多少次,以及
- 它们分别是在第几次掷骰子时出现的。
这是我目前的代码:
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]))