курсовая работа — основная тема материала.
В данной курсовой работе представлена разработка игрового приложения «Мозаика» (пазлы) на языке программирования C++ с использованием среды Microsoft Visual Studio и библиотеки WinForms. Работа включает описание предметной области, выбор инструментальных средств, алгоритмы разбиения изображения и перемешивания фрагментов, а также реализацию игрового интерфейса. Приведен полный листинг кода, включая логику классов PuzzlePiece и MyForm, что делает проект наглядным примером ООП.
- МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ
- КУРСОВАЯ РАБОТА
- РЕФЕРАТ
- СОДЕРЖАНИЕ
- ВВЕДЕНИЕ
- 1 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
- Общая характеристика предметной области
- Выбор инструментальных средств разработки
- 1.3 Постановка задачи
- 2 ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ
- 2.1 Алгоритм решения
- 2 ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ
- 2.1 Алгоритм решения
- 2.2 Описание интерфейса приложения
МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования «КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ ИМЕНИ И.Т. ТРУБИЛИНА»
Факультет прикладной информатики
Кафедра системного анализа и обработки информации
КУРСОВАЯ РАБОТА
по дисциплине «Алгоритмизация и программирование»
на тему «Программирование игрового приложения «Мозаика»»
Направление подготовки 09.03.03 «Прикладная информатика»
Направленность «Менеджмент проектов в области информационных технологий, создание и поддержка информационных систем»
Выполнил:
Цернант Виталий Сергеевич
группа ПИ2401
Руководитель:
к.пед.н., доцент
_______________ Крамаренко Т.А.
Дата защиты_____________
Оценка_____________
_______________ Крамаренко Т.А.
Краснодар 2025
РЕФЕРАТ
44 с., 2 табл., 13 рис., 2 прил.
МОЗАИКА.
Целью работы является разработка игрового приложения «Мозаика» на языке программирования С++.
Объект исследования – разработка игрового приложения «Мозаика» для платформы Windows.
Предмет исследования – объектно-ориентированные средства языка программирования С++ для реализации игрового приложения.
Разработанное приложение позволяет развивать логическое мышление, внимание и память, путем решения головоломки.
СОДЕРЖАНИЕ
- ВВЕДЕНИЕ 4
- 1 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 5
- 1.1 Общая характеристика предметной области 5
- 1.2 Выбор инструментальных средств разработки 5
- 1.3 Постановка задачи 6
- 2 ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ 9
- 2.1 Алгоритм решения 9
- 2.2 Описание интерфейса приложения 10
- 2.3 Описание программы 11
- 2.4 Результаты работы программы 15
- 3 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 21
- ЗАКЛЮЧЕНИЕ 25
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 26
- ПРИЛОЖЕНИЯ 27
ВВЕДЕНИЕ
В современном мире компьютерные игры стали неотъемлемой части в бытовой жизни человека. Есть много разных игр от простых, которые нужны для хорошего проведения времени, до самых сложных, по которым проводятся мировые соревнования с миллионными призовыми фондами. В случае данной работы и простой игры «Мозаика», она нужна для развития логического мышления, внимания и памяти, насколько сильно будет это всё развиваться будет зависеть от сложности самой игры. Разработка такого приложения актуальна для изучения принципов объектно-ориентированного программирования (ООП), понимания работы с графикой, алгоритмов решения подобных задач и обработки событий в средах разработки. Данная работа наглядно демонстрирует все вышеперечисленные технологии.
Объектом исследования этой курсовой работы стала разработка игрового приложения.
Предметом же исследования стало понимание работы с средствами создания графического интерфейса и алгоритмы обработки взаимодействия пользователя с игровыми элементами на языке С++.
Целью стала разработка игры «Пазлы» с функциональным интерфейсом, включая загрузку пользовательского изображения, таймера, подсказки и управление игровым процессом, с использованием принципов ООП.
В данной пояснительной записке будут разбираться следующие пункты:
- Описание предметной области
- Выбор инструментов для решения задачи
- Постановка задачи
- Алгоритм решения
- Описание программы
1 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
Общая характеристика предметной области
Разработанная программа представляет собой игру-пазл для операционной системы Windows, созданную с использованием языка С++ и библиотек WinForms. Эта игра относиться к логическим головоломкам и предназначена для развития пространственного мышления, внимания, логике и терпеливости пользователя.
Ключевыми особенностями могу выделить: игровую механику, которая имеет классический принцип «пятнашек» с перемещением элементов кликом мыши; динамическую генерацию пазлов в случайном порядке из загруженных фотографий-картинок пользователя; алгоритм решения данной работы; таймер с отсчетом времени сборки; 2 подсказок в виде готового результата и счётчика элементов; интерактивное меню управления с кнопками взаимодействия с программой.
Выбор инструментальных средств разработки
Основным критерием выбора инструментов для разработки стало быстрота работы программы, так как такие игры как пятнашки-пазлы должны работать без провисаний, для лучшего опыта игры для пользователей. Ведь даже самые короткие провисания в таких играх будут сильно ощущаться пользователем, что плохо скажется на обратной связи. В связи с этим критерием был выбран язык С++, так как с его помощью можно добиться наилучшей скорости работы программы.
Среда разработки выбиралась из личного предпочтения, а именно Microsoft Visual Studio, с встроенными библиотеками WinForms. Данная среда разработки удобна своим интерфейсом, помощи в поисках синтаксических ошибок для программиста и скоростью работы. А WinForms – весьма хороша своим интуитивно понятным интерфейсом, количеством инструментов, многообразными свойствами этих самых инструментов и своим обработчиком событий.
1.3 Постановка задачи
1. Формулировка задачи
Разработать игру-пазл на языке C++ с использованием WinForms, позволяющую пользователю:
- Загружать произвольные изображения с компьютера.
- Автоматически разбивать изображение на перемешиваемые фрагменты.
- Собирать пазлы кликами мыши (механика «пятнашек»).
- Получать информацию о времени сборки и количестве оставшихся ходов.
Программа должна соответствовать принципам объектно-ориентированного программирования и предоставлять интуитивно понятный интерфейс.
| Группа требований | Конкретные задачи. |
|---|---|
| Управление игрой | Кнопки: Старт, Пауза, Заново. Таймер с отображением времени.. |
| Работа с изображениями | Загрузка JPG/PNG/BMP через ‘OpenFileDialog’. Автоматическое масштабирование и деление его на сетку 4 на 4. |
| Логика игры | Перемешивание пазлов с гарантированной собираемостью. Проверка завершения сборки. |
| Пользовательский интерфейс | Подсказка с исходным изображением в отдельном окне. Отображение счетчика оставшихся пазлов. |
| Технические ограничения | Минимальные системные требования Windows 7+, .NET.Framework 4.5+. |
3. Алгоритмические задачи
- Разбиение изображения: Преобразование исходного изображения в сетку из N×N фрагментов (класс PuzzlePiece). Сохранение координат каждого фрагмента для проверки правильности сборки.
- Перемешивание: Реализация алгоритма, гарантирующего решаемость пазла (исключение «невозможных» комбинаций). Пример: метод, имитирующий 100–200 случайных допустимых ходов из собранного состояния.
- Механика перемещения: Клик по фрагменту перемещает его на соседнюю пустую клетку (проверка по оси X/Y). Обновление интерфейса после каждого хода (PictureBox::Invalidate).
- Проверка победы: Сравнение текущих координат всех PuzzlePiece с исходными. Вывод сообщения о победе при совпадении.
2 ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ
2.1 Алгоритм решения
В начале идет инициализация игры, включающая в себя:
- Загрузка изображения с последующим его разбиением на сетку, в моём случае, 4х4 фрагментов, находящихся в классе PuzzlePiece.
- Сохраняются координаты каждого элемента.
- Перемешивание путем алгоритма, который имитирует случайные допустимые ходы.
Далее начинается основный цикл программы:
2 ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ
2.1 Алгоритм решения
В начале идет инициализация игры, включающая в себя:
- Загрузка изображения с последующим его разбиением на сетку, в моём случае, 4х4 фрагментов, находящихся в классе PuzzlePiece.
- Сохраняются координаты каждого элемента.
- Перемешивание путем алгоритма, который имитирует случайные допустимые ходы.
Далее начинается основный цикл программы:
- Загрузка изображения (если ошибка, то выход из программы).
- Разбиение на пазлы.
- Перемешивание.
- Клик по пазлу – проверка хода – вариант есть, тогда ход, иначе пропуск.
- Обновление позиции.
- Проверка победы – если да, то вывод результата, иначе возвращение к «Клик по пазлу».
- Обновление UI.
2.2 Описание интерфейса приложения

Рисунок 1- Макет приложения
Таблица 2 – Описание элементов приложения
| MyForm | Form | Основной элемент, где располагаются остальные элементы. |
| pictureBoxMain | PictureBox | Отображение игрового поля с пазлами. |
| aboutToolStripMenuItem | MenuStrip | Верхнее меню с пунктом «О программе» (вывод MessageBox с информацией). |
| buttonLoadImage | Button | Загрузка пользовательского изображения (OpenFileDialog). |
| buttonStart | Button | Старт/пауза игры. Переключает текст между «Начать» и «Пауза». |
| buttonRestart | Button | Сброс игры: перемешивает пазлы заново. |
| buttonHint | Button | Открывает модальное окно с подсказкой (исходное изображение). |
| labelTime | Label | Отображает время с момента старта (формат «Время: 00:00»). |
| labelPieces | Label | Счетчик оставшихся для размещения пазлов (например, «Осталось: 5»). |
или напишите нам прямо сейчас:
Требуется пройти тест по немецкому языку в личном кабинете Синергия
Антон, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Здравствуйте можете выполнить практическую здание, информационные технология на транспорте для заочного обучения могу скинуть личный кабинет.
Владимир, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Ищу помощь с выполнением проекта по обж на тему: Первая помощь при различных видах кровотечений во время работы с острыми кромками вращающихся частей машин и механизмов.
Екатерина, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Прошу помочь написать выпускную квалификационную работу + 2 отчета к ней
Петя, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Нужен ответ на Практическое задание на тему «Процесс защиты персональных данных в кадровой службе»
Оля, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Учебная и производственная практика для колледжа МФЮА
Надежда, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Вступительные дистанционные тесты в мти. Русский, история, обществознание
Мария, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Практическое занятия 1 __Тема:Логистики как наука и сфера профессиональнной деятельности. __Практическое занятия 2__Тема 2.Анализ полной стоимости в логистики.
Сергей, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Помощь в написании пояснительной записки
Дмитрий, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Выполнить 4 практических задания по дисциплине Технические средства управления офисом
Александр, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Колледж развития инновационных технологий__Сдать сессию 38.01.02 Продавец, контролер-кассир
Валентина, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Очень много Долгов надо сделать за 5 дней все
Галина, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Требуется выполнение работы (преддипломная практика) ДЛя уточнения информации прошу обратной связи по почте
Аня, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Курсовая на тему ПЕРСОНАЛ ПРЕДПРИЯТИЯ И ПУТИ ПОВЫШЕНИЯ ЭФФЕКТИВНСТИ ИСПОЛЬЗОВАНИЯ РАБОЧЕЙ СИЛЫ
Евгений, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
У меня есть готовая курсовая, в которой препод придрался к одной короткой главе с непонятными требованиями на счет DFD и IDEF0 нотаций, мне нужно поправить только эту главу (там буквально полторы странички) Направление Прикладная информатика
Роман, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Ответы на тесты с темы детско-родительские отношения, конфликты…. и до финального теста
Ксения, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Решение теста Правовые основы оперативно-розыскной деятельности
Кирилл, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Курсовая работа по предмету Архитектура гражданских и промышленных зданий, на тему Индивидуальный жилой дом коттедж (вариант 1)
Андрей, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Дипломная работа на тему Аптечный ассортимент: особенности сезонных колебаний
Катя, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Добрый день. Подскажите стоимость теста на время дистанционно по дисциплине сопротивление материалов. 40 минут 11-15вопросов.
Алена, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Практические задания по дисциплинам. Специальность Историко-культурный туризм.
Арсений, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!