我想实现一个类似于国际象棋的 9x9 棋盘游戏,它只有类似车的移动棋子。性能至关重要,因为我也想开发人工智能。
我阅读了有关位板的文章,这是一种表示游戏引擎的有效方式。有几篇关于这方面的有趣文章,例如Java 中的 Chess bitboard implementation和https://www.chessprogramming.org/Bitboards。当然,它们指的是 8x8 板,它们非常适用于 64 位 CPU,因为它允许快速按位运算。
在这种情况下,我需要一个 9x9 板,因此我希望使用至少两个原始数据(64 位 + 32 位,以表示我需要的 81 个方格)。
// 9x9 board, possible representation (64bits+32bits)
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
+15 unused bits
除了我需要的更复杂的逻辑之外,在这种情况下是否值得使用位板?我真的会在性能上获得很好的收益吗?