我正在尝试重新创建一个名为 Dudo 的骰子游戏的单人游戏版本。最相关的信息是六名玩家有六个隐藏的骰子,游戏的重点是猜测桌上总共有多少某种骰子(例如,如果有十个 4 或十二个 5 等)。
为了制作一些人工智能,我使用了二项分布,计算机根据它手中已经有多少这种骰子来猜测存在一定数量的某种骰子的概率。我将这个方程保存在变量机会中:
chance = ((1/3) ** (i - player_dice_type[turn][active_type])) * ((2/3) ** (total_count - i - player_count[turn] + player_dice_type[turn][active_type]))
i
是那种骰子的数量(例如六个 5,或七个 5,或八个 5 等)。我有一个玩家有多少种骰子的列表( ),我可以通过子集和player_dice_type
为特定玩家选择一个特定的骰子。1/3 与游戏规则有关(通常骰子是 1/6),但这与我的问题无关。turn
active_type
当我打电话给机会时,它只给我 ifplayer_dice_type[turn][active_type] = 0
和的值i = 6
,因此当计算机有 0 个骰子时,有 6 个骰子在桌子上的概率。
我可以调用i
并player_dice_type[turn][active_type]
看到它们不等于 6 或 0。但问题是,如果我复制并粘贴等式,它工作得非常好。当我调用机会时,它仅默认为 6 和 0。
我也尝试过创建一个chancefun(i)
返回原始方程的函数,然后说chance = chancefun(i)
. 我可以将环境中的 i 更改为我想要的任何内容,并chancefun(i)
会做出相应的反应,但再一次,变量chance
不会。
我将范围界定为标签只是因为我认为它可能以某种方式相关,但我想不出如何相关。我也尝试将变量名从更改chance
为一堆其他东西,但仍然没有运气。