@Maxximu5

Как организовать код через ООП для простой задачи?

Дали задание. Применить все принципы ООП в коде игры "Сапер".

Игру написал, создал два класса: "Поле", где обрабатывается вся логика, и класс "Игра", где клиент вызывает необходимые методы и получает результат. Объекты присутствуют, инкапсуляция тоже, а вот наследование и полиморфизм не знаю как применить.

А как бы вы делали задание?
  • Вопрос задан
  • 3303 просмотра
Пригласить эксперта
Ответы на вопрос 2
@smozhaykin
Ну как минимум можно добавить такую иерархию: базовый класс Cell с виртуальным методом Open, от него наследуются классы MineCell и EmptyCell. Метод MineCell.Open завершает игру, EmptyCell.Open открывает ячейку и показывает число мин вокруг.
Ответ написан
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
На самом деле, написав программу с GUI вы, в большинстве случаев, уже использовали все механизмы ООП, даже если сами не написали ни одного класса. Но, думаю, что вашего преподавателя такой ответ не удовлетворит, поэтому вот несколько вариантов:
1. Наследовать от базовых графических элементов и создать: класс игрового поля, клетки, содержимого клетки... И куда фантазия заведует. Полиморфным будет метод рисования, как минимум. На мой взгляд вариант плох.
2. Наследовать от класса кнопки и реализовать соответствующие поведение: флажок там ставить на правый клик и т.д. Ну и при генерации поля кнопки будут просто размещаться в нужном порядке. Тут возможно придётся переопределить метод обработки событий для кнопки ну или что-то похожее сделать...
3. Есть же у вас класс игры, вот и добавьте класс предка IGame, с виртуальным методом play(). Это быстро и решительно позволит использовать недостающие принципы ООП. Самый короткий, и печальный вариант) Но цель же сдать работу, как я понимаю.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы