我研究过bitboard,但是没有找到一个关于c#中bitboard编码的例子。如果有人愿意说明一个跳棋棋盘(8x8)是如何用32位编程的。
我知道有64个方块,但是如何填充其中的32个,并且都包含这些32位的数据结构。
发布于 2018-02-05 15:11:54
你基本上不是只使用一个位板,而是使用多个位板。不同的位板代表板上不同种类的棋子,这就是位板的魔力发挥作用的地方。假设您有一个表示bitboard上的白卒的bitboard P,现在为了获得每个白卒的合法走法,您可以简单地这样做
legalMovesForWhitePawns = (P << 8) & ~(AllWhitePiecegs | AllBlackPieces)这条简单的语句将为您提供白卒的所有单步非捕获动作。
https://stackoverflow.com/questions/29236801
复制相似问题