РАЗРАБОТКА DESKTOP ПРИЛОЖЕНИЯ ДЛЯ ИГРЫ В РЕБУСЫ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ С#

РАЗРАБОТКА DESKTOP ПРИЛОЖЕНИЯ ДЛЯ ИГРЫ В РЕБУСЫ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ С#

Авторы публикации

Рубрика

Информационные технологии

Просмотры

52

Журнал

Журнал «Научный лидер» выпуск # 4 (257), Январь ‘26

Поделиться

Данная статья посвящена процессу разработки desktop приложения для игры в ребусы с использованием языка программирования C#. Рассматриваются этапы проектирования, реализация интерфейса и логики игры, методы хранения и загрузки уровней, а также организация взаимодействия пользователя с программой.

В последние годы постоянно расширяется влияние web - технологий, но, несмотря на это, desktop приложения, как и прежде, остаются востребованными в тех случаях, когда необходимо обеспечить наибольшую эффективность работы пользователя.

Desktop приложение ¾ программа, которая устанавливается непосредственно на компьютер пользователя. В отличие от веб-приложений, которые работают через браузер, desktop приложение запускаются локально, без постоянного подключения к интернету [6].

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

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

В качестве инструмента разработки выбрана современная среда .NET и язык программирования C#, зарекомендовавшие себя как удобные и производительные инструменты для создания качественных приложений различного назначения.

Desktop приложение включает 15 уникальных ребусов, в которых зашифрованы термины технического английского языка в сфере информационных технологий. Каждый ребус был создан с использованием инструментов нейросети AI-GPTBot и специального генератора ребусов [1] (рисунок 1).

Рисунок 1. Ребус

Для desktop приложения использована бесплатная и полнофункциональная среда разработки - Visual Studio Community 2019.

Microsoft Visual Studio – это интегрированная среда разработки (Integrated Development Environment – IDE) корпорации Microsoft для создания, документирования, запуска и отладки программ, написанных на различных языках программирования [4].

Основным понятием C# является объектно-ориентированное программирование (ООП) [5]. Создавать, компилировать и выполнять программы на С#, используя Visual Studio, можно двумя способами: пользуясь, во-первых, интегрированной средой разработки Visual Studio, а во-вторых, — компилятором командной строки csc. ехе [5].

Нейросеть AI-GPTBot – онлайн-нейросеть, предоставляющая доступ к языковым моделям (включая GPT-4o, Claude 3.5) на русском языке [1].

Создание графического интерфейса пользователя (GUI) с помощью технологии Windows Forms является одним из самых простых способов быстрой разработки приложения, не только благодаря простой объектной модели, но и обширной поддержке Windows Forms в Visual Studio.

Windows Forms, часто называемые WinForms — это платформа графического пользовательского интерфейса (GUI), входящая в состав Microsoft.NET Framework. Она упрощает разработку настольных приложений, предоставляя широкий набор элементов управления и функций для создания удобных интерфейсов [3].

Созданный проект включает минимально необходимый комплект файлов, каждый из которых выполняет определённую функцию:

MainForm.cs (или другое корректное название, например, Form1.cs) — ключевой файл проекта, содержащий основную логику приложения. Здесь создаются обработчики событий, определяются свойства и поля, реализуются собственные методы либо переопределяются унаследованные от базового класса (System.Windows.Forms.Form) [2].

MainForm.Designer.cs — автоматически генерируемый файлом визуального конструктора код, отражающий структуру формы и её компонентов. Обычно содержимое этого файла редактировать вручную не требуется [2].

Файлы ресурсов, такие как Resources.resx, MainForm.resx и прочие, содержащие ресурсы приложения (графика, аудиофайлы, локализуемые строки и прочее). Первый предназначен для общих ресурсов всей программы, остальные связаны с конкретными формами.

Program.cs — файл точки входа приложения, практически неизменяемый вручную.

Форма (Form) представляет собой окно, отображаемое программой. Этот класс используется для создания окон разных типов: стандартные окна, инструменты, окна без рамок или плавающие панели. За счёт настраиваемых свойств класса можно изменять внешний вид, размеры, положение и поведение окна. Например, свойство Text задаёт заголовок окна, Size и DesktopLocation определяют его начальный размер и позицию на экране, а ForeColor позволяет изменить цвет текста элементов управления внутри формы.

Метод Main () служит точкой входа в любую программу на C#, традиционно находится в отдельном файле инициализации, хотя в небольших проектах может располагаться непосредственно в самом основном классе формы.

Для создания нового проекта используется «Приложение Windows Forms». В визуальном конструкторе «Form1» вводится название «Game Rebus» В панели свойства (Внешний вид) напротив ячейки Text дублируется название игры (рисунок 2).

Рисунок 2. Изменение названия формы

В «Mainmenu» добавляется фоновая картинка (рисунок 3).

Рисунок 3. Добавление фона

Следующим этапом будет добавление кнопок Button 1, Button 2, Button 3, Button 4. Текст кнопок меняется следующим образом: Button 1 называется «Play», Button 2-«Rating», Button 3-«Rules» и Button 4-«Exit». Шрифт «Microsoft Sans Serif» и цвет - оранжевый и применяется это на всех кнопках (рисунок 4).

Рисунок 4. Изменение названия и шрифта кнопок

Стартовая страница приложения «Rebus» готова. Для функционирования кнопок необходимо добавить соответствующий код. В обозревателе решений -RebusSolving (название исходного проекта), правой кнопкой мыши выбрать пункты меню «Добавить → Форма Windows Forms» и дать название новой форме «Game.cs» (см. рисунок 5).

Рисунок 5. Добавление формы

Дополнить форму элементами pictureBox1, label1, textBox1, button1. В label1 изменить текст на «Ваш вариант ответа:», button1- «Следующий ребус» (рисунок 6).

Рисунок 6. Форма «Game.cs»

В классе «game» задается имя игрока; сложность и расчетный коэффициент; номер вопроса, который выводится; счетчик времени для сложного уровня; количество очков; количество правильных ответов.

В вспомогательном классе «Qwestion» хранятся данные ребуса - ответ, подсказка и название изображения, сложность уровней. Если легкий уровень присваивается значение «= 0», средний «=1» и сложный «=2» (рисунок 7). Заполняется и выводится список ребусов (рисунок 8).

Рисунок 7. Уровень сложности

Рисунок 8. Список ребусов

Для работы с базой данной (БД) удобно использовать менеджер БД, с помощью которого можно управлять базой в визуальном режиме. Для СУБД SQLite самый удобный менеджер — это SQLiteStudio.

SQLite — это встраиваемая кроссплатформенная БД, которая поддерживает достаточно полный набор команд SQL и доступна в исходных кодах (на языке C).

Исходные коды SQLite находятся в public domain, то есть вообще никаких ограничений на использование.

Создаются 2 таблицы: list_rebusy и records. В первой хранится ребусы, ответы на них, подсказки и картинки для ребусов (рисунок 9). Во 2 таблице - рейтинг, результаты игроков будут синхронизированы в ней.

Рисунок 9. БД (list_rebusy)

Для использования списка ребусов задается запрос к базе данных. Сами ребусы хранятся в папке «images». Для того, чтобы вопрос в ребусе оставался не без ответа, выводится сообщение "Нужно ввести ответ", "Внимание!" (рисунок 10).

Рисунок 10. Код для ответа на ребус

Если введённый ответ совпадает с решением ребуса, игроку начисляются баллы и отображается верный ответ. Если уровень игры сложный, то сбрасываются счётчики времени на ответ, форма очищается, сохраняется результат и выводится сообщение о завершении текущего задания. Затем форма закрывается, метод завершается, поле ввода очищается, а на экран подгружается новый ребус. В лёгком уровне подсказка скрывается, а в трудном режиме обнуляется таймер на задание, после чего результат записывается в базу данных. Запись данных игрока (name, points, date) заносится в таблицу records (рисунок 11).

Рисунок 11. Результаты

 Таймер подсказки настроен на 10 секунд, по истечении этого времени на экране появляется подсказка и таймер автоматически отключается.

Таймер времени на ответ срабатывает через секунду (t>0), выводится количество оставшихся секунд на ответ (рисунок 12). Когда время заканчивается, осуществляется переход на следующий ребус. Если ответ не введен, в текстовое поле заносится значение «Нет ответа»; это необходимо, поскольку в процедуре обработки нажатия кнопки предусмотрена проверка содержимого данного поля.

Рисунок 12. Таймер

В обозревателе решений форма «GameOptions.cs» содержит код для кнопки «Play». В обозревателе решений - RebusSolving (название исходного проекта), правой кнопкой мыши выбрать пункты меню «Добавить → Форма Windows Forms» и дать название новой форме «GameOptions.cs».

Созданная форма дополняется элементами label1, textBox1, label 2, comboBox1, button 1, button 2 и переименовывается соответственно   Label1 ¾ «Введите имя», label 2 ¾ «Выберите сложность», button 1, button 2 «Начать» и «Отмена». Форма готова (рисунок 13).

Рисунок 13. Форма «GameOptions.cs»

К добавленным элементам дописывается код (рисунок 14). В классе «GameOptions» в «comboBox1» прописываются детали игры. По уровню сложности определяется необходимость подсказок. В textBox1обязательно должно быть имя игрока, если это поле пустое, выводится сообщение «Нужно указать имя», «Ошибка!». В кнопке «Начать» прописывается код для начала   игры и форма закрывается, в кнопке «Отмена» ¾ код для главной видимой формы и форма закрывается (рисунок 15).

Рисунок 14. Код для формы «GameOptions.cs»

Рисунок 15. Код для кнопок начала игры и отмены

Игра дополняется еще 2 формами: «rating.cs» и «rules.cs». В форму «rating.cs» из панели элементов добавляются label1(«Результат последней игры») и dataGridView1. Из таблицы records выполняются запросы для извлечения игровых результатов, сортированных по дате. Данные считываются строками и отображаются на экране. Формируется временная таблица, куда помещаются результаты запросов из таблицы records, предварительно отсортированные по убыванию количества очков. Временная таблица подключается к элементу dataGridView. Таблица records в SQLite выглядит так (рисунок 16).

Рисунок 16. Таблица records

Практически каждая игра имеет определённые правила, и игра в ребусы не становится исключением. Для добавления правил игры в проект создаётся отдельная форма с названием «rules.cs». Внутри формы размещён текстовый блок textBox1 и графический блок pictureBox1. При клике мышью на изображениях правила сменяются последовательно. Дополнительно реализован код для корректного закрытия окна. Нажатие кнопки «ОК» сопровождается сообщением согласия игрока. Если согласие подтверждено, появляется приветствие «Удачи!» и окно автоматически закрывается, возвращаясь обратно в главное меню. Если же игрок не соглашается, никаких действий не происходит (рисунок 17). Графический блок pictureBox1 наполняется изображениями с правилами игры (рисунок 18).

Рисунок 17. Код для кнопки «ОК»

Рисунок 18. Правила

В главной форме «Main.cs» прописывается код для 4 кнопок (рисунок 19) и подключается база данных с ответами на ребусы (рисунок 20).

Рисунок 19. Код для кнопок

Рисунок 20. Подключение ответов

Приложение готово!

Список литературы

  1. Генератор ребусов. — Текст: электронный // aigptbot.ru: [сайт]. — URL: https://aigptbot.ru/generator-rebusov/ (дата обращения: 28.11.2025)
  2. Практическое руководство по Visual Studio для .NET-разработчиков (FAQ). — Текст: электронный // cyberforum.ru: [сайт]. — URL: https://www.cyberforum.ru/visual-studio/thread1329335.html (дата обращения: 20.11.2025)
  3. Руководство по C# для Windows Forms. — Текст: электронный // zetcode.com: [сайт]. — URL: https://zetcode.com/csharp/windowsforms/ (дата обращения: 10.12.2025)
  4. Тракимус, Ю. В. Разработка консольных приложений с помощью Microsoft Visual Studio 2017: учебное пособие / Ю. В. Тракимус. — Новосибирск: Изд-во НГТУ, 2018. — Текст: непосредственный
  5. Шилдт, Герберт C# 4.0: полное руководство / Герберт Шилдт. — М.: ООО "И.Д. Вильямс", 2011. — 1056 с. — Текст: непосредственный
  6. What is a desktop application? — Текст: электронный // walkme.com: [сайт]. — URL: https://www.walkme.com/glossary/desktop-application/ (дата обращения: 21.01.2026)
Справка о публикации и препринт статьи
предоставляется сразу после оплаты
Прием материалов
c по
Осталось 5 дней до окончания
Размещение электронной версии
Загрузка материалов в elibrary
Публикация за 24 часа
Узнать подробнее
Акция
Cкидка 20% на размещение статьи, начиная со второй
Бонусная программа
Узнать подробнее