Описание тега bitboard

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

Не понимая, как работает техника битборда для шахматных досок

Мой мозг курит, пытаясь понять механику этой техники. Чтобы упростить задачу, давайте представим, что вместо шахмат и множества сложных движений фигур у нас есть игра, состоящая только из двух фигур и одного ряда из 8 позиций. Одна часть - это треуг…
02 авг '16 в 18:51
2 ответа

Отразить одномерное представление массива по оси X

Я занимаюсь программированием шахматного ИИ и столкнулся с проблемой, связанной с реализацией таблиц с квадратными фигурами. Так как я хочу иметь только одну квадратную таблицу на каждую сторону, мне нужна функция, чтобы перевернуть одномерный масси…
03 дек '15 в 01:43
3 ответа

Генерация скользящего движения с использованием магического битборда

Это вопрос, касающийся общей картины того, как проверить ход скользящей фигуры в шахматах, используя магические битборды. Просто чтобы уточнить, я не спрашиваю, как магические битборды работают внутри. Теперь немного подробнее по этому вопросу. Я пи…
04 июн '13 в 18:42
1 ответ

Преобразование функции C++ в C#

Я пытаюсь преобразовать функцию C++ в C#, но у меня не получается второй час подряд. Нужна помощь:/ Функция взята из этого вопроса bool haswon(unsigned __int64 newboard) { unsigned __int64 y = newboard & (newboard >> 6); if (y & (y &gt…
29 апр '17 в 01:44
1 ответ

Битовые битовые операции над 64-битными целыми числами на iPhone 4 и 5?

У меня довольно интересная проблема. Я пишу шахматный движок с использованием битбордов для iOS 7, который я хочу работать на iPhone 4, 4s, 5 и 5s. До сих пор я проводил все свои испытания в симуляторе iOS 64bit для iPhone, но решил запустить его на…
24 фев '14 в 12:42
2 ответа

Как я могу использовать 64-битные переменные без знака в битовых операциях в Clojure?

У меня есть следующий код: (defn BitScanReverse [^Long bit-board] (loop [value bit-board r 0] (cond (> value 0x00000000FFFFFFFF) (recur (unsigned-bit-shift-right value 32) (+ r 32)) (> value 0x000000000000FFFF) (recur (unsigned-bit-shift-right…
28 фев '15 в 20:16
4 ответа

Есть ли дешевый способ "зеркального отражения" битов в байте?

При попытке проверить достижимость по прямой линии без зацикливания, вы можете использовать представление в виде битборда. Представьте себе шахматы, строку или столбец доски, представленные в виде байта, и вопрос, может ли ладья на квадрате X захват…
22 янв '15 в 20:01
1 ответ

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

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

Обновить битовую доску атаки при обновлении одной атаки

Это всего лишь принцип. Я бы хотел, чтобы атакованный битборд обновлялся при изменении одной из битбордов атаки (коня, слона или пешки) без повторения строки 1. Возможно ли это? Каков наилучший способ сделать это? В классе Борг или просто используя …
02 фев '15 в 00:51
4 ответа

Эффективное представление доски для стратегии настольной игры AI

Будет ли представление в виде доски все еще столь же эффективно в тупой шахматной стратегии, которая имеет менее 64 позиций, или будет более практичной реализация почтового ящика на основе массива? В нашем классе искусственного интеллекта проводится…
2 ответа

Распознавание шахматной фигуры с битбордами

Когда шахматная доска хранится в различных битбордах, как современные шахматные движки распознают, какой тип / боковая фигура находится в конкретной ячейке? У меня проблемы с этим, так как, чтобы узнать, какой тип / боковая часть есть конкретный бит…
29 июл '15 в 07:01
2 ответа

Луч атакует на доске

Я пытаюсь вычислить лучевые атаки, учитывая индекс представления 64-битной Long board: (defn se [board index] "Produces a ray attack from the indexed bit in the south-east direction" (reduce bit-or (for [bit (rest (range index 0 -7))] (bit-flip boar…
03 май '12 в 16:14
1 ответ

Поколение скользящих фигур в шахматном двигателе

Так что у меня возникли некоторые проблемы, когда я обдумывал проблему. В настоящее время я пишу шахматный движок на Java, основанный на битборде (это было все понятно). Пока что все ходы пешки / короля / коня работают как положено и без ошибок. Что…
11 апр '17 в 16:30
1 ответ

Как вращать центрированный шестиугольный битборд?

Рассмотрим следующее центрированное представление гексагональной панели (заполнение выделено жирным шрифтом): 56 55 49 54 48 42 53 47 41 35 52 46 40 34 28 45 39 33 27 44 38 32 26 20 37 31 25 19 36 30 24 18 12 29 23 17 11 28 22 16 10 04 21 15 09 03 2…
01 сен '18 в 19:21
2 ответа

Условие победы алгоритма Trax

Я пытался реализовать игру Trax на C++. Для тех, кто не знает: http://www.traxgame.com/about_rules.php До сих пор я построил доску и создал правила, в которых я могу разместить свою следующую плитку и какую из них мне разрешено устанавливать. Но сей…
20 апр '15 в 22:56
1 ответ

Битборд: подсчет элементов у соседей

Чтобы представить состояние 2D настольной игры, я использую битборды с 16- битными целыми числами без знака. Состояние кодируется с 1 для присутствия части и 0 в противном случае. Как подсчитать количество фигур, имеющих по крайней мере одну смежную…
19 мар '18 в 14:02
1 ответ

Создание масок битборда для перемещения

Я пытаюсь понять, как работает представление битборта в шахматном программировании, и я не могу найти полезную информацию (или просто не могу правильно ее перевести ^^) об одной детали. Мой вопрос заключается в том, как автоматически генерировать ма…
19 янв '14 в 21:27
1 ответ

Swift 3 uint64 переполняется при попытке назначить 64-битное целое число

Я пытаюсь реализовать битборды в Swift и пытаюсь сохранить 64-битное целое число в UInt64 и получить ошибку переполнения. var white_queen_bb:uint64 = 0001000000000000000000000000000000000000000000000000000000000000 as UInt64; Integer Literal '100000…
15 ноя '16 в 20:07
9 ответов

"Изолировать" конкретную строку / столбец / диагональ от 64-разрядного числа

Хорошо, давайте рассмотрим 64-битное число, биты которого образуют таблицу 8x8. Например 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 написано как a b c d e f g h ---…
26 янв '13 в 14:25
1 ответ

Самое быстрое преобразование битборда (5x5)

Для решателя головоломки, который я пишу, я ищу самый быстрый алгоритм (минимальное количество битовых операций) для транспонирования битборда 5x5 с 2 битами на квадрат в головоломке, поэтому: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18…
21 мар '15 в 22:45