Переделываем игру Пятнашки в Пазл картинки. Убираем кнопки, вместо них динамически размещаем матрицу PictureBox'ов, в которые загружаем кусочки картинки, предварительно разрезав их и сохранив все части картинки в матрицу Image. Размер поля можно будет выбирать, от 3 на 3 до 6 на 6.
Дата отправки отчёта:
12 апреля 2016 г.
Задание выполнено: за
3 час. 10 мин.
Чему научился:
Разрезать картинку на фрагменты.
Что было сложным:
Абстракции... Вовремя остановиться :D Заметил, что код в играх пятнашки и пазл практически идентичен. Хороший посыл для наследования. Кроме того, в следующих уроках будет игра 2048, где по сути выполняются те же действия с объектами и можно будет обобщить. Но я решил не торопиться и сначала получить конкретные классы всех трех игр и потом уже смотреть есть ли смысл выделять общий интерфейс.
Комментарии:
В уроке убрали одно условие и все - новая игра - пазл! Это здорово. Для игры пятнашки думаю не стоит использовать картинки, отвлекают от сути, а в пазле самое то. Поэтому на скриншотах игра пазл 5 на 5. Вне задания поработал над кодом, потребовалось расширить свой шаблон Matrix для классов без конструктора по умолчанию и для классов с запрещенными операциями копирования, например std::unique_ptr.
Научился: Повторил динамическое добавление элементов. Вместо заданного числа уровней в меню добавил две кнопки "меньше" и "больше". При нажатии на "меньше" число уровней уменьшается, при нажатии на "больше" число уровней увеличивается. Число уровней ограничено сверху числом 15, снизу - 3. Надо сказать, при мелком разбиении картинки некторые картинки с одинаковыми фрагментами собрать почти невозможно:-))
Научился: Разрезать картинки и узнавать их координаты Трудности: Так как дополник код предыдкщего упока вощникли большие трудности. И с пониманием к разрезается картинка ОЧЕНЬ круто