Я пишу игру Nine Men's Morris на Java и уже реализовал правила игры. и ИИ, использующий негамакс. Однако игра основана на массивах, и генерация ходов занимает довольно много времени, когда ИИ думает (начиная с 6-го слоя).
Мой массив позиций основан на следующей диаграмме:
// 0 1 2
// 3 4 5
// 6 7 8
// 9 10 11 12 13 14
// 15 16 17
// 18 19 20
// 21 22 23
У меня есть дополнительные массивы, заполненные возможными мельницами и соседними позициями.
Я решил изменить игру с массивов на использование битовых досок, чтобы генерация ходов и другие области, которые в настоящее время используют массивы, были намного быстрее.
Моим первым шагом было бы иметь битовую доску для каждого игрока, которая будет отслеживать фигуры игрока на доске.
Вторым шагом будет определение свободных позиций. Я знаю, что могу сделать это, выполнив:
freepositions = ~(player1bb | player2bb);
Итак, мой вопрос: как я могу настроить/обновить битовые доски плеера, чтобы отслеживать их фигуры?