BitBoard для шашек в C#

Я изучил битборд, но не смог найти пример того, как будет выглядеть кодирование в C#. Если бы кто-то был так любезен, чтобы проиллюстрировать, как на плате шашек (8x8) будет программироваться 32-битная версия.

Я знаю, что есть 64 квадрата, но как вы заполняете только 32 из них, и все они содержатся в этих 32-битных структурах данных.

1 ответ

По сути, вы не просто используете одну битовую доску, а используете несколько битбордов. Разные битборды представляют разные виды элементов на доске, и именно здесь магия битбордов вступает в действие. Предположим, у вас есть битборд P, представляющий белых пешек на битборде, теперь, чтобы получить легальные ходы для каждой белой пешки, вы можете просто сделать что-то вроде

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

Это простое утверждение предоставит вам все одношаговые ходы без захвата белых пешек.

Другие вопросы по тегам