Я хотел бы предложить массив из 64 элементов, таких как:
byte [64] Squares;
Таким образом, вам нужно только, чтобы представлять позицию шахматной доске с помощью одного байта, это намного быстрее.
При работе с одним индексом для ссылки на позиции шахматной доски есть определенные вещи, которые необходимо знать, чтобы облегчить жизнь. Например, как вы знаете, что две позиции находятся в одной строке или столбце? Существует простой трюк, чтобы понять это.
Ряд
Для того, чтобы выяснить строку позиции разделить позицию на 8 и принять целую часть результата. Например, позиция 63, деленная на 8, равна 7.875, которая равна строке 7. Позиция 3, деленная на 8, равна 0,375, поэтому 0.В C# литья на целое число, вы всегда будете получать только целую часть числа, а следовательно:
Row = (int)(position/8)
Колонка
Чтобы выяснить столбец позиции, которую вы используете оператор модуля, выполнив положение модуля 8. например, положение 24 модуля 8 столбец 0. позиция 15 модуль 8: 7, следовательно,
Column = position % 8
Вооруженные с этими двумя понятиями мы можем преобразовать любой позиции на нашем 64 квадратной доске к столбца и строки ,
Если вы хотите узнать больше о создании собственного шахматного движка взглянуть на http://www.chessbin.com
контратипе http://stackoverflow.com/questions/39874/how-do-i-model-a-chessboard -when-programming-a-computer-to-play-chess –
@neil, я просто посмотрел, что это не обман. Мой вопрос - это конкретный вопрос, и этот вопрос, который вы связали, не отвечает на него – Fredou