gpt4 book ai didi

algorithm - 国际象棋引擎中的 slider 生成

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:42:34 26 4
gpt4 key购买 nike

所以我在解决问题时遇到了一些麻烦。我目前正在用 Java 编写一个基于 bitboard 的国际象棋引擎(这是一次解决所有问题的旅程)。到目前为止,所有的兵/王/马移动都按预期工作并且没有错误。

我需要帮助理解的是 slider 移动生成。我已经为每个方格/棋子生成了空棋盘移动数组。根据我目前的理解,我还需要开发一个数组,其中还包含每个方 block 上的每个可能的占用——然后以某种方式根据各种方法查找该数组。

这样的思考方式对吗?是否需要从 0 到 2^63 中选择每个数字,并使用该方 block 的移动位板对它进行异或运算,然后使用某种方法(魔术/旋转位板)存储它以初始化数组并以相同的方式访问它运行时间?

非常感谢伪代码和解释。 (顺便说一句,我正在使用 >>> )。

最佳答案

有许多方法可以为位板生成 slider 移动,具有不同的性能和复杂性。其中很多都列出来了here .

可能最快和最常见的是 magic bitboards ,它使用位板与“魔术”预先计算值的乘法来同时生成所有四个方向上的可能移动。缺点是它使用非常大的查找表。这可能不应该是您的第一个实现,因为它更复杂。

Obstruction differencehyperbola quintessence并不比魔术位板慢很多,同时更容易实现。

更简单和更慢的是 dumb7fill这是每个可能方向的循环,不需要任何查找表。

关于algorithm - 国际象棋引擎中的 slider 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43351532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com