- Бучилкин Никита
- Курченко Матвей
- Михаил Рябчиков
Необходимо визуализировать игру в шахматы с помощью библиотеки FLTK и дать возможность играть в режиме один против одного.
- настроить взаимодействие доски и фигур
- необходимо проверять корректность ходов фигур и подсвечивать доступные ходы
- добавить рокировку и взятие на проходе
- проверять на шах
- обнаруживать окончание игры (мат)
Нужно создать абстрактный класс фигуры от которого будут наследоваться классы, описывающие каждую фигуру в отдельности. Также необходимо создать классы для доски и клеток, из которых она состоит, и добавить класс, ответственный за подсвечивание доступных ходов.
- Класс Chessboard, в котором храняться объекты типа Cell, обозначающие клетки.
- Класс Figure и производные от него классы Pawn, King, Bishop, Knight, Queen, Rook, в которых нужно переопредилить функции correct_step и show_possible_steps ответственные за проверку и отображение корректных ходов соответственно.
- Класс DangerSign при шахе королю, должен подсвечивать короля.
- Класс RedCross должен показывать недоступные при шахе ходы.
- Классы Frame и VisualSteps ответственны за отображение на экране возможного поедания фигур и доступных ходов.
Сначала были созданы классы Chessboard и Cell. Далее Figure, Pawn, King, Bishop, Knight, Queen, Rook, которые в последствии были подвержены изменениям в связи с добавлением нового функционала. Затем были добавлены Frame и VisualSteps. И в конце RedCross и DangerSign.
- Реализация отображения возможных ходов
- Реализация рокировки
- Реализация провреки шаха и окончании игры.
- Реализация класса AttachManager, отвечающего за привязку и отвязку графических объектов от окна