Личный кабинетuser
orange img orange img orange img orange img orange img
Дипломная работаВысшая математика
Готовая работа №17024 от пользователя Бобылев_Андрей
book

Разработка окружения для тестирования и настройки игр с математической моделью.

1 625 ₽
Файл с работой можно будет скачать в личном кабинете после покупки
like
Гарантия безопасной покупки
help

Сразу после покупки работы вы получите ссылку на скачивание файла.

Срок скачивания не ограничен по времени. Если работа не соответствует описанию у вас будет возможность отправить жалобу.

Гарантийный период 7 дней.

like
Уникальность текста выше 50%
help

Все загруженные работы имеют уникальность не менее 50% в общедоступной системе Антиплагиат.ру

file
Возможность снять с продажи
help

У покупателя есть возможность доплатить за снятие работы с продажи после покупки.

Например, если необходимо скрыть страницу с работой на сайте от третьих лиц на определенный срок.

Тариф можно выбрать на странице готовой работы после покупки.

Не подходит эта работа?
Укажите тему работы или свой e-mail, мы отправим подборку похожих работ
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных

содержание

ВВЕДЕНИЕ 10
1. ИЗУЧЕНИЕ СУЩЕСТВУЮЩИХ МЕТОДОВ ДЛЯ ТЕСТИРОВАНИЯ И НАСТРОЙКИ ИГР С МАТЕМАТИЧЕСКОЙ МОДЕЛЬЮ. ВЫБОР РЕШЕНИЙ ДЛЯ ТЕСТИРОВАНИЯ И НАСТРОЙКИ ИГР С МАТЕМАТИЧЕСКОЙ МОДЕЛЬЮ. 14
1.1. Изучение существующих способов тестирования игр с математической моделью 14
1.2. Изучение существующих способов настройки игр с математической моделью 14
1.3. Выбор решений для тестирования и настройки игр с математической моделью. 16
1.4. Необходимый функционал для работы нового решения. 17
2. РЕАЛИЗАЦИЯ РЕШЕНИЯ ДЛЯ НАСТРОЙКИ ИГР С МАТЕМАТИЧЕСКОЙ МОДЕЛЬЮ 18
2.1. Реализация необходимого функционала для работы нового решения 18
2.2. Реализация решения для настройки игр с математической моделью 20
3. РЕАЛИЗАЦИЯ РЕШЕНИЯ ДЛЯ ТЕСТИРОВАНИЯ ИГР С МАТЕМАТИЧЕСКОЙ МОДЕЛЬЮ 31
4. КОНЦЕПЦИЯ СТАРТАП-ПРОЕКТА 42
4.1. Введение в предметную область: 42
4.2. Проблема: 43
4.3. Описание продукта: 44
4.4. Потребительские качества: 44
4.5. Защита интеллектуальной собственности: 45
4.6. Объем и емкость рынка 45
4.7. Анализ современного состояния и перспектив развития отрасли 46
4.8. Планируемая стоимость продукта 46
4.9. Конкурентные преимущества создаваемого продукта, сравнение технико-экономических характеристик с отечественными и мировыми аналогами. 48
4.10. Описание целевых сегментов потребителей создаваемого продукта 50
4.11. Бизнес модель проекта. Производственный план. План продаж. 50
4.12. Стратегия продвижения продукта на рынок 53
5. СОЦИАЛЬНАЯ ОТВЕТСВЕННОСТЬ 55
5.1. Производственная безопасность 56
5.1.1. Отклонение показателей микроклимата 56
5.1.2. Превышение уровня шума 57
5.1.3. Отсутствие или недостаток естественного света и недостаточная освещенность рабочей зоны 59
5.1.4.Электромагнитное излучение 59
5.1.5. Электробезопасность 60
5.2. Экологическая безопасность 63
5.3. Безопасность в чрезвычайных ситуациях 64
5.4. Правовые и организационные вопросы обеспечения безопасности 64
ЗАКЛЮЧЕНИЕ ПО РАЗДЕЛУ 67
ЗАКЛЮЧЕНИЕ 68
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 69

Весь текст будет доступен после покупки

ВВЕДЕНИЕ

Компьютерная игра – компьютерная программа, служащая для организации игрового процесса, связи с партнёрами по игре, или сама выступающая в качестве партнёра. К компьютерным играм также относят видеоигры и мобильные игры. Существуют попытки выделить компьютерные игры как отдельную область искусства, наряду с театром, кино и т. п. По некоторым компьютерным играм проводятся любительские и профессиональные соревнования. Такого рода соревнования называются киберспортом.
Большинство компьютерных игр включают в себя одну или несколько математических моделей.
В данной работе рассматривается разработка игр, в которых ярко выражена математическая составляющая и присутствует сильное влияние генератора псевдослучайных чисел (ГПСЧ) на результаты. Как правило, в таких играх пользователь ограничен всего несколькими возможными действиями, а управление производится за счет компьютерной мышки (или её аналогов). Далее в работе такие игры будут называться игры с математической моделью.

Весь текст будет доступен после покупки

отрывок из работы

1. ИЗУЧЕНИЕ СУЩЕСТВУЮЩИХ МЕТОДОВ ДЛЯ ТЕСТИРОВАНИЯ И НАСТРОЙКИ ИГР С МАТЕМАТИЧЕСКОЙ МОДЕЛЬЮ. ВЫБОР РЕШЕНИЙ ДЛЯ ТЕСТИРОВАНИЯ И НАСТРОЙКИ ИГР С МАТЕМАТИЧЕСКОЙ МОДЕЛЬЮ.
1.1. Изучение существующих способов тестирования игр с математической моделью
Модульное тестирование, или юнит-тестирование (англ. unit testing) – процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.
Цель модульного тестирования – изолировать отдельные части программы и показать, что по отдельности эти части работоспособны.
Этот тип тестирования обычно выполняется программистами.
Главным преимуществом такого подхода является проверка программного кода на корректность.
Недостатком такого подхода является то, что в играх с математической моделью существует множество зависимостей между блоками, покрытие которых тестами требует больших трудозатрат сотрудника.
1.2. Изучение существующих способов настройки игр с математической моделью
Настройки игры с математической моделью сводится к задаче нахождения числового решения для заданных правил, при котором статистика игры удовлетворяла бы требования.
Нахождение числовой реализации, удовлетворяющей требованиям, возможно следующими способами:
• Ручное изменение числовой реализации игры с последующим сбором статистики. Такой метод требует постоянного присутствия человека, который будет анализировать статистику и изменять числовую реализацию. Как показал эмпирический опыт, достижение нужной статистики иногда требует неочевидных изменений в числовой реализации из-за каскадных зависимостей параметров. Такой режим работы уменьшает производительность труда работника, так как сбор статистики происходит за несколько минут, и за это время разработчик не может полностью переключиться на другую задачу. В итоге такой метод достаточно долог, ведет к уменьшению производительности труда у сотрудника, который совершает ручной перебор числовых реализаций;
• Нахождение математической модели игры, которая позволит подсчитать числено статистику игры. Такой метод, в зависимости от игры, выдвигает к разработчику дополнительные требования: как минимум это знание теории вероятности и математической статистики, для более сложных моделей потребуются знания числовых рядов (это являлось одной из причин создания комплекса). Такой метод крайне чувствителен к смене каркаса игры – при изменении каркаса математическая модель теряет актуальность. Также как и в прошлом методе, разработчик меняет числовую реализацию игры и анализирует вычисленную статистику. В конечном итоге такой подход требует неизменяемости правил, ставит дополнительные требования к сотруднику, который находит математическую модель игры;
• Также можно отметить метод ручного изменения числовой реализации по результатам тестирования или игрового опыта пользователей. Данный метод широко и успешно применятся в играх с небольшим количеством зависимостей между параметрами (к примеру, в играх с оружием это изменение его урона). Для некоторых игр возможен только такой метод настройки.

1.3. Выбор решений для тестирования и настройки игр с математической моделью.
Решение состоит из двух блоков: блок нахождения числовой реализации и блок регрессионного тестирования;
Блок нахождения числовой реализации представляет собой модуль, работающий над реализованным каркасом игры. Модуль посредством генетического алгоритма находит числовые реализации каркаса, удовлетворяющие требованиям. Модуль предоставляет функционал:
• генерация первичной числовой реализации в соответствии с требованиями;
• скрещивание числовых реализаций для получения новых;
• отсеивание реализаций, статистика которых не удовлетворяет требованиям.
Преимуществами такого подхода являются: автономность (не требуется постоянного присутствия разработчика), независимость от правил игры. Недостатками являются: дополнительные требования к организации статистики, возможность установить недостижимые требования для данной математической модели. Также следует отметить долгий поиск числовой реализации, однако комплекс может работать по ночам, что уменьшает значение данного фактора
Блок тестирования работает над статистикой игры. Модуль предоставляет функционал:
• сбора и сохранения в ПЗУ статистики игры.
• чтения из ПЗУ ранее собранной статистики игры.
• сравнение собранной и ранее сохраненной статистик.
Так как в рассматриваемых играх присутствует влияние ГПСЧ, то можно воспользоваться возможностью определять последовательности случайных чисел при помощи семени ГПСЧ. Преимуществами такого подхода являются: покрытие большого количества ситуаций, минимальные трудозатраты сотрудника. Недостатком является отсутствие проверки правильности модулей игры. Также следует отметить достаточно большой объем времени, который необходим для выполнения теста, так как для получения среза статистики ее требуется собрать, однако тесты применяются единожды при сборке проекта и влияют не на производительность проекта, а лишь на процесс сборки, которых не является частым.
1.4. Необходимый функционал для работы нового решения.
Для работы нового решения требуется унифицированный сбор статистик у разных игр. На момент постановки задачи существует стенд для сбора статистики и его наследники для каждой игры, переопределяющие поведение игрока в зависимости от игры. Необходимо инкапсулировать поведение при помощи шаблона проектирования «Стратегия» [1].

2. РЕАЛИЗАЦИЯ РЕШЕНИЯ ДЛЯ НАСТРОЙКИ ИГР С МАТЕМАТИЧЕСКОЙ МОДЕЛЬЮ
2.1. Реализация необходимого функционала для работы нового решения
На момент постановки задачи программное обеспечение для сбора статистики представляет собой два блока с высокой связанность:
• стенд – внешний модуль, отвечающий за запуск сбора статистики с различными конфигурациями. В текущей реализации представлен классом StatisticStand и его наследником CgStand;
• игрок – внутренний модуль, через которого происходит создание игры и изменение ее поведения и в котором задается поведение при различных внутриигровых ситуациях (Классы AbstractStandPlayer и StandPlayer после предварительного рефакторинга).
После исследования существующих стендов и «игроков» для сбора статистики (30 классов) было выявлено, что их существование необходимо для задания специфического поведения игры с последующим сбором дополнительной статистики, в то время как сбор обычной статистики может быть выделен в общую логику в общем «игроке».
Все игры, стенды и «игроки» которых требовали изменений, уже имплементировали нужные интерфейсы, поэтому было решено реализовать класс, который бы в зависимости от возможных действий, запрошенных через интерфейс «String getAction()» игры, вызывал бы методы работы с игрой [2].
В результате был создан класс PlayStrategy, которому блок унифицированного «игрока» делегирует поведение при различных игровых ситуациях и который содержит:
• объекты: игры, параметров игры, статистики и словаря (HashMap), содержащего сущности из названия действия и объекта класса Action;
• методы, часть которых помещается в объекты класса Action, для работы с объектом игры. Методы оперируют состояниями игры, которые посылались бы игроку.
Класс Action содержит:
• условие, при котором действие целесообразно осуществить игроку;
• приоритет, при помощи которого определяется очередность целесообразных действий;
• ссылку на метод из класса PlayStrategy для работы с игрой.
Процесс выбора действия представлен на рисунке 2.1. Конечная архитектура представлена на рисунке 2.2.

Рисунок 2.1 – Процесс выбора действия

Рисунок 2.2 – Итоговая архитектура стендов
2.2. Реализация решения для настройки игр с математической моделью
Генетические алгоритмы – адаптивные методы поиска, которые используются для решения задач функциональной оптимизации. Они основаны на механизмах и моделях эволюции, и генетических процессов биологических алгоритмов [3].
Хромосома – одно решение задачи [3].
Популяция – набор решений задачи. В начале алгоритма случайным образом генерируется набор решений (начальная популяция). Эти решения будут становиться лучше (эволюционировать) в процессе работы алгоритма до тех пор, пока не удовлетворят условиям задачи [3].
В общем случае популяция формируется случайным образом, но в реализации была предусмотрена возможность включения в набор «константной» хромосомы.
Функция пригодности (фитнесс-функция) – функция определяющая качество особей популяции [3]. В моем случае это будет имитация игры на сгенерированном числовом решении с последующим вычислением длины многомерного вектора, составленного из отклонения экспериментально полученных значений от необходимых значений статистики.
Генетические операторы – определённые правила, по которым изменяются особи в следующей популяции [3]. Среди них выделяют операторы скрещивания и мутации.
Селекция – это выбор тех особей, которые будут участвовать в создании потомков для следующей популяции, т.е. для очередного поколения. Такой выбор производится согласно принципу естественного отбора, по которому наибольшие шансы на участие в создании новых особей имеют особи с наибольшими значениями функции приспособленности [3].
Колесо рулетки – метод селекции, в котором родительские особи выбираются пропорционально значениям их функций приспособленности: каждой хромосоме сопоставлен сектор колеса рулетки, величина которого устанавливается пропорциональной значению функции приспособленности данной хромосомы. Таким образом, чем больше значение функции приспособленности, тем больше сектор на колесе рулетки и соответственно больше вероятность стать родительской особью (рис 2.3) [4]. Программная реализация колеса рулетки представлена на рисунке 2.4



Рисунок 2.3 – Пример колеса рулетки.

Рисунок 2.4 – Листинг колеса рулетки (ЗАМЕНИТЬ)
Турнирная селекция – метод, в котором все особи популяции разбиваются на подгруппы с последующим выбором в каждой из них особи с наилучшей приспособленностью [5]. Турнирная селекция продемонстрирована на рисунке 2.5, листинг ее программной реализации – на рисунке 2.6.

Рисунок 2.5 – Турнирная селекция

Рисунок 2.6 – Листинг турнирной селекции (ЗАМЕНИТЬ)
Для выбора тех особей, которые будут участвовать в создании потомков для следующей популяции, было решено использовать колесо рулетки.
Для скрещивания особей было решено использовать многоточечное скрещивание. Механизм такого скрещивания представлен на рисунке 2.7. Самые лучшие результаты проявлялись при выборе количества точек для скрещивания случайным образом от 1 до 3.

Рисунок 2.7 – Демонстрация скрещивания [4]
Для мутации особей была реализована точечная мутация, которая осуществляется в пределах одного гена, при этом потомок в общем случае содержит генотип родителя со слегка искажённой информацией. На рисунке 2.8 показан принцип мутации. Вероятность мутации индивидуальна для каждой игры.

Рисунок 2.8 – Демонстрация мутации [4]
Для прорежения популяции было решено использовать турнирную селекцию.
После скрещивания и мутации происходит верификация потомка, на соответствие установленным ограничениям.
Совокупный алгоритм, состоящий из выше рассмотренных функций, представлен на рисунке 2.9 в виде схемы.

Рисунок 2.9 – Схема генетического алгоритма

Процесс нахождения статистики через имитацию игры занимает подавляющий объем в суммарном времени выполнения цикла, поэтому было решено использовать элементы многопоточного программирования [6]. Реализация алгоритма для параллельного выполнения представлена на рисунке 2.10. Реализованная архитектура для распараллеливания нахождения статистик позволяет построить распределенную систему на несколько компьютеров, связанных через интернет.

Рисунок 2.10 – Реализация многопоточности.
Другим решением по оптимизации алгоритма является проверка показателей статистики, в процессе имитации игры, на попадание в необходимый интервал. Интервал формируется из необходимого значения и лучшего найденного значения. Интервал зависит от дисперсии величины, которая уменьшается с увеличением числа итераций. Для вычисления интервала необходимы коэффициенты распределения показателя статистики. Коэффициенты распределения показателя находятся следующим образом:
1. Нахождение показателя статистики при большом количестве итераций имитации игрового процесса.
2. Нахождение распределения показателя статистики при меньшем количестве итераций.
3. Построение столбчатой диаграммы для нахождения промежутка, в который может попасть значения при данном количестве итераций. На рисунке 2.11 представлено распределение параметра при 1000 измерений по 10000 итераций, при 50 млн. итераций параметр равна 0,96.

Рисунок 2.11 – Диаграмма распределения
4. Нахождение коэффициентов отклонения крайних точек от показателя, найденного в пункте 1.
Найденные коэффициенты позволяют сказать, попадает ли новое значение в промежуток между необходимым значением и лучшим значением при выбранном количестве итераций игры. Пример на рисунке 2.12.
• необходимая величина равна 0,96 (красный штрих);
• лучшее значение равно 1,02 (зеленый штрих) при n количестве итераций, и при данном количестве итераций истинное значение не может быть больше 1,03;

Весь текст будет доступен после покупки

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

1) Э. Гамма Приёмы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес СПб: Питер, 2001. — 368 с.: ил. (Серия «Библиотека программиста»)
2) Философия Java / Брюс Эккель. – 4-ое полное – Санкт-Петербург: Питер, 2017. – 1168 с.
3) Генетические алгоритмы или как учебник по биологии может помочь в функциональной оптимизации // LAZYSMART [Электронный ресурс]. – URL: http://lazysmart.ru/iskusstvenny-j-intellekst/geneticheskie-algoritmy-ili-kak-uchebn/ (Дата обращения 27.05.2018).
4) Классический генетический алгоритм. Часть IV. Скрещивание, мутация, создание популяции // aiportal[Электронный ресурс]. – URL: http://www.aiportal.ru/articles/genetic-algorithms/classic-alg-part4.html (Дата обращения 27.05.2018).

Весь текст будет доступен после покупки

Почему студенты выбирают наш сервис?

Купить готовую работу сейчас
service icon
Работаем круглосуточно
24 часа в сутки
7 дней в неделю
service icon
Гарантия
Возврат средств в случае проблем с купленной готовой работой
service icon
Мы лидеры
LeWork является лидером по количеству опубликованных материалов для студентов
Купить готовую работу сейчас

не подошла эта работа?

В нашей базе 78761 курсовых работ – поможем найти подходящую

Ответы на часто задаваемые вопросы

Чтобы оплатить заказ на сайте, необходимо сначала пополнить баланс на этой странице - https://lework.net/addbalance

На странице пополнения баланса у вас будет возможность выбрать способ оплаты - банковская карта, электронный кошелек или другой способ.

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

Если у вас возникли проблемы при пополнении баланса на сайте или остались вопросы по оплате заказа, напишите нам на support@lework.net. Мы обязательно вам поможем! 

Да, покупка готовой работы на сайте происходит через "безопасную сделку". Покупатель и Продавец финансово защищены от недобросовестных пользователей. Гарантийный срок составляет 7 дней со дня покупки готовой работы. В течение этого времени покупатель имеет право подать жалобу на странице готовой работы, если купленная работа не соответствует описанию на сайте. Рассмотрение жалобы занимает от 3 до 5 рабочих дней. 

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

Гарантийный срок составляет 7 дней со дня покупки готовой работы. В течение этого времени покупатель имеет право подать жалобу на странице готовой работы, если купленная работа не соответствует описанию на сайте. Рассмотрение жалобы занимает от 3 до 5 рабочих дней. Если администрация сайта принимает решение о возврате денежных средств, то покупатель получает уведомление в личном кабинете и на электронную почту о возврате. Средства можно потратить на покупку другой готовой работы или вывести с сайта на банковскую карту. Вывод средств можно оформить в личном кабинете, заполнив соответствущую форму.

Мы с радостью ответим на ваши вопросы по электронной почте support@lework.net

surpize-icon

Работы с похожей тематикой

stars-icon
arrowarrow

Не удалось найти материал или возникли вопросы?

Свяжитесь с нами, мы постараемся вам помочь!
Неккоректно введен e-mail
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных