Я бы предложил массив из 64 элементов, таких как:
byte [64] Squares;
Таким образом, вам нужно только представить позицию шахматной доски одним байтом, это намного быстрее.
При работе с одним индексом для ссылки на позиции шахматной доски есть определенные вещи, которые нужно знать, чтобы облегчить жизнь. Например, как вы узнаете, что две позиции находятся в одной строке или столбце? Есть простой трюк, чтобы понять это.
Строка
Чтобы выяснить строку позиции, вы делите позицию на 8 и берете целую часть результата. Например, позиция 63, разделенная на 8, равна 7,875, что соответствует строке 7. Позиция 3, разделенная на 8, равна 0,375, поэтому 0. В C # путем приведения к целому числу вы всегда получите только целую часть числа, следовательно:
Row = (int)(position / 8)
Колонка
Чтобы вычислить столбец положения, вы используете оператор модуля, выполняя модуль 8 положения. Например, модуль 8 положения 24 - это столбец 0. Модуль 8 положения 15 - это 7, следовательно,
Column = position % 8
Вооружившись этими двумя концепциями, мы можем преобразовать любую позицию на нашей 64-квадратной доске в столбец и строку.
Если вы хотите больше узнать о создании собственного шахматного движка, взгляните на http://www.chessbin.com