курсовая работа — Программирование игрового приложения «Мозаика»

курсовая работа — основная тема материала.

В данной курсовой работе представлена разработка игрового приложения «Мозаика» (пазлы) на языке программирования C++ с использованием среды Microsoft Visual Studio и библиотеки WinForms. Работа включает описание предметной области, выбор инструментальных средств, алгоритмы разбиения изображения и перемешивания фрагментов, а также реализацию игрового интерфейса. Приведен полный листинг кода, включая логику классов PuzzlePiece и MyForm, что делает проект наглядным примером ООП.

МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего образования «КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ ИМЕНИ И.Т. ТРУБИЛИНА»

Факультет прикладной информатики
Кафедра системного анализа и обработки информации

КУРСОВАЯ РАБОТА

по дисциплине «Алгоритмизация и программирование»
на тему «Программирование игрового приложения «Мозаика»»

Направление подготовки 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. Алгоритмические задачи

  1. Разбиение изображения: Преобразование исходного изображения в сетку из N×N фрагментов (класс PuzzlePiece). Сохранение координат каждого фрагмента для проверки правильности сборки.
  2. Перемешивание: Реализация алгоритма, гарантирующего решаемость пазла (исключение «невозможных» комбинаций). Пример: метод, имитирующий 100–200 случайных допустимых ходов из собранного состояния.
  3. Механика перемещения: Клик по фрагменту перемещает его на соседнюю пустую клетку (проверка по оси X/Y). Обновление интерфейса после каждого хода (PictureBox::Invalidate).
  4. Проверка победы: Сравнение текущих координат всех PuzzlePiece с исходными. Вывод сообщения о победе при совпадении.

2 ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ

2.1 Алгоритм решения

В начале идет инициализация игры, включающая в себя:

  • Загрузка изображения с последующим его разбиением на сетку, в моём случае, 4х4 фрагментов, находящихся в классе PuzzlePiece.
  • Сохраняются координаты каждого элемента.
  • Перемешивание путем алгоритма, который имитирует случайные допустимые ходы.

Далее начинается основный цикл программы:

2 ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ

2.1 Алгоритм решения

В начале идет инициализация игры, включающая в себя:

  • Загрузка изображения с последующим его разбиением на сетку, в моём случае, 4х4 фрагментов, находящихся в классе PuzzlePiece.
  • Сохраняются координаты каждого элемента.
  • Перемешивание путем алгоритма, который имитирует случайные допустимые ходы.

Далее начинается основный цикл программы:

  1. Загрузка изображения (если ошибка, то выход из программы).
  2. Разбиение на пазлы.
  3. Перемешивание.
  4. Клик по пазлу – проверка хода – вариант есть, тогда ход, иначе пропуск.
  5. Обновление позиции.
  6. Проверка победы – если да, то вывод результата, иначе возвращение к «Клик по пазлу».
  7. Обновление 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»).
Эксперт
Анна
Анна
Всего несколько лет назад онлайн-курсы были почти полностью связаны с бизнес-сферой. Теперь дистанционный формат обучения – наша повседневность. Помогу разобраться с курсами, заданиями, итоговыми работами дистанционно!
Задать вопрос
Эксперт
Елена
Елена
Исследования ученых о взаимосвязи ума и красоты говорят о том, что умные люди – красивые!
Задать вопрос
Эксперт
Владимир
Владимир
Секреты успешного обучения? Какие они? Точно не Chat GPT! Главное - это вера в себя и наличие ответственного помощника.
Задать вопрос
Эксперт
Алексей
Алексей
У онлайн-обучения много плюсов. Но есть и минусы. Один из них – откладывание на потом. Если у Вас накопилось много задолженностей, обратитесь за помощью к нашим консультантам. Вместе составим график, шаг за шагом придем к нужному результату.
Задать вопрос
Представленная информация была полезной?
ДА
83.96%
НЕТ
16.04%
Проголосовало: 374

или напишите нам прямо сейчас:

⚠️ Пожалуйста, пишите в MAX или заполните форму выше.
В России Telegram и WhatsApp блокируют - сообщения могут не дойти.
Оцените статью
База учебных работ
Добавить комментарий

  1. Комментарий
    Антон автор

    Требуется пройти тест по немецкому языку в личном кабинете Синергия

    Ответить
    1. Комментарий
      Татьяна

      Антон, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  2. Комментарий
    Владимир автор

    Здравствуйте можете выполнить практическую здание, информационные технология на транспорте для заочного обучения могу скинуть личный кабинет.

    Ответить
    1. Комментарий
      Татьяна

      Владимир, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  3. Комментарий
    Екатерина автор

    Ищу помощь с выполнением проекта по обж на тему: Первая помощь при различных видах кровотечений во время работы с острыми кромками вращающихся частей машин и механизмов.

    Ответить
    1. Комментарий
      Татьяна

      Екатерина, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  4. Комментарий
    Петя автор

    Прошу помочь написать выпускную квалификационную работу + 2 отчета к ней

    Ответить
    1. Комментарий
      Татьяна

      Петя, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  5. Комментарий
    Оля автор

    Нужен ответ на Практическое задание на тему «Процесс защиты персональных данных в кадровой службе»

    Ответить
    1. Комментарий
      Татьяна

      Оля, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  6. Комментарий
    Надежда автор

    Учебная и производственная практика для колледжа МФЮА

    Ответить
    1. Комментарий
      Татьяна

      Надежда, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  7. Комментарий
    Мария автор

    Вступительные дистанционные тесты в мти. Русский, история, обществознание

    Ответить
    1. Комментарий
      Татьяна

      Мария, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  8. Комментарий
    Сергей автор

    Практическое занятия 1 __Тема:Логистики как наука и сфера профессиональнной деятельности. __Практическое занятия 2__Тема 2.Анализ полной стоимости в логистики.

    Ответить
    1. Комментарий
      Татьяна

      Сергей, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  9. Комментарий
    Дмитрий автор

    Помощь в написании пояснительной записки

    Ответить
    1. Комментарий
      Татьяна

      Дмитрий, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  10. Комментарий
    Александр автор

    Выполнить 4 практических задания по дисциплине Технические средства управления офисом

    Ответить
    1. Комментарий
      Татьяна

      Александр, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  11. Комментарий
    Валентина автор

    Колледж развития инновационных технологий__Сдать сессию 38.01.02 Продавец, контролер-кассир

    Ответить
    1. Комментарий
      Татьяна

      Валентина, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  12. Комментарий
    Галина автор

    Очень много Долгов надо сделать за 5 дней все

    Ответить
    1. Комментарий
      Татьяна

      Галина, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  13. Комментарий
    Аня автор

    Требуется выполнение работы (преддипломная практика) ДЛя уточнения информации прошу обратной связи по почте

    Ответить
    1. Комментарий
      Татьяна

      Аня, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  14. Комментарий
    Евгений автор

    Курсовая на тему ПЕРСОНАЛ ПРЕДПРИЯТИЯ И ПУТИ ПОВЫШЕНИЯ ЭФФЕКТИВНСТИ ИСПОЛЬЗОВАНИЯ РАБОЧЕЙ СИЛЫ

    Ответить
    1. Комментарий
      Татьяна

      Евгений, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  15. Комментарий
    Роман автор

    У меня есть готовая курсовая, в которой препод придрался к одной короткой главе с непонятными требованиями на счет DFD и IDEF0 нотаций, мне нужно поправить только эту главу (там буквально полторы странички) Направление Прикладная информатика

    Ответить
    1. Комментарий
      Татьяна

      Роман, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  16. Комментарий
    Ксения автор

    Ответы на тесты с темы детско-родительские отношения, конфликты…. и до финального теста

    Ответить
    1. Комментарий
      Татьяна

      Ксения, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  17. Комментарий
    Кирилл автор

    Решение теста Правовые основы оперативно-розыскной деятельности

    Ответить
    1. Комментарий
      Татьяна

      Кирилл, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  18. Комментарий
    Андрей автор

    Курсовая работа по предмету Архитектура гражданских и промышленных зданий, на тему Индивидуальный жилой дом коттедж (вариант 1)

    Ответить
    1. Комментарий
      Татьяна

      Андрей, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  19. Комментарий
    Катя автор

    Дипломная работа на тему Аптечный ассортимент: особенности сезонных колебаний

    Ответить
    1. Комментарий
      Татьяна

      Катя, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  20. Комментарий
    Алена автор

    Добрый день. Подскажите стоимость теста на время дистанционно по дисциплине сопротивление материалов. 40 минут 11-15вопросов.

    Ответить
    1. Комментарий
      Татьяна

      Алена, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
  21. Комментарий
    Арсений автор

    Практические задания по дисциплинам. Специальность Историко-культурный туризм.

    Ответить
    1. Комментарий
      Татьяна

      Арсений, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!

      Ответить
Заявка на расчет