国际象棋滑动棋盘

时间:2011-12-17 07:55:01

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

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

我目前有64个位板(每个方块1个,不保存在阵列中,8个位板用于屏蔽行,8个位板用于清除行,8个位板用于屏蔽列,8个位板用于清除列,以及当然,每种类型的棋子都是一个位板。

在为主教和车队产生合法行动时,我听到你想要在列/行上获得第一个占用的方格。

我的问题是:

  • 你怎么知道车的位置和它与适当的面具一起。
  • 你究竟如何在对角线上获得第一个占用的正方形以及主教。
  • 如果你知道任何其他常见的位板可以帮助我完成后期任务,请告诉我们。

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

1 个答案:

答案 0 :(得分:2)

Board representationBitboard上的维基百科条目对该主题提供了很好的解释。

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

我特别建议您学习Crafty的源代码。它由一位着名的权威人士撰写:Robert Hyatt博士。