我正在尝试编写一个脚本来模拟具有非常规骰子的骰子游戏。游戏的目的是基于重复的实验来确定哪个骰子更好,其中较大的数字/掷骰获胜。这是我到目前为止的工作示例:
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个以上骰子的获胜次数。
答案 0 :(得分:1)
通常,我会使用字典来表示类似的内容,但是由于您对骰子的表示是一个列表(不可散列),因此您可以将它们转换为RequiredAttribute
或frozenset
。我更喜欢元组,因为它可以保留顺序和重复(如果有的话)。
tuple
希望这会有所帮助!
答案 1 :(得分:0)
如果您谈论的点数相同的骰子,则“最佳”骰子不存在。例如,如果平均骰子A从骰子B获胜,骰子B从骰子C获胜,则平均骰子C仍从骰子A获胜。