1

我研究过位板,但未能找到有关位板编码在 c# 中的样子的示例。如果有人愿意说明如何用 32 位编程棋盘(8x8)。

我知道有 64 个方格,但是你如何只填充其中的 32 个并且全部包含在这些 32 位数据结构中。

4

1 回答 1

0

您基本上不只是使用单个位板,而是使用多个位板。不同的位板代表船上不同种类的部件,这就是位板的魔力发挥作用的地方。假设您有一个位板 P 代表位板上的白棋子,现在为了获得每个白棋子的合法移动,您可以简单地执行类似的操作

legalMovesForWhitePawns = (P << 8) & ~(AllWhitePiecegs | AllBlackPieces)

这个简单的语句将为您提供白色棋子的所有一步非捕获动作

于 2018-02-05T07:11:54.270 回答