Файл: Курсовая работа специальность 09. 02. 03 Программирование в компьютерных системах.pdf
Добавлен: 25.10.2023
Просмотров: 145
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
22
Windows (x86, x86_64)
Mac OS X 10.10+ (x86_64)
Linux (x86_64)
Средство запуска Ren'Py позволяет создавать версии игр Ren'Py для всех трех с любой из этих трех платформ, что позволяет разрабатывать (например) версии для Mac и Linux для Windows.
Игры Ren'Py не зависят от какого-либо другого программного обеспечения на этих платформах. Вашим пользователям не нужно загружать среды выполнения, драйверы, кодеки или что-то в этом роде. Если у пользователя есть одна из поддерживаемых платформ, Ren'Py запустится.
(Даже если это не так, Ren'Py написан с использованием портативных технологий, таких как pygame, и поэтому, вероятно, его можно запустить.)
Ren’Py - игровой движок, который не труден в освоении. Подходит для обучения и освоения основ создания игр. На данный момент последняя версия 7.4.11. Разработчик данного движка – ключевой программист Tom
"PyTom" Rothamel. Существует 1 версия данного игрового движка, которая распространяется полностью бесплатно и получает регулярные обновления
1.7. Язык программирования Python
Python - это высокоуровневый язык программирования общего назначения, разработанный в феврале 1991 года Гвидо Ван Россумом который используется в том числе и для разработки веб-приложений. Язык ориентирован на повышение производительности разработчика и читаемости кода
Python поддерживает несколько парадигм программирования: структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. В языке присутствует динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные
23 высокоуровневые структуры данных. Программный код на Python организовывается в функции и классы, которые могут объединяться в модули, а они в свою очередь могут быть объединены в пакеты. Python обычно используется как интерпретируемый, но может быть скомпилирован в байт-код Java и в MSIL (в рамках платформы .NET).
Эталонной реализацией Python является интерпретатор CPython, поддерживающий большинство активно используемых платформ и являющийся стандартом де-факто языка. Он распространяется под свободной лицензией Python Software Foundation License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные.
CPython компилирует исходные тексты в высокоуровневый байт-код, который исполняется в стековой виртуальной машине.
По производительности интерпретируемый Python похож на все остальные подобные языки, но возможность компиляции в байт-код позволяет добиться большей производительности.
По сравнению с Ruby и некоторыми другими языками, в Python отсутствует возможность модифицировать встроенные классы, такие, как int, str, float, list и другие.
В Python присутствует глобальная блокировка интерпретатора (GIL) — при своей работе основной интерпретатор постоянно использует большое количество потоко-небезопасных данных. В основном это словари, в которых хранятся атрибуты объектов, и обращения к внешнему коду, поэтому, во избежание разрушения этих данных при совместной модификации из разных потоков, перед началом исполнения нескольких инструкций (обычно ста) поток интерпретатора захватывает GIL, а по окончании освобождает.
Стандартная библиотека включает большой набор полезных переносимых функций, начиная с возможностей для работы с текстом и заканчивая средствами для написания сетевых приложений. Дополнительные возможности, такие как математическое моделирование, работа с
24 оборудованием, написание веб-приложений или разработка игр, могут реализовываться посредством обширного количества сторонних библиотек, а также интеграцией библиотек, написанных на Си или C++, при этом и сам интерпретатор Python может интегрироваться в проекты, написанные на этих языках
1.8. Visual Studio
Visual Studio - среда разработки, предназначенная для создания приложений на таких языках как C#, Python, Java, Boo, Nemerle, Visual Basic
.NET, Vala, CIL, C и C++ .
Возможности:
Подсветка синтаксиса
Сворачивание кода
Автодополнение кода
Браузер классов
Поддержка плагинов
Встроенный отладчик
Визуальный конструктор форм (GTK#)
Модульное тестирование
Легко настраиваемый интерфейс
Поддерживаемые языки:
C#, F#, Puthon, Visual Basic .NET, Vala
Поддерживаемые ОС:
Linux, Windows and Mac OS X
25
2. РАЗРАБОТКА ИГРОВОГО ПРИЛОЖЕНИЯ «MORAL»
СРЕДСТВАМИ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON
Процесс разработки новых приложений состоит из 4-х основных этапов:
1.Проектирование. Определяются цели и задачи, способы их решения, а также определяется структура данных и язык программирования, на котором будет написано приложение.
2.Создание интерфейса. В программную среду разработки вводятся необходимые управляющие элементы: кнопки, текстовые поля, флажки, переключатели и другие элементы.
3.Отладка. Все управляющие элементы связываются программным кодом и путем ввода конкретных значений происходит проверка работоспособности кода и отлавливание возможных ошибок. Логические ошибки самые коварные в этом плане. Этот этап по времени самый длительный.
4.Заключительный этап. Идет компиляция кода и создание дистрибутива. Компиляция - процесс перевода программного кода в машинный язык, понятный каждому компьютеру. Здесь же идет подключение необходимых программных библиотек для полной работоспособности приложения. На выходе получаем законченный продукт - файл с расширением ".ехе".
Идея разработки подобного рода приложения возникла не только в результате осознания его необходимости для воспитанников детского сада.
Анализ и долгие поиски аналогов уже существующих приложений привели к тому, что на рынке нет приложения, позволяющего обучить детей нормам морали.
Перед тем, как приступить к созданию приложения и выпустить его на рынок, нужно сформулировать конкретное описание его компонентов.
Информационное содержание разрабатываемого приложения включает
26 нормы морали, для воспитанников детского сада».
Статистика данных, полученная на сайте Wikipedia, показывает то, что лидирующей операционной системой в мире, остается Android с долей рынка
43% и Windows с долей в 30%. Это является не маор важным факторов для разработчиков при выборе операционной системы.
В результате обработки данных были получены следующие результаты, показанные на диаграмме:
Рисунок 1 - Диаграмма процентного соотношения используемых операционных систем в мире
1
Опираясь на вышеописанные выводы, как основу для разработки приложения рациональнее выбрать операционную систему Windows.
Дизайн проектируемого приложения так же немаловажная деталь.
Первое на что нужно обратить внимание - это цветовая гамма. Она не должна быть слишком яркой, чтобы не причинять излишние неудобства пользователю. Но в то же время, цвета должны контрастно сочетаться. Чтобы не вводить пользователя в заблуждение, следует сделать интерфейс понятным и простым для пользования, без излишних иконок и ссылок.
1
Выполнен автором
27
Содержание разрабатываемого приложения включает в себя:
Начать
Загрузить
Настройки
Об игре
Помощь
Выход
Пользователями приложения выступят воспитанники детского сада
МДОБУ №63.
После сформулированного содержания для приложения, можно приступать к разработке. Процесс разработки приложения и его тестирование будет осуществляться в программе Ren’Py.
Для создания приложения необходимо установить программу разработки Ren’Py. Ее можно скачать на официальном сайте: https://www.renpy.org
. Также было установлено вспомогательное ПО: Adobe
Photoshop и Visual Studio.
Данный сервис позволяет создавать приложения для большинства платформ.
Данная программа позволяет, с помощью эмулятора, протестировать и опробовать данное приложение.
Основными функциями подсистемы является:
- разработка графического интерфейса приложения;
- разработка полноценного приложения в выбранной среде разработки;
- тестирование приложения с помощью встроенного эмулятора;
Работа над приложением во многих программных средах начинается, как правило, с создания нового проекта, Ren’Py не исключение.
Указывается название проекта, путь к папке сохранения проекта, а также указываются дополнительные пакеты файлов и дополнений.
28
Рисунок 2 - Окно создания нового проекта в Ren’Py
1
Дальнейший шаг - разработка интерфейса для будущего приложения.
Был разработан следующий интерфейс, представленный на рисунке 3.
Рисунок 3 - Интерфейс главного меню
2 1
Выполнено автором
2
Выполнено автором
29
Следующий этап - написание кода. Для этого иcпользуется программа
Visual Studio.
Рисунок 4 - Окно программы Visual Studio
1
Любое приложение начинается с написания кода для интерфейса, далее идет весь код интерфейса с подробным описание: init python: gui.init(1920, 1080) define gui.accent_color = u'#66cc00' define gui.idle_color = u'#888888' define gui.idle_small_color = u'#aaaaaa' define gui.hover_color = u'#a3e066' define gui.selected_color = u'#ffffff' define gui.insensitive_color = u'#8888887f' define gui.muted_color = u'#285100' define gui.hover_muted_color = u'#3d7a00' define gui.text_color = u'#ffffff' define gui.interface_text_color = u'#ffffff'
Следующий фрагмент кода отвечает за шрифты
1
Выполнено автором
30 define gui.text_font = "DejaVuSans.ttf" define gui.name_text_font = "DejaVuSans.ttf" define gui.interface_text_font = "DejaVuSans.ttf" define gui.text_size = 33 define gui.name_text_size = 45 define gui.interface_text_size = 33 define gui.label_text_size = 36 define gui.notify_text_size = 24 define gui.title_text_size = 75
Фрагмент кода отвечающий за настройки главного и игрового меню: define gui.main_menu_background = "gui/menu.jpg" define gui.game_menu_background = "gui/menu.jpg" define gui.textbox_height = 278 define gui.textbox_yalign = 1.0 define gui.name_xpos = 360 define gui.name_ypos = 0 define gui.name_xalign = 0.0 define gui.namebox_width = None define gui.namebox_height = None define gui.namebox_borders = Borders(5, 5, 5, 5) define gui.namebox_tile = False define gui.dialogue_xpos = 402 define gui.dialogue_ypos = 75 define gui.dialogue_width = 1116 define gui.dialogue_text_xalign = 0.0
Фрагмент кода отвечающий за кнопки: define gui.button_width = None define gui.button_height = None define gui.button_borders = Borders(6, 6, 6, 6) define gui.button_tile = False
31 define gui.button_text_font = gui.interface_text_font define gui.button_text_size = gui.interface_text_size define gui.button_text_idle_color = gui.idle_color define gui.button_text_hover_color = gui.hover_color define gui.button_text_selected_color
= gui.selected_color define gui.button_text_insensitive_color
= gui.insensitive_color define gui.button_text_xalign = 0.0 define gui.radio_button_borders = Borders(27, 6, 6, 6) define gui.check_button_borders = Borders(27, 6, 6, 6) define gui.confirm_button_text_xalign = 0.5 define gui.page_button_borders = Borders(15, 6, 15, 6) define gui.quick_button_borders = Borders(15, 6, 15, 0) define gui.quick_button_text_size = 21 define gui.quick_button_text_idle_color
= gui.idle_small_color define gui.quick_button_text_selected_color
= gui.accent_color define gui.navigation_button_width = 250
Фрагмент кода, используемый для кнопок выбора в игре: define gui.choice_button_width = 1185 define gui.choice_button_height = None define gui.choice_button_tile = False define gui.choice_button_borders = Borders(150, 8, 150,
8) define gui.choice_button_text_font = gui.text_font define gui.choice_button_text_size = gui.text_size define gui.choice_button_text_xalign = 0.5 define gui.choice_button_text_idle_color = "#cccccc" define gui.choice_button_text_hover_color = "#ffffff" define gui.choice_button_text_insensitive_color
=
"#444444"
Фрагмент кода, используемый для кнопок слотов gui/button, define gui.slot_button_width = 414 define gui.slot_button_height = 309
32 define gui.slot_button_borders = Borders(15, 15, 15,
15) define gui.slot_button_text_size = 21 define gui.slot_button_text_xalign = 0.5 define gui.slot_button_text_idle_color
= gui.idle_small_color define gui.slot_button_text_selected_idle_color
= gui.selected_color define gui.slot_button_text_selected_hover_color
= gui.hover_color define config.thumbnail_width = 384 define config.thumbnail_height = 216 define gui.file_slot_cols = 3 define gui.file_slot_rows = 2 define gui.navigation_xpos = 60 define gui.skip_ypos = 15 define gui.notify_ypos = 68 define gui.choice_spacing = 33 define gui.navigation_spacing = 6 define gui.pref_spacing = 15 define gui.pref_button_spacing = 0 define gui.page_spacing = 0 define gui.slot_spacing = 15 define gui.main_menu_text_xalign = 1.0
Фрагмент кода, используемый для рамок: define gui.frame_borders = Borders(6, 6, 6, 6) define gui.confirm_frame_borders = Borders(60, 60, 60,
60) define gui.skip_frame_borders = Borders(24, 8, 75, 8) define gui.notify_frame_borders = Borders(24, 8, 60, 8) define gui.frame_tile = False
Фрагмент кода, используемый для ползунков: define gui.bar_size = 38 define gui.scrollbar_size = 18 define gui.slider_size = 38 define gui.bar_tile = False define gui.scrollbar_tile = False define gui.slider_tile = False define gui.bar_borders = Borders(6, 6, 6, 6) define gui.scrollbar_borders = Borders(6, 6, 6, 6)
33 define gui.slider_borders = Borders(6, 6, 6, 6) define gui.vbar_borders = Borders(6, 6, 6, 6) define gui.vscrollbar_borders = Borders(6, 6, 6, 6) define gui.vslider_borders = Borders(6, 6, 6, 6) define gui.unscrollable = "hide"
Фрагмент кода, используемый для истории: define config.history_length = 250 define gui.history_height = 210 define gui.history_name_xpos = 233 define gui.history_name_ypos = 0 define gui.history_name_width = 233 define gui.history_name_xalign = 1.0 define gui.history_text_xpos = 255 define gui.history_text_ypos = 3 define gui.history_text_width = 1110 define gui.history_text_xalign = 0.0
Фрагмент кода, используемый для NVL: define gui.nvl_borders = Borders(0, 15, 0, 30) define gui.nvl_list_length = 6 define gui.nvl_height = 173 define gui.nvl_spacing = 15 define gui.nvl_name_xpos = 645 define gui.nvl_name_ypos = 0 define gui.nvl_name_width = 225 define gui.nvl_name_xalign = 1.0 define gui.nvl_text_xpos = 675 define gui.nvl_text_ypos = 12 define gui.nvl_text_width = 885 define gui.nvl_text_xalign = 0.0 define gui.nvl_thought_xpos = 360 define gui.nvl_thought_ypos = 0 define gui.nvl_thought_width = 1170 define gui.nvl_thought_xalign = 0.0 define gui.nvl_button_xpos = 675 define gui.nvl_button_xalign = 0.0 define gui.language = "unicode"
Для дальнейшей работы происходит объявление переменных: define w = Character('Девушка', color="#c8ffc8") define g = Character('Старушка', color="#c8ffc8")
34 define m = Character('Мужчина', color="#c8ffc8") define d = Character('Девочка', color="#c8ffc8")
Разрабатываемое приложение предполагает представление выбора действий. Ответы выбираются во всплывающем меню, и от выбранного ответа происходит присвоение значений True или False для переменных. Для этого был разработан программный код: menu:
"Первый вариант ответа": jump choice2_yes
"Второй вариант ответа": jump choice2_no} label choice2_yes:
$ menu_flag1 = True jump choice2_done label choice2_no:
$ menu_flag1 = False jump choice2_done
Для оживления приложения были добавлены звуки и музыка:
Музыка при прохождение игры:
Play music “audio/music.MP3”
Звуки для различных ситуаций:
Play sound “Audio/sound.MP3”
После написания программного кода происходит тестирование приложения непосредственно в среде Ren’Py. Это позволяет быстро настраивать интерфейс и оперативно исправлять ошибки.
Рисунок 5 - Тестирование приложения в Ren’Py
1 1
Выполнено автором
35
Ren’Py предлагает выбор компиляции приложения для различных устройств, задается название приложения, его иконка и версия ОС Windows, поддерживаемых приложением. Иконка для приложения была взята с бесплатных интернет ресурсов и обработана в программе Adobe Photoshop.
Скомпилированное приложение представляет собой файл с расширением EXE для Windows, готовый к установке и использованию на персональном компьютере. Для использования приложения его следует скопировать на устройство с ОС Windows.
36
ЗАКЛЮЧЕНИЕ
Целью курсовой работы было создание игрового приложения для платформы Windows. В процессе создания приложения были изучены теоретические аспекты данной проблемы, проводился поиск подобных программ.
Для создания приложения были изучены теоретические материалы по теме «Популярные мобильные операционные системы», «Создание игрового приложения», а также были рассмотрены способы разработки приложений в различных средах программирования, в частности используя язык программирования Python.
В результате проделанной работы было создано приложение «Moral» на базе операционной системы Windows, позволяющее обучить детей нормам морали.
При написании курсовой работы были использованы работы отечественных и зарубежных авторов, связанных по данной тематике.
Практическая значимость курсовой работы состоит в том, что созданным игровым приложением могут пользоваться воспитанники детского сада с целью получения ими норм морали.
Интерфейс настолько прост и понятен, что позволяет без особых усилий пользоваться ей, даже неопытному и начинающему пользователю включая воспитанников детского сада.