Шахматы
Общая идея проекта
Разработка консольного приложения на языке Ruby для симуляции классической игры шахмат с возможностью игры между двумя игроками на одном устройстве.
Основные функциональные требования:
Отображение доски и расположения всех фигур в консоли.
Валидация ввода игрока на предмет соответствия правилам игры.
Отслеживание ходов игроков и их очередности.
Распознавание и оповещение о шахе и мате.
Автоматическое сохранение и загрузка текущей партии.
Пример интерфейса
Пример ввода и вывода ходов
И так далее...
Структура приложения
Главный класс, инкапсулирующий логику игры и отслеживающий ходы, очередность игроков, шах, мат.
Класс доски, содержащий и управляющий расположением фигур.
Классы для каждого типа фигур (Pawn, Rook, Knight, Bishop, Queen, King), содержащие информацию о возможных ходах, правилах движения конкретных фигур и текущем положении.
Класс игрока, содержащий информацию о цвете фигур игрока и текущем статусе игры (шах, для рокировки и т.д.)
Ожидаемые результаты и ограничения
Приложение должно успешно симулировать игру шахмат между двумя игроками с соблюдением всех классических правил.
Документация и комментарии к коду должны быть предоставлены для облегчения понимания и дальнейшей поддержки или расширения функционала.
Ведение гита должно придерживаться любой набиолее популярной стратегии: GitFlow, OneFlow и тд.
Покрытие тестами всей бизнес логики. Если ваш код проходит тесты на работоспособность, то в дальнейшем при разбработке фич будет крайне сложно сломать вашу игру.
Last updated