2011-12-17 2 views
1

Я понял, что не скользит куски довольно легко, но у меня были проблемы с скользящими частями.шахматные скользящие части битов

В настоящее время у меня 64 бита (по 1 на каждый квадрат, не сохраненный в массиве, а также 8 битов для замаскированных строк, 8 битов для очищенных строк, 8 битов для замаскированных столбцов и 8 бит для очищенных столбцов, а также а, конечно, bitboard для каждого типа куска.

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

Мои вопросы :

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

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

ответ

2

Вложения в Википедии на Board representation и Bitboard дают хорошее объяснение по этой теме.

Кроме того, они содержат кучу интересных ссылок, указывающих на ценные ссылки.

Я особенно советую вам изучить исходный код Crafty. Это было написано известным авторитетом: д-р Robert Hyatt.