Какие шаблоны проектирования можно использовать для создания системы правил / валидации для такой игры, как шахматы (это всего лишь простой пример, для реальной игры требуются более сложные наборы правил)
Я прочитал несколько вопросов на этом сайте и не нашел ни окончательного ответа, ни ответа, указывающего мне правильное направление.
Эта система потребует следующего:
- Каждый объект, к которому применены правила, должен реализовывать определенный интерфейс с методом, который является отправной точкой для проверки
- Правило должно применяться в 2 этапа: сначала его нужно проверить (можно заложить A на квадрат D4), если true, тогда выполнить метод A, если false, затем выполнить метод B
- Каждый объект может иметь несколько правил, которые должны применяться в определенной последовательности. Когда правило 1 закончено, правило 2 должно начать проверять и т. Д.
- Каждое отдельное правило (например, может перемещаться только на 1 клетку, может перемещаться только по диагонали и т. Д.) Должно быть в своем собственном классе и должно быть повторно использовано и применимо к объектам, которым нужны правила.
- Обратите внимание, что это будет использоваться в многопользовательской игре на сервере
- Обратите внимание, что каждому правилу требуется несколько объектов, чтобы проверить его действительность, например, обычно пешка может сдвинуться на 1 клетку, теперь следующий квадрат на игровой доске заполнен пешкой вашего противника. Результат: ваша пешка не может двигаться. Пешка должна включать в себя другие позиции пешек или игровую доску при ее проверке.
Другим словом для этих правил были бы поведенческие ограничения.