使用列表作为字典键的替代方法是什么?

时间:2018-05-29 22:04:46

标签: python python-3.x dictionary

我正在制作国际象棋游戏。该板存储在2d列表中。该游戏还有一个运行minimax算法的ai。我想通过将特定电路板状态(这是一个2d列表)的分数添加到字典中来加速ai(最大化器的checked_states_max和最小化器的checked_states_min)。我怎么能这样做,因为在python中,列表不能用作字典键,因为它们是可变的?我担心将它全部转换为元组会效率低下。

1 个答案:

答案 0 :(得分:2)

Zobrist hashing正是您要找的。

实现一个接受游戏状态的哈希函数(注意,不仅仅是当前的棋盘,因为castling和en passant可能无效,取决于之前的动作)并返回一个整数。