Как мне моделировать шахматную доску при программировании компьютера для игры в шахматы? - PullRequest
21 голосов
/ 02 сентября 2008

Какие структуры данных вы бы использовали для представления шахматной доски для компьютерной шахматной программы?

Ответы [ 14 ]

0 голосов
/ 23 февраля 2014

Я знаю, что это очень старый пост, с которым я сталкивался несколько раз, когда гуглил шахматное программирование, но я чувствую, что должен упомянуть, что вполне возможно смоделировать шахматную доску с одномерным массивом, например. шахматная доска [64];

Я бы сказал, что это самый простой подход к представлению на шахматной доске ... но, конечно, это базовый подход.

Является ли структура массива одномерной шахматной доски более эффективной, чем двумерный массив (который нуждается во вложенном цикле for для доступа и управления индексами)?

Также возможно использовать одномерный массив с более чем 64 квадратами для представления квадратов вне стола, например, шахматная доска [120]; (с правильно инициализированными массивом часового и игрового поля).

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

0 голосов
/ 07 февраля 2009

Я бы на самом деле не моделировал шахматную доску, я просто моделировал бы расположение фигур. Тогда у вас могут быть границы для шахматной доски.

Piece.x= x position of piece
Piece.y= y position of piece
0 голосов
/ 02 сентября 2008
int[8][8]

0=no piece
1=king
2=queen
3=rook
4=knight
5=bishop
6=pawn

используйте положительные значения для белых и отрицательные значения для черных

0 голосов
/ 02 сентября 2008

Массив, вероятно, будет в порядке. Если вам нужны более удобные способы «обхода» платы, вы можете легко создавать методы для абстрагирования от деталей реализации структуры данных.

...