Создаём популярную игру «Змейка». На примере простых объектов демонстрация основ ООП.
Дата отправки отчёта:
25 июня 2019 г.
Задание выполнено: за
3 дня 3 час. 11 мин.
Чему научился:
К сожалению, не вышло =( В последнее время замотался, возможно это сказывается. Надеюсь найду силы, чтобы исправить программу.
Что было сложным:
Хотел написать змейку, но вместо этого выловил сначала проблему с памятью (3Мб файл изображения пустой клетки это оказывается много!!). Соответственно - не эффективное использование ресурсов. Больше печалит не это, а то, что не хватило резюме в конце - краткое описание структуры проекта с объяснением как что работает - без подробного захода в каждый метод. Просто после ~30 минут теряется логика в структуре. Автор-то конечно знает как и что у него работает, а вот когда 1 раз делаешь, то не знаешь, как задумано. Ну и как всегда - надоело уже повторять - зачем такой длинный урок более часа + безумная скорость? Плохо усваивается в таких условиях. И отчего не используются почти нигде стеки, очереди, List, Dictionary, ArrayList и др.? Просто в проектах, приближенных к реальности они и тут и там, да и в тестовых заданиях часто это есть. Это же не просто так.
В принципе - это идея для нового курса - структуры данных. Я даже могу дать задачу и пару тестов на стеки. Потом на очереди и всякого рода List. Ну кстати про сортировки тоже спрашивают. По-моему у нас были вебинары и по сортировкам и по всяким структурам данных, а также паттернах. У меня брат на C# прогит, когда узнал про эти паттерны носился как ни в себе - везде старался их применить. Ну у меня примерно такое же было ощущение от регулярных выражениях, особенно, когда в выгрузках баз данных используешь и как тебе это облегчаешь жизнь.
Научился: Повторил обработку нажатия клавиш keyPressEvent, работу с таймером QTimer, матрицами boost::ublas, очередью std::queue. Трудности: Остановиться в абстракции кода. В качестве структуры данных для хранения тела змеи использовал очередь.
Научился: Отличный урок. Попрактиковал ООП. Делал такую игру раньше, только использовал класс Rectangle и добавлял туда картинку и без использования панели.