【问题标题】:how to use bitboards in chess?如何在国际象棋中使用位板?
【发布时间】:2021-04-24 15:47:21
【问题描述】:

我正在制作一个基于位板的国际象棋引擎,我想问一下 - 假设我为每个棋子制作了一个位板,我该怎么处理它?我读了一些关于一些技术的文章,比如如果你将棋子位板向左移动 7 和 9,你会得到一个代表他们攻击的方块的位板,但是我该如何使用它呢? 或者我如何使用 rook bitboard 或 bishop bitboard?就像他们的目标是什么,如果我找到它,我该如何将它与其他块位板连接起来? 我已经搜索了几天,但没有找到足够的答案...... 谢谢

【问题讨论】:

    标签: bit-manipulation 64-bit chess bitmask bitboard


    【解决方案1】:

    Bitboards 是另一种类型的板表示,例如 2d 阵列板或 1d 阵列。主要优点是它们可以帮助您更快地为某个位置生成有效的移动,并且您可以更轻松地使用它们来获得某些评估结构和参数。

    通常每个棋子和每一面都有 1 个位板(共 12 个),每种颜色一个(共 2 个),一个用于所有棋子,一个用于铸造权,一个用于移动。借助位运算符和位操作,您可以借助预先计算的表格和少量位运算来计算某个位置的有效移动。

    我建议看this YouTube 系列,它经历了从头开始编写位板国际象棋引擎的整个过程。

    了解这些概念如何工作的另一个好来源是查看Chessprogramming 网站。

    希望对你有帮助!绕着你的脑袋并不容易,但使用它们的好处是巨大的。

    【讨论】:

    • 感谢您的回答!我真的很难掌握如何使用它们:)
    • 这里也一样,很难。不过,看那个 YouTube 系列很有帮助 :) 并且尽可能多地自己玩。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多