1

我很容易理解非滑动件,但我在滑动件上遇到了一些麻烦。

我目前有 64 个位板(每个正方形 1 个,未保存在数组中,以及 8 个用于屏蔽行的位板,8 个用于清除行的位板,8 个用于屏蔽列的位板,以及 8 个用于清除列的位板,当然还有,每种类型的棋子都有一个位板。

在为主教和车生成合法移动时,我听说您应该在列/行上获得第一个被占用的方格。

我的问题是:

  • 你怎么知道车在哪里以及它与适当的面具一起。
  • 您如何准确地获得对角线中第一个占据的正方形以及主教。
  • 如果您知道任何其他常见的位板可以在以后帮助我完成任务,请告诉我。

目前我没有分支,并且希望减少我使用的分支数量,但我觉得这里需要一些分支,并且对解决这个问题的最有效方法感到好奇。

4

1 回答 1

2

关于Board 表示Bitboard的Wikipedia 条目为该主题提供了很好的解释。

此外,它们包含许多指向有价值参考的有趣链接。

我特别建议你学习Crafty的源代码。它是由一位知名权威人士撰写的:罗伯特·凯悦博士。

于 2011-12-17T09:22:49.483 回答