#bit-manipulation #64-bit #chess #bitmask #bitboard
#манипулирование битами #64-разрядный #шахматы #битовая маска #битборд
Вопрос:
Я создаю шахматный движок на основе битбордов, и я хотел бы спросить — предполагая, что я создал битборд для каждой фигуры, что мне с ним делать? Я немного читал о некоторых методах, например, если вы сдвинете битборд пешек влево на 7 и 9, вы получите битборд, представляющий атакуемые ими квадраты, но как мне это использовать? или как мне использовать битборд ладьи или битборд слона? например, каковы их цели, и если я найду это, как мне соединить его с другими битбордами фигур? Я искал его уже несколько дней, но не нашел достаточного ответа… Спасибо
Ответ №1:
Битборды — это другой тип представления доски, чем, например, доска 2d-массива или 1d-массив. Основное преимущество заключается в том, что они могут помочь вам быстрее генерировать правильные ходы для позиции и что вы можете легче использовать их для получения определенных оценочных структур и параметров.
Обычно у вас есть 1 битборд для каждой фигуры и каждой стороны (всего 12), по одному для каждого цвета (всего 2), по одному для всех фигур, один для прав на рокировку, один для стороны для перемещения. С помощью битовых операторов и битовых манипуляций вы можете рассчитать допустимые ходы для позиции с помощью предварительно вычисленных таблиц и всего нескольких битовых операций.
Я предлагаю посмотреть эту серию YouTube, в которой рассматривается весь процесс написания шахматного движка bitboard с нуля.
Еще один хороший источник информации о том, как работают концепции, — это сайт Chessprogramming .
Надеюсь, это поможет! Нелегко разобраться в этом, но выгода от их использования велика.
Комментарии:
1. спасибо за ответ! мне действительно трудно понять, как их использовать 🙂
2. То же самое и здесь, это очень сложно. Хотя просмотр этой серии на YouTube очень помог 🙂 И просто играйте с ними столько, сколько сможете сами.