Я собираюсь написать шахматный сервер и одного или нескольких клиентов для шахмат, и я хочу описать правила игры в шахматы (например, допустимые ходы в зависимости от состояния игры, правила завершения игры) на языке программирования независимый путь. Это немного сложно, так как некоторые шахматные правила (например, King Castling, en passent, ничьи, основанные на 3 или более повторных ходах) основаны не только на макете доски, но и на истории ходов.
Я бы предпочел формат:
- текстуальное
- человек читабельный
- на основе стандарта (например, YAML, XML)
- легко разбирается на разных языках
Но я готов пожертвовать любым из них ради подходящего решения.
Мой главный вопрос: как я могу построить алгоритмы такой сложности, которые работают с таким сложным состоянием из формата данных?
Следующим заданием является: Можете ли вы привести пример аналогичной проблемы, решаемой аналогичным образом, которая может служить отправной точкой?
Редактировать: В ответ на запрос на уточнение - учтите, что у меня будет сервер, написанный на Python, один клиент, написанный на C #, и другой клиент, написанный на Java. Я хотел бы избежать указания правил (например, для допустимого перемещения фигуры, обстоятельств для проверки и т. Д.) В каждом месте. Я бы предпочел указать эти правила один раз в независимой от языка манере.