如何存储从多个列表生成的随机整数

时间:2018-10-10 16:05:43

标签: python dice

我正在尝试编写一个脚本来模拟具有非常规骰子的骰子游戏。游戏的目的是基于重复的实验来确定哪个骰子更好,其中较大的数字/掷骰获胜。这是我到目前为止的工作示例:

from random import randint, seed
from datetime import datetime
import itertools as it
seed(datetime.now())


def find_the_best_dice(dices):
assert all(len(dice) == 6 for dice in dices)

for dice1, dice2 in it.combinations(dices, 2):

    num_rounds = 100
    num_dice1_wins = 0
    num_dice2_wins = 0

    for _ in range(num_rounds):
       dice1_result = dice1[randint(0, 5)]
       dice2_result = dice2[randint(0, 5)]

       if dice1_result > dice2_result:
          num_dice1_wins += 1
       elif dice2_result > dice1_result:
          num_dice2_wins += 1

     return ("index of winning dice or -1 if tie")
find_the_best_dice(dices=[[1, 1, 6, 6, 8, 8], [2, 2, 
4, 4, 9, 9], [3, 3, 5, 5, 7, 7]])

我面临的问题是不知道如何存储2个以上骰子的获胜次数。

2 个答案:

答案 0 :(得分:1)

通常,我会使用字典来表示类似的内容,但是由于您对骰子的表示是一个列表(不可散列),因此您可以将它们转换为RequiredAttributefrozenset。我更喜欢元组,因为它可以保留顺序和重复(如果有的话)。

tuple

希望这会有所帮助!

答案 1 :(得分:0)

如果您谈论的点数相同的骰子,则“最佳”骰子不存在。例如,如果平均骰子A从骰子B获胜,骰子B从骰子C获胜,则平均骰子C仍从骰子A获胜。