Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке

Дипломная работа на тему «Исследование и реализация игровой компьютерной среды дисциплины «Представление знаний в информационных системах»

Применение игровых компьютерных сред в образовательных целях на сегодняшний день явление уже не редкое. Игровая компьютерная среда — это определенный вид игры, в которой заложены обучающие цели. Данную среду можно рассматривать как обучающую систему, процесс обучения которой интегрирован в игру. Главным преимуществом использования обучающих игровых компьютерных систем является большой мотивационный потенциал, который характерен высококачественным средам [1].

Содержание

Введение

. Анализ моделей и средств построения игровых компьютерных сред

.1 Анализ методов представления предметной области

.1.1 Имитационные модели

.1.2 Ситуационные модели

.1.3 Формально-логические модели

.2 Анализ существующих компьютерных обучающих систем

.2.1 СДО «Прометей»

.2.2 PLATO

.2.3 ComputerMentor

.2.4 Memris

.3 Постановка задачи

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

. Анализ моделей и технологий разработки

.1 Выбор среды проектирования и языка разработки

.1.1 Adobe Flash

.1.2 Unity 5.3

.1.3 Construct 2

.1.4 Corona SDK

.1.5 Clickteam Fusion

.1.6 Выбор технологии разработки

.2 UML-моделирование

.2.1 Построение концептуальной модели предметной области

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

.1 Построение игровой среды предметной области

.2 Алгоритм многоуровневой генерации заданий

. Разработка программных модулей

.1 Меню и навигация

.2 Основная игровая сцена

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

.. Отладка и экспериментальное тестирование модулей

. Разработка технической документации

. Проведение исследования

Заключение

Список использованных источников

Приложение. Листинг одной из сцен обучающего модуля

Введение

Применение игровых компьютерных сред в образовательных целях на сегодняшний день явление уже не редкое. Игровая компьютерная среда — это определенный вид игры, в которой заложены обучающие цели. Данную среду можно рассматривать как обучающую систему, процесс обучения которой интегрирован в игру. Главным преимуществом использования обучающих игровых компьютерных систем является большой мотивационный потенциал, который характерен высококачественным средам [1].

Ключевая характеристика, определяющая качество игровой обучающей среды — это баланс игровой и обучающей компоненты, которая обеспечивает целостность восприятия игры, а также предоставляет возможности для достижения целей обучения. Вариантом интеграции образовательного процесса в игровой является возможность совмещения внутри игры как игровых, так и обучающих действий, то есть способ включения образовательного курса в игровой сценарий [1].

В существующих обучающих системах применяются различные варианты совмещения обучающих и игровых сценариев. В зависимости от соотношения обучающей и игровой части эти варианты можно разделить на обучающие системы с элементами игры и игры с элементами обучения. Обучающие системы с элементами игры следуют принципу «edutainment», при котором образовательный контент помещается в игро-подобную (game-like) среду [2].

Часто обучающими играми могут стать обыкновенные компьютерные игры. Компьютерные игры, чаще всего применяемые в образовательных целях — это игры-стратегии, такие как, например, Minecraft [3] или Civilization [4], первоначально разрабатываемые как коммерческие продукты и не предназначенные для обучения. Во всяком случае модели предметной области, которые были реализованы в этих играх, настолько богаты и реалистичны, что игры имеют самостоятельную обучающую ценность [5].

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

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

Согласно опросу, проводившемуся в рамках работы над выпускной квалификационной работой было выявлено, что по меньшей мере 60% респондентов не хватает времени, проведенного на занятиях, чтобы усвоить материал в полной мере (распределение ответов изображено на рисунке 1.1) [6], поэтому дополнительная обучающая система, которая обладает к тому же большим мотивационным потенциалом будет как нельзя кстати.

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

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

Данная работа позволяет повысить уровень знаний обучающихся дисциплине «Представление знаний в информационных системах», уменьшить нагрузку на преподавателя в следствии большей самостоятельности учеников при использовании игровой компьютерной среды.

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

С докладом по теме «Исследование и реализация игровой компьютерной среды» прошло выступление в рамках молодежного научного форума «Молодые исследователи — регионам» в апреле 2017 года в г. Вологда. В рамках форума, организованного при участии Вологодского государственного университета проводилось несколько мероприятий, одним из которых была международная научная конференция «Молодые исследователи — регионам». По итогам выступления тезисы были рекомендованы к публикации в сборнике материалов международной научной конференции «Молодые исследователи — регионам».

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

1. Анализ моделей и средств построения игровых компьютерных сред

.1 Анализ методов представления предметной области

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

.1.1 Имитационные модели

Имитационные модели используются в играх-симуляторах (simulator), моделирующих реальные условия профессиональной деятельности специалиста в какой-либо области знаний. К такому классу игр можно отнести симуляторы управления различными транспортными средствами, медицинские, тактические, социальные и бизнес-симуляторы. В проектирование игр-симуляторов входит разработка реалистичной модели процесса в соответствующей предметной области, которая является предметом изучения в игре. Например, для разработки авиа-симулятора (Microsoft® Flight Simulator X, X-Plane и др.) необходимо создатья физическую (симуляция параметров самолёта и его взаимодействия со средой) и графическую (виртуальная или реальная машина пилота) модель.

При помощи компьютера в играх-симуляторах как можно более плотно воспроизводится физическое поведение, а также управление сложными объектами технической системы (например, боевым истребителем, автомобилем и т. д.). Главным показателем качества игр-симуляторов является полнота и реалистичность моделирования объекта симуляции.

Игровая составляющая в играх-симуляторах реализуется при помощи богатства графики и звуковых возможностей современных средств вычислительной техники для компьютерной интерпретации реальных процессов [1]. Основой игровой составляющей имитационных моделей является точное воспроизведение особенностей какой-то предметной области. Благодаря имитационным моделям возможно обучение управлению или использованию сложных технических аппаратов без риска повредить их, к тому же значительно дешевле с финансовой стороны, так как обучение происходит на специальных обучающих стендах или персональных компьютерах, зачастую даже без специального оборудования.

.1.2 Ситуационные модели

Ситуационные модели применяются в играх, в которых осуществляется обучение на примерах (case study-подход) с использованием возможностей компьютерных игр (организация диалогов, визуализация персонажей, событий и среды обитания и т.д.). Такие игры, как правило, реализуются в ролевом (role-playing) или приключенческом (adventure) жанре. Игрок попадает в виртуальную среду, разработанную на базе описаний ситуаций из реальной действительности, действует в соответствии с заложенным в игру сценарием (планом действий), ведет предварительно предусмотренные в игре диалоги, выбирает свои решения из заданных наборов и в результате обучается на примерах правильных решений. В процесс создания подобных игр входят: разработка описания, игрового сюжета на основе сценария, разработку виртуальной среды и способа ее отображения. Основной задачей разработчиков таких обучающих игр является выбор и реализация способов наиболее привлекательного с игровой точки зрения воспроизведения сценария [1].

.1.3 Формально-логические модели

В таких игровых жанрах как «паззл» (puzzle games), игры на сопоставление предметов и объектов (matching games), разнообразные виды игр на тренировку памяти (memory games, brain training games) используется формально-логическая модель предметной области. Такие игры базируются на проверке соответствия данных, которые вводит игрок, с заданными в системе паттернами. Введенные данные интерпретируются как высказывания на определенном языке, заданном грамматикой, формально-логическая модель применяется для проверки истинности высказываний [1].

Для игровой компьютерной среды дисциплины “Представление знаний в информационных системах” было решено использовать ситуационную модель предметной области. Ситуационные модели используются в игровых средах, в которых реализовано обучение на примерах. Такие игровые компьютерные среды чаще всего реализуются в приключенческом, ролевом жанре или играх-квестах. В них игрок помещается в виртуальную среду, созданную на основе некоторой ситуации, и действует согласно плану (сценарию) игровой среды [1].

.2 Анализ существующих компьютерных обучающих систем

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

В настоящее время известно достаточно большое количество компьютерных обучающих систем. У всех них разное назначение и место в учебном процессе. В настоящее время утвердилась определенная типологическая модель системы учебных изданий для вузов, в которую включено пять групп изданий, разделенных по функциональному признаку [7]:

программно-методические (учебные планы и учебные программы);

учебно-методические (методические указания, руководства, содержащие материалы по методике преподавания учебной дисциплины, изучения курса, выполнению курсовых и дипломных работ);

обучающие (учебники, учебные пособия, тексты лекций, конспекты лекций);

вспомогательные (практикумы, сборники задач и упражнений, хрестоматии, книги для чтения);

контролирующие (тестирующие программы, базы данных).

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

.2.1 СДО «Прометей»

Система дистанционного обучения (СДО) «Прометей» продуктивно применяется в различных проектах государственных и корпоративных структур. Ее уже используют ведущие учебные заведения России, Украины, Казахстана, Беларуси и других стран СНГ. Система СДО «Прометей» дает возможность построить виртуальную версию университета и реализовать там дистанционное обучение для значительно большой аудитории слушателей, при этом автоматизировав весь учебный цикл — от приема заявок до отметки о выдаче итогового сертификата [8].

Модуль «Учебный портал» дает возможность использовать СДО «Прометей» в качестве комплексной системы управления обучением и контентом. Благодаря функциям ведения лент новостей и редактирования информационных блоков, этим порталом способен даже управлять рядовой пользователь компьютера. Функции групповой регистрации пользователей и группового зачисления на курс слушателей значительно повышают эффективность использования СДО «Прометей» в крупных проектах.

В системе есть 3 основных режима. Первый — режим тестирования — тренинг — дает возможность после ответа на каждый вопрос сразу же сообщать слушателю, правильно ли тот ответил на вопрос. Тестирование в таком режиме позволяет слушателю значительно увеличить продуктивность работы над ошибками на начальной, чаще всего наиболее важной стадии освоения нового материала.

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

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

Интерфейс СДО «Прометей» локализован на украинский, казахский, азербайджанский, английский и французский языки. Система поддерживает импорт курсов в стандартах IMS и SCORM 2004, а также предоставляет пользователям ряд интересных возможностей, которые позволят им найти новое применение дистанционного обучения в своей повседневной деятельности.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Основными достоинствами системы являются:

дружественный интерфейс, предельная простота освоения и легкость в эксплуатации;

отсутствие лицензий на клиентские места;

возможность использования методики онлайн-обучения, основанной на командной работе;

высокая производительность и масштабируемость по мере увеличения числа пользователей и нагрузки;

видов тестов, возможность использования графики и мультимедиа в тестах;

возможность построения дополнительных отчетов силами специалистов Заказчика;

возможность объединения нескольких систем в единую образовательную среду;

возможность интеграции с кадровыми, бухгалтерскими, информационными и ERP-системами;

невысокие требования к ресурсам сервера и клиентских мест СДО;

установка стандартной СДО вместе с системным ПО осуществляется в течение одного дня.

Несмотря на такой обширный список достоинств у СДО «Прометей» есть существенный недостаток — в нём отсутствует игровая составляющая, которая могла бы значительно повысить мотивацию обучающихся и тем самым увеличить эффективность обучения.

1.2.2 PLATOLogic for Automated Teaching Operations (PLATO, рус. Программный алгоритм, предназначенный для автоматизированных операций преподавания) — первая система электронного обучения (изначально работавшая на компьютере ILLIAC I), к концу 70-х годов состояла из нескольких тысяч терминалов по всему миру и более десятка мейнфреймов, которые были соединены общей компьютерной сетью. Система ПЛАТО была разработана в Университете Иллинойса и использовалась повсеместно в течение 40 лет. Ее первоначальной функцией было выполнения курсовых работ обычными студентами университета Иллинойса, местными школьниками и студентами ряда других университетов. На сегодняшний день существует несколько работающих систем, которые являются непосредственными потомками ПЛАТО [9].

Реализацией проекта системы ПЛАТО занималась компания Control Data Corporation (CDC). Она разрабатывала компьютеры, на которых работала эта система. Президент корпорации Уильям Норрис первоначально планировал сделать систему ПЛАТО самой важной силой в компьютерном мире, однако вывод системы на рынок не дал успешных результатов. К сожалению, последняя работающая система была отключена в 2006 году (всего через месяц после смерти Норриса), но за это время благодаря ПЛАТО были ввнедрены такие базовые интернет-понятия как форум, онлайн-тестирование, электронная почта, чат, мгновенное сообщение, удалённый рабочий стол, многопользовательская игра. Специально для компьютеров ПЛАТО в 1973 году была создана первая игра c трёхмерной графикой Spasim, a также впервые переделаны под систему такие знаменитые игры, как Маджонг и Солитер.

В 1959 году Чалмерс Шервин, физик Университета штата Иллинойс, предложил идею создания компьютеризированной системы обучения Уильяму Эверетту — декану инженерного колледжа, который, в свою очередь, рекомендовал Даниэлю Альперту, другому физику, созвать совещание на этот счет, пригласив всех инженеров, системных администраторов, математиков и психологов. Спустя несколько недель после первой встречи совещание так и не пришло к общему мнению, как должна быть устроена система и её дизайн. Альперт коснулся этого вопроса в личном разговоре с лаборантом Дональдом Битцером, после которого лаборант решил разработать демо-версию системы.

Сегодня Битцер считается «отцом» системы ПЛАТО. Он признаёт, что для обеспечения качественного компьютерного образования, хорошие графические возможности не требовались (скорость печатания на телетайпах 10 символов в секунду в то время было нормой). К 1960 году система ПЛАТО впервые стала доступна для работы на компьютере ILLIAC I; для работы на нём прилагался телевизор в качестве устройства вывода и специальная клавиатура для навигации и работы с меню. А в 1961 году была спроектирована ПЛАТО 2, которая была ориентирована на работу двух пользователей одновременно [9].

Участники проекта не сомневались в ценности и значимости этих систем, и, таким образом, ПЛАТО развивалась и самосовершенствовалась с 1963 по 1969 года. ПЛАТО 3 давал возможность пользователям при создании новых модулей уроков применять язык программирования TUTOR, разработанный аспирантом биологии Паулем Тенцзаром в 1967 году. ПЛАТО 3 мог одновременно запускать до 20 программ с уроками. Он использовался в Иллинойском университете в Урбана-Шампейн. Система была устроена таким образом, что можно было входить в систему через пользовательские терминалы.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

В 1972 году была спроектирована система ПЛАТО 4. У новой системы имелся ряд инноваций, таких как оранжевая плазменная панель, разработанная Битцером. В нее были встроены функции растровой графики и память. С помощью плазменного дисплея поддерживалась возможность быстрой векторной отрисовки линий. Скорость работы была около 1260 бод, 60 строк или 180 символов в секунду. Формат дисплея был 512×512 битов; с помощью логики, зашитой в аппаратное обеспечение, осуществлялась отрисовка векторной графики и символов. Пользователи могли создавать свои собственные символы. Новое решение позволяло использовать графику растрового изображения. Сжатый воздух приводил в движение селектор изображения, работающий по принципу микрофильмирования. Цветные изображения проецировались на экран под программным контролем. Кроме того, дисплей ПЛАТО 4 также обладал сеткой инфракрасной сенсорной панели с размером 16х16, что позволяло учащимся давать ответ на вопрос касанием пальца в любом месте экрана. Еще одной функцией была возможность подключения терминала к периферийным устройствам. Одним из таких устройств был синтезатор Gooch Synthetic Woodwind, который мог обрабатывать и синтезировать 4 голоса и передавать информацию непосредственно в ПЛАТО 4. Позднее была разработана новая версия синтезатора, которая могла распознавать уже до 16 голосов, а также объединять и разделять звуки с целью получения более сложных комбинаций звуков. Также был создан специальный синтезатор речи Votrax [9].

Основной задачей этой системы было обучение пользователей и развитие их музыкальных навыков. К примеру, программа могла оценить скорость и тембр игры, так как в неё были включены интерактивные примеры, музыкальные диктанты. Для ПЛАТО 4 были созданы два специальных музыкальных и текстовых редактора, а также компилятор для языка, системы регистрации для музыки исполняемых файлов, программы для воспроизведения музыки в режиме реального времени и прочие музыкальные программы. Так ПЛАТО стала первой системой, обладающей расширенными мультимедийными возможностями.

С появлением микропроцессоров были спроектированы новые, более дешёвые и обладающие большими возможностями терминалы. В университете Иллинойса им дали название ПЛАТО 5, хотя самой системы ПЛАТО 5 никогда не существовало (она продолжала называться ПЛАТО 4). С помощью микропроцессоров Intel 8080, которые были встроенны в терминалы, система теперь могла выполнять программы локально, как сегодня работают Java-апплеты или элементы управления ActiveX, а также загружать небольшие модули программного обеспечения в терминал, для того чтобы сделать разнообразными учебные курсы за счёт сложной анимации и других возможностей, которые недоступны в обычных терминалах.

В 1972 году в университете штата Иллинойс исследователям компании Xerox PARC продемонстрировали систему ПЛАТО. Им были представлены отдельные модули системы, такие как программа для генерирования изображений для ПЛАТО, и программа для «отрисовки» новых символов. Многие из этих инноваций в дальнейшем послужили фундаментом для разработки других компьютерных систем. Некоторые из этих технологий в усовершенствованном виде проявились в системе Xerox Alto, которая, в свою очередь, стала прототипом для разработок компании Apple [9].

К 1975 году система ПЛАТО, выполнявшаяся на суперкомпьютере CDC Cyber 73, обслуживала почти 150 мест, включая не только пользователей системы ПЛАТО 3, но и гимназии, лицеи, колледжи, университеты и военные объекты. В ПЛАТО 4 в составе учебных курсов предлагались текст, графикa и анимация. Кроме того, имелся механизм разделяемой памяти («общие» переменные), что позволяло с помощью языка программирования TUTOR обмениваться данными между различными пользователями в реальном времени. Все это легло в основу создания первых программ для чата, а также первого многопользовательского авиасимулятора.

После появления ПЛАТО 4 Битцер заявил об её общем успехе, утверждая, что его главная цель достигнута: универсальное компьютерное обучение теперь доступно всем. Однако стоимость терминалов ПЛАТО была слишком высокой (около 12 000 долларов), поэтому для достижения состояния общедоступности, стоимость системы ПЛАТО было необходимо сократить.

Вопреки тому, что система ПЛАТО фактически была первопроходцем в сфере компьютерных обучающих систем, из-за своей дороговизны и развития конкурентов она свой век закончила.

.2.3 ComputerMentorпредоставляет возможность для создания бесконечного множества заданий по различным темам изучаемой предметной области, призывая ученика решить задачу и ввести ответ. В ситуации, если учащийся не способен дать правильный ответ, программа продемонстрирует полный путь решения текущей сгенерированной задачи. Таким образом, у обучающегося появляется возможность ознакомиться с вариантами решений большого количества задач из разных разделов предметной области [10].

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

1.2.4 Memrise- это обучающая система, базирующаяся на интервальном запоминании и служит в качестве системы, помогающей изучать иностранные языки, хотя может использоваться и как обучение практически любой предметной области. Интервальное запоминание базируется на следующем принципе — если повторять материал в строго определённые промежутки, то он не забудется. Сначала вы повторяете через час, потом через шесть часов, потом через сутки и так далее. Чем дальше, тем больше промежутки и тем меньше времени вы тратите [11].

Принцип интервального запоминания основывается на работе краткосрочной памяти человека и её взаимосвязью с долгосрочной памятью. Мы узнали что-то новое. А через два часа мы можем забыть до 80% изученного. Человек забывает по особой кривой. Примерное представление этой кривой приведено на рисунке 1.2.1. На оси абсцисс отсчитывается время в часах после получения новой информации, а по оси ординат — процент забытой информации.

Рисунок 1.2.1 — Скорость забывания информации человеком

Технология Memrise использует новейшие открытия в области нейролингвистики и методик обучения. Её преимуществом является способность подстраиваться под индивидуальные особенности нашей памяти. Уникальная система мнемонического запоминания помогает быстро и эффективно пополнять словарный запас. При этом, важно не только выучить слова или фразы, но и не забыть их со временем. Memrise предлагает очень простую и эффективную функцию интервального повторения — через определённые промежутки времени программа будет напоминать о выученных словах и поможет закрепить их в памяти навсегда [11].

Помимо прочего Memrise доступна не только на персональных компьютерах, но и на смартфонах, работающих на операционных системах iOs и Android.

.3 Постановка задачи

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

игровой компьютерный информационный знание

Задачей данной работы является разработка и исследование игровой компьютерной среды дисциплины «Представление знаний в информационных системах», изучаемой в учебном процессе по направлению 09.03.02 «Информационные системы и технологии». Данная среда должна сочетать в себе большой мотивационный потенциал игровых сред и тестирующе-обучающую систему, пройдя через которую обучаемый получит новые знания, научится отвечать на вопросы и решать задачи предметной области. Кроме того, следует изучить влияние такой игровой компьютерной среды на результаты обучения студентов, и сделать выводы по ним.

Также при разработке игровой компьютерной среды необходимо привнести научную новизну в эту сферу. Поэтому к игровой среде необходимо добавить многоуровневую генерацию заданий. Это позволит давать в зависимости от правильных решений обучаемого разный по сложности и тематике материал. Задания должны быть разбиты на когорты, из которых с определенной вероятностью выдается задача обучаемому: чем выше знания определенной когорты вопросов будет показывать игрок, тем реже он будет получать задания этой когорты. Таким образом будет повышаться средний уровень знаний обучаемого по предметной области. К тому же формирование заданий таким образом происходит только в момент тестирования из хранящихся в памяти шаблонов заданий и диапазонов параметров, что позволяет использовать сравнительно небольшой размер памяти устройства, на котором производится тестирование обучающего.

После реализации игровой среды требуется провести исследование её влияния на уровень знаний обучаемых и провести оценку результатам всей работы.

2. Анализ моделей и технологий разработки

.1 Выбор среды проектирования и языка разработки

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

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

.1.1 Adobe FlashFlash (ранее Macromedia Flash) — мультимедийная платформа, разработанная компанией Adobe Systems предназначенная для создания и разработки приложений или мультимедийных презентаций. Она довольно широко применяется при разработке игр, анимации, баннеров, а также служит механизмом воспроизведения на веб-страницах видео- и аудиозаписей. В последнее время Adobe Flash уступает технологии HTML5 [9].

В данной платформе присутствует ряд средств для разработки, такие как Adobe Animate и Adobe Flash Builder, а также программа для воспроизведения flash-контента на веб-сайтах — Adobe Flash Player.Flash предоставляет возможности для работы с векторной, растровой и с трёхмерной графикой. При этом в ней используется графический процессор. Платформа поддерживает двунаправленную потоковую трансляцию аудио и видео контента. Для КПК и других мобильных устройств была разработана специальная «облегчённая» версия платформы, получившая название Flash Lite. Ее функциональность ограничена в расчёте на возможности мобильных устройств и в зависимост от их операционных систем.

Компанией было разработано стандартным расширение для скомпилированных flash-файлов (анимации, игр и интерактивных приложений) — SWF (Small Web Format).использует язык программирования ActionScript, основанный на ECMAScript.

У flash-приложений присутствует большой недостаток — это огромная нагрузка на центральный процессор. Это связано в большей степени с неэффективностью виртуальной машины Flash Player. Несмотря на это, следует отметить, что в некоторых случаях причиной может быть и недостаточная оптимизация flash-приложений их разработчиками, использование так называемых «генераторов» flash-приложений.

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

Третий недостаток свойственен для всех виртуальных машин. Проявляется он в том, что не всегда присутствует возможность запустить flash-приложение, либо это связано с некоторыми трудностями. К примеру, многие пользователи или администраторы отключают в настройках браузеров flash-контент для экономии системных ресурсов, избавлением от надоевшей рекламы и для обеспечения информационной безопасности. Данный недостаток делает технологию Flash менее универсальной и ограничивает её использование в веб-приложениях критической важности.

Еще одним важным недостатком можно отметить затруднение индексирования поисковыми системами при использовании Flash для размещения текстовой информации. Несмотря на то, что определённая система индексирования текста внутри swf-файлов была создана и внедрена Google и Yahoo! ещё в 2008 году, доля сайтов, целиком и полностью созданных на Flash, всё еще остаётся небольшой.Script 3.0 считается языком, порог входа в который достаточно небольшой, что является несомненным плюсом.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

.1.2 Unity 5.3- это инструментарий, предназначенный для создания двух- и трёхмерных приложений и игр, которые работают под операционными системами Windows, Linux и OS X [9].

Разработанные в Unity приложения могут функционировать под операционными системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux, а также на игровых приставках Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One и MotionParallax3D дисплеях (устройства для воспроизведения виртуальных голограмм), например, Nettlebox. При помощи специального подключаемого модуля Unity (Unity Web Player), а также с помощью реализации технологии WebGL пользователь может создавать приложения для работы в интернет-браузерах.

Разработанные с помощью Unity приложения поддерживают DirectX и OpenGL. Данный движок широко используется как крупными разработчиками (Blizzard, EA, QuartSoft, Ubisoft), так и разработчиками Indie-игр вследствие наличия у Unity бесплатной версии, а также удобного интерфейса и простоты работы с движком.

В редакторе Unity встроен Drag&Drop интерфейс, который довольно легко настраивать. Он состоит из различных окон, и благодаря этому можно производить отладку игры прямо в редакторе. У движка есть возможность поддержки двух сценарных языков: C#, JavaScript (модификация). Расчётами физики оперирует физический движок PhysX от NVIDIA.

Проект в Unity разделен на сцены (уровни), представляющие собой отдельные файлы, в которых содержатся свои игровые миры с собственным набором объектов, сценариев и настроек. Сцены могут включать в себя как объекты (модели), так и, непосредственно, пустые игровые объекты — те, у которых нет собственной модели («пустышки»). Самих объектах, в свою очередь, содержатся наборы компонентов, с которыми и взаимодействуют скрипты. Также у объектов есть название (в Unity допускается наличие двух и более объектов с одинаковыми названиями), может быть тег (метка) и слой, на котором он должен отображаться. Таким убразом, у любого объекта на сцене обязательно присутствует компонент Transform. Его функция — это хранение в себе координат местоположения, поворота и размеров объекта по всем трём осям. У объектов с видимой геометрией также по умолчанию присутствует компонент Mesh Renderer, делающий модель объекта видимой. К объектам можно применять коллизии (в Unity т. н. коллайдеры — collider).

Также Unity поддерживает физику твёрдых тел и ткани, а также физику типа Ragdoll (тряпичная кукла). В редакторе имеется система наследования объектов; дочерние объекты будут повторять все изменения позиции, поворота и масштаба родительского объекта. Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.

.1.3 Construct 22 предоставляет возможность любому желающему создавать 2D-игры любой сложности и любого жанра, даже не имея навыков программирования. Игры, сделанные на нём, легко портируются на все основные платформы — PC, Mac, Linux, браузеры с поддержкой HTML5, Android, iOS, Windows Phone, Blackberry 10, Amazon Appstore, Chrome Web Store, Facebook и пр. Поддержка iOS и Android осуществляется благодаря технологиям CocoonJS от Ludei, directCanvas от appMobi и Intel XDK, которые используют аппаратное ускорение для увеличения производительности HTML5 игр в 5-10 раз [9].

Программа обладает интуитивно понятным и простым в освоении интерфейсом. Благодаря визуальному WYSIWYG-редактору от пользователя не требуется знаний в программировании и опыта в разработке игр, в ней способен разобраться даже ребёнок. Логика игр в Construct 2 создается с помощью системы событий (англ. events) и связанных с ними действий (англ. actions).

Редактор Construct 2 написан на языке C++, а игры кодируются в Javascript. При экспорте проекта JavaScript минифицируется, однако есть возможность подключить Javascript Plugin SDK и модифицировать код вручную. Также существенным плюсом является наличие у Construct 2 модульного дизайна, благодаря которому любые плагины или поведения, которые не задействованы в проекте, не включаются в скрипт, что помогает оптимизировать проект и уменьшить его вес.

Для того чтобы овладеть Construct 2 необходим лишь базовый опыт работы с ПК и немного усилий. Кроме того, систематические обновления делают использование программы достаточно безопасным.

Данный конструктор игр одинаково хорошо подходит как для неопытных новичков, желающих попробовать себя в создании простых игр, так и для профессионалов, которые хотят научиться делать качественные игры. Более того, с его помощью можно легко создавать прототипы игр, демонстрационные версии, презентации и интерактивные обучающие приложения.2 отлично подходит под требования разработки игровой компьютерной среды дисциплины «Представление знаний в информационных системах». Но тем не менее поиск среды проектирования продолжается.

.1.4 Corona SDK- это довольно быстрый и простой инструмент разработки для Пк, iOs и Android игр и приложений [12].SDK обладает множеством различных свойств, позволяющих разрабатывать надежные приложения. Некоторые из этих свойств включают:

разработка родных приложений: исполняемые файлы Corona на 100% Objective-C/C. На самом деле, в Corona для компиляции требуется Xcode;

автоматическая интеграция OpenGL-ES: нет необходимости вызывать дополнительные классы или функции для создания простых манипуляций с экранами;

кросс-платформенная разработка: Corona может создавать приложения для iOS (iPhone, iPod Touch, iPad), Android-устройств и Windows;

производительность: Corona оптимизирована под использование свойств с аппаратным ускорением, что дает непревзойденную производительность в играх и приложениях;

свойства устройств: доступ к родным контроллерам и аппаратному оснащению устройств вроде камеры, акселерометру, GPS и так далее;

легко изучать: Corona использует язык программирования Lua, который имеет очень низкий порог вхождения.

Для разработки приложений в Corona применяется язык программирования Lua. Lua — это язык разработки скриптов, который широко используется в разработке игр. Он уже довольно устойчиво прижился на рынке и в сообществе разработчиков. Синтаксис Lua можно поддается сравнению с такими языками как javascript или ActionScript 3, что делает его крайне простым в изучении.

Также несомненным плюсом Corona SDK является то, что у меня имеется опыт работы как с ней самой, так и с языком lua в частности.

.1.5 Clickteam FusionFusion — это конструктор 2D-игр для разных популярных платформ, созданный компанией Clickteam, выпускающей подобные программы на протяжении уже многих лет. В сущности, Clickteam Fusion является перерождением другого конструктора игр, Multimedia Fusion 2, который перестал развиваться в декабре 2013 года, когда вышел Clickteam Fusion 2.5. Данный конструктор не ограничивается жанровой направленностью и платформенной принадлежностью, разрабатываемых в нём игр [9].

Как утверждают авторы данного конструктора, ни с одним конструктором создание игр и программного обеспечения не было настолько простым и быстрым, как с Clickteam Fusion 2.5. Редактор событий конструктора CF2.5 дает возможность быстро генерировать игры или приложения, не требуя особых навыков программирования. Потратив небольшое количество времени можно легко постичь основы, которые в дальнейшем позволят разрабатывать игры для Windows, Android, Flash и XNA, а также для Windows Mobile и Xbox 360.

Один-единственный инструмент «перетаскивание» обладает множеством удивительных особенностей, таких как:

отсутствие потребности в приобретении специальных знаний в области программирования;

простота и легкость использования и интуитивно понятные интерфейс и функционал;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

доступность шейдерных эффектов;

возможность создания вкладок при помощи только одного инструмента «перетаскивание»;

возможность публиковать приложения на нескольких разных платформах;

возможность публиковать игры и приложения на нескольких разных платформах;

полная свобода творчества;

аппаратное ускорение игр и приложений;

дружественная группа поддержки.

Программа CF2.5 подстраивается под разные виды платформ с помощью дополнительных экспортеров:

оперативно создает HTML5 и производит его автоматический запуск в вашем браузере;

использует расширение SDK для расширенной функциональности;

оперирует программами аппаратного ускорения и шейдеров на мощных машинах с Windows;

сотня вспомогательных объектов обеспечивает дополнительную функциональность инструмента;.5 подключается непосредственно к любому устройству Android и формирует APK;

получает доступ к ОС Android при помощи простой системы прав доступа;

создает игры для всех сенсорных устройств iOS, включая Ipad, Iphone и Ipod;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

увеличивает опционный контроль интерфейс-объектов Accelerometer и Multitouch;

создает игры для Xbox 360 и Windows 8 Mobile;

имеет множество вариантов управления для нескольких платформ;

в Adobe Flash Player легко создает полностью настраиваемый SWF.

Данный конструктор игр отлично подойдёт для тех, кто хочет быстро, и без заморочек с языками программирования, создавать кроссплатформенные игровые 2D-приложения на популярные платформы.

.1.6 Выбор технологии разработки

Под требования для реализации игровой компьютерной среды дисциплины «Представление знаний в информационных системах» больше всего подошли: Corona SDK, так как у меня есть опыт работы с ней и этот инструмент достаточно прост и удобен для разработки, Construct 2, так как это простой и удобный конструктор с минимальным порогом вхождения, и Clickteam Fusion, так как этот конструктор также отлично подходит для быстрой и простой разработки приложений для основных популярных платформ.

Их общие достоинства:

технологии просты в освоении для начинающих и имеют большой потенциал для более продвинутых пользователей;

хорошая сопровождающая документация;

мало, либо совсем нет, значимых ошибок — технологии достаточно оптимизированы для работы с основными популярными платформами;

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

За Corona SDK — наличие опыта в работе с ней и знание языка lua, за Construct 2 и Clickteam Fusion — то, что они конструкторы, и это значит, что потребуется минимальное владение языками программирования, чтобы написать на них что-то, а также удобный графический редактор, в котором большинство действий можно совершить при помощи drag&drop.

Для данной работы была выбрана Corona SDK. Причиной этому послужило наличие опыта работы с ней и преимущество перед конкурентами в виде непосредственного написания кода программы, тем самым получая полный контроль над процессом разработки.

.2 UML-моделирование

Основной составляющей объектно-ориентированного анализа при разработке компьютерных обучающих систем является декомпозиция проблемы на отдельные классы понятий (концептуальные классы) или объекты. Моделью предметной области является визуальное представление концептуальных классов или объектов реального мира в терминах предметной области. Это один из первых этапов моделирования предметной области, который необходим для сбора, классификации и формализации сведений обо всех аспектах предметной области, определяющих свойства разрабатываемой системы [13].

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

В соответствии с методологией объектно-ориентированной разработки программных систем, в основе которой в качестве процесса в текущей работе используется Унифицированный процесс компании Rational — Rational Unified Process (RUP), в технологическом процессе бизнес-моделирования имеют место быть несколько сценариев моделирования производства, что является условием представления бизнес-модели как надмножества модели предметной области [13]. При разработке приложений типа компьютерных обучающих систем (КОС), основной целью которых является предоставление информации и управление ею, технологический процесс бизнес-моделирования подразумевает моделирование предметной области. Целью моделирования предметной области компьютерные технологии обучения как альтернативной детали технологического процесса бизнес-моделирования является:

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

детализация объектов предметной области;

концептуальное представление понятий предметной области.

На языке Unified Modeling Language (UML) модель предметной области представляется в виде набора диаграмм классов, с неопределенными операциями. Модель предметной области может отображать следующее:

объекты предметной области или концептуальные классы;

ассоциации между концептуальными классами;

атрибуты концептуальных классов.

Для создания модели предметной области необходимо проделать несколько этапов.

выявление концептуальных классов на базе списка категорий и метода анализа текстового описания для текущей итерации разработки;

отражение концептуальных классов в модели предметной области;

добавление необходимых ассоциаций, которые бы отражали связи, для которых требуется выделение памяти;

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

Модель предметной области компьютерных обучающих систем воспроизводит основные (с точки зрения моделирующего) классы понятий (концептуальные классы) или словарь предметной области. Неформально, концептуальный класс — это некая демонстрация идеи или объекта. Выражаясь более строго, концептуальный класс можно рассматривать в терминах символов, содержания и расширения, которые интерпретируются следующим образом:

символы (symbol) — слова или образы, представляющие концептуальный класс;

содержание (intension) — определение концептуального класса;

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

расширение (extension) — набор примеров, к которым применим концептуальный класс.

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

выбор из списка категорий концептуальных классов;

на базе лингвистического анализа — выявление существительных и именных групп из текстовых описаний предметной области и их выборе в качестве концептуальных классов.

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

Для восприятия контекста системы с помощью модели предметной области можно рассматривать в виде наиболее важных объектов «предметы», которые существуют, или события, которые происходят в рабочей среде системы. Большая часть объектов предметной области, или, если применить более точную терминологию, классов предметной области можно определить из документа-концепции, разработка которого предшествует моделированию предметной области. Классы предметной области можно разделить на три типовые категории:

бизнес-объекты (производственные объекты), описывающие сущности, применяемые в текущем рабочем процессе, такие как компьютерный учебник, компьютерный тренажер и практикум;

объекты и понятия реального мира, отслеживаемые системой, такие как стендовые тренажеры, подключенные к автоматизированной системе обучения;

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

Полный список классов предметной области компьютерных обучающих систем соответствует требованиям и принятым упрощениям для основных сценариев прецедентов системы. Не существует понятия «правильный» список. Его можно охарактеризовать, как произвольную комбинацию абстракций и понятий из словаря предметной области, представляющуюся важной по мнению разработчика модели. Вместе с тем, если для идентификации концептуальных классов применять изложенные выше стратегии, то различные специалисты по моделированию составят примерно одинаковые списки.

Целесообразно в объектном проектировании (особенно при моделировании предметной области) и программировании создавать программные классы, имена и содержание которых соответствуют сущностям реального мира. Это значительно уменьшит разницу между представлением заказчика о понятиях предметной области и выявлении этих понятий в программном обеспечении. При таком сокращении семантического разрыва между программной и концептуальной моделями результатом будет практическое преимущество.

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

Результатом разработки создание достаточно полезной и продуктивной модели предметной области компьютерной обучающей системы. Не существует такого понятия, как «единственно верная модель». Каждая модель является аппроксимацией изучаемой предметной области. Хорошая модель отличается представленными в ней наиболее существенными абстракциями и данными, которые необходимы для понимания предметной области в контексте текущих требований.

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

.2.1 Построение концептуальной модели предметной области

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

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

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

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

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

Рисунок 2.2.1 — Концептуальная модель разрабатываемой системы

3. Разработка алгоритмов построения игровой компьютерной среды

Игровую компьютерную среду дисциплины «Представление знаний в информационных системах» можно разбить на две основные задачи: построение игровой среды предметной области и алгоритм многоуровневой генерации заданий.

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

.1 Построение игровой среды предметной области

Для перехода к построению игровой среды предметной области необходимо сначала определиться с жанром игры, а для этого нужно рассмотреть существующие жанры компьютерных игр.

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

Существуют игры, включающие в себя элементы нескольких жанров, способные принадлежать каждому из них (например, серия Grand Theft Auto, Космические Рейнджеры, Rome: Total War и многие другие). Подобные разработки относят либо к одному из жанров, который в игре является базовым, либо сразу ко всем, присутствующим в игре, если они в равной мере составляют геймплей проекта.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

D-шутер (англ. 3D Shooter) — в играх такого типа игроку, как правило, действующему в одиночку, ставится задача уничтожения врагов при помощи оружия ближнего боя (чаще всего холодного) и стрелкового оружия (как правило огнестрельного оружия и энергетического). В шутерах от первого лица (англ. First person shooter, FPS) игрок не видит персонажа со стороны — он наблюдает за происходящим от лица персонажа — «глазами персонажа» (англ. First person look), и наблюдаемая игроком картина совпадает с тем, что «видит» персонаж. В шутерах от третьего лица (англ. Third person shooter, TPS) игрок видит персонажа со стороны с фиксированной (обычно со спины) или произвольной точки зрения (англ. Third person look). В ряде игр реализована возможность переключения первое/третье лицо и фиксированная/произвольная камера.

Геймплей «файтингов» составляют исключительно поединки двух и более противников с применением рукопашного боя. Beat’em up — одна из разновидностей файтингов, в которых сам бой проходит за пределами арены и с вовлечением большого числа противников единовременно. Слэшеры — игры с видом от третьего лица, основной частью игрового процесса в которых являются фехтовальные поединки с применением холодного и другого оружия.

Аркада (англ. Arcade) — игра, основанная в первую очередь на быстродействии игрока, которому приходится полагаться в первую очередь на свои рефлексы и реакцию. Игровой процесс очень простой и стабильный на протяжении всей игры. Аркады можно охарактеризовать развитой системой бонусов: начисление очков, постепенно открываемые элементы игры и т. д. Первые популярные в мире игры чаще всего были аркадами. Именно поэтому начало 1980х годов называют «золотой эрой аркадных игр». Объем рынка аркадных автоматов был огромным и исчислялся миллиардами долларов.

Стелс-экшен (англ. Stealth-action) — игры, в которых главной целью ставится не сражение с большинством встреченных противников, а избежание любым способом возможного контакта с ними, и, попутно выполнение поставленных задачи. Со стелс-элементы (например, возможность выглядывать из-за угла, прислонившись к стене) довольно часто можно столкнуться в играх различных жанров.

С помощью компьютера в технических симуляторах довольно полно имитируется физическое поведение, а также управление какими-либо сложными объектами технической системы (например, боевым истребителем, автомобилем и т. д.). В то время как аркады стремятся достичь развлекательной функции с помощью различных невозможных явлений, трюков и остроты сюжета, то главным критерием, отвечающим за качество технических симуляторов, является полнота и реалистичность моделирования его объекта (автомобиля, воздушного судна и т. д.). Аркадные симуляторы — упрощённая версия технических симуляторов, часто с использованием альтернативной физики. Принципиальное отличие технических симуляторов от аркад — наличие хоть и упрощённой, но всё же физической модели. Наиболее часто с подобной физикой разрабатывают симуляторы космических кораблей и автомобилей.

Стратегии (англ. Strategy) — игры, в которых от пользователя требуется спланировать и выработать какую-либо стратегию для достижения некоей конкретной цели, например, победы в военной операции. Игроку предстоит управлять не одним персонажем, а целым подразделением, предприятием или даже вселенной. Стратегии можно разделить на походовые или пошаговые стратегические игры (Turn-Based Strategy, TBS), где игроки по очереди делают ходы, и каждому игроку отводится неограниченное или ограниченное (в зависимости от типа и сложности игры) время на свой ход, и стратегические игры в реальном времени (Real Time Strategy, RTS), в которых все игроки выполняют свои действия одновременно, без прерывания хода времени.

Квест (англ. quest), или приключенческая игра (англ. adventure game) — также является одним из основных жанров компьютерных игр. Перед игроком предстает интерактивная история с главным героем (управляемым игроком); вместе с тем повествование и обследование мира — важнейшие элементы игры, а ключевую роль в игровом процессе играют решения головоломок и задач, требующих от игрока умственных усилий. Бои, экономическое планирование и задачи, требующие от игрока скорости реакции и быстрых ответных действий, в квестах сведены к минимуму или вовсе отсутствуют. Игры, объединяющие в себе характерные признаки квестов и жанра action, выделяют в отдельный жанр — action-adventure.

Англоязычное название adventure game восходит к первой игре жанра, Colossal Cave Adventure, и должно пониматься как «игра, подобная Adventure», хотя современные игры могут сильно от нее отличаться. В русском языке закрепилось название «квест», которое первоначально также было именем собственным и использовалось в названии популярных игр этого жанра, разработанных компанией Sierra On-Line: King’s Quest, Space Quest, Police Quest.

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

У жанра квест есть поджанры, которые могут помочь нам более точно определиться с игровой составляющей нашей программы.

Текстовые приключения — это одна из самых первых вариаций жанра квест вообще. В настоящее время текстовые приключения редко встречаются в отдельных самостоятельных играх. Чаще они используются в качестве мини-игр в составе крупных выпускаемых игр.

Графические квесты (или «point-and-click») — это поджанр квестов, который основывается на управлении курсором мыши, джойстика или клавиатурой, в отличии от текстовых квестов, где управление осуществлялось при помощи ввода команд с клавиатуры.

Визуальные новеллы — это характерный для Японии подвид текстовых квестов, в котором подаваемая текстом история подкрепляется статичными или анимированными картинками. Степень интерактивности в таких играх обычно не высока. Этот жанр еще можно сравнить с интерактивной литературой.

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

Подвид поджанра квестов головоломок «выход из комнаты» отлично подходит для выбора в качестве жанра и сюжетной опоры в нашей игровой компьютерной среде [9].

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

Подобная игровая мета была использована в игре «100 дверей», изображенной на рисунке 3.1.1. Все что необходимо сделать игроку в этой игре, это найти ключи к 100 закрытым дверям. Казалось бы, здесь все проще некуда, только вот все ключи очень хорошо спрятаны, и для того чтобы их отыскать, придется пошевелить извилинами в мозгу. Игроку требуется разгадать множество задач и решить не одну головоломку. Ответы могут быть в совсем неочевидных местах, например, просто лежать на полу, быть нарисованными на стене или двери, а иногда, чтобы найти ответ придется сделать что-то совершенно невообразимое.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

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

Рисунок 3.1.1 — Игра «100 дверей»

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

Простая задача — дверь с кодовым замком, код от двери — год рождения какого-то ученого, например, Алана Тьюринга. На стене какие-то случайные и не очень случайные надписи, которые подсказывают обучающемуся верный ответ: “Люблю Полину!<3” “А я люблю Алана” “Тьюринга?” “Да, прямо со дня его рождения” “Ты в 1912 ещё даже не родилась!”. После ввода кода дверь открывается, и игрок переходит на новую сцену.

Средняя задача — на двери висит электронный дисплей с надписями, над ним задача: «Лишь постигший все модели представления знаний сможет пройти». На дисплее перечислен список случайных терминов: продукционные, формальные логические, семантические сети, фреймы, безупречного обслуживания, закрытая, открытая, коммуникативная. При тапе на какую-то надпись, она меняет свой цвет с белого на зелёный. При клике по надписи “все модели” происходит проверка выделенных надписей. Если выделены все нужные, то дверь открывается. Если не все нужные выделены или выделены лишние, то выделение всех надписей сбрасывается.

Простая задача — над дверью надпись “набор инструкций, задающих последовательность действий по преобразованию некоторой совокупности исходных данных для получения определенного результата”. Справа от неё кодовый замок, куда можно ввести “определение”. С другой стороны, на стене нарисован простой алгоритм.

Средняя задача — над дверью находится надпись “Определение ты знаешь! Но какие свойства его раскрывают?”. Словосочетание “свойства” выделено жирным курсивом и цветом. На стенах надписи: дискретность, определенность, результативность, массовость, непрерывность, неопределённость, безрезультатность, уникальность. Эта задача по своей типизации повторяет задачу номер два.

Сложная задача — решение задачи на машине Тьюринга. Вверху написан код “100100”, под ним другой “1#&10#”, причём первый код просто написан, у второго же каждый символ выделен рамочкой, которая подразумевает возможность изменять значения этого поля. Рядом с кодами ряд кнопок со списком возможных команд машине Тьюринга, также кнопка сброса прогресса и выполнить, которая проверяет правильность проведенных операций.

Так выглядит один обучающий блок обучающей подсистемы. Все вопросы подобраны одной тематики и разной сложности. Сложность заданий выдается не равномерно, а с учетом определенной кривой сложности.

Важность кривой сложности в игровой среде сложно переоценить. Разные игры разных жанров работают по-своему над кривой сложности. Они стараются повысить показатели проекта при помощи уровней разной сложности. За уровень в данной ситуации может приниматься, как и обычный уровень в игре типа «три в ряд», так и очередной противник в MMO RPG. Кривая сложности влияет на основные показатели проекта — такие как монетизация и удержание пользователя. Именно ради удержания пользователя нам и нужно использовать кривую сложности при выдаче уровней-сцен.

Компания-разработчик казуальных игр Wooga на прошедшей в Сан-Франциско конференции игровых разработчиков поделилась своим исследованием на этот счёт. «Злость — очень сильная эмоция», — с этих слов началось выступление Флориан Стейнофф, главного по продукту в компании Wooga. По мнению Стейноффа, когда создаешь игру, не стоит делать ее во всем «милой и пушистой». Должно быть место и ненависти [14].

«В случае если игрок ненавидит игру, это означает, что он испытывает очень сильные эмоции по поводу нее, что вполне может стать следствием того, что он также немного ее любит», — отметил Флориан. Оттолкнувшись от этой позиции, он рассказал об уровнях сложности в игре Jelly Splash.

В процессе разработки игры было испробовано множество вариантов роста сложности. Пробовали стремиться к постоянному увеличению сложности уровней (по аналогии с прямой, расположенной под углом в 45 градусов по отношению к оси абцисс). Кроме того, были проведены эксперементы с кривой сложности, внешне схожей с «хоккейной клюшкой» — графика в виде экспоненциальной функции, но в результате в Wooga пришли к кривой линии, утыканной пиками, которая изображена на рисунке 3.1.2.

Рисунок 3.1.2 — Кривая сложности в игре Jelly Splash

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Пики представляют собой «очень сложные уровни», которые замедляют движение игрока по кампании. Проблема в том, что на этих уровнях процент поражений игроков достигает до 95%. Сразу после сложных уровней идут «долины» более легких уровней, на которых игроку дается передышка. Также Wooga добавила BuildUp-уровни, сложные этапы на склонах, ведущих к пикам. Не стоит вводить на первых этапах пики и BuildUp-уровни. Однако это не значит, что игра с самого начала должна быть простой. «Игроки должны проигрывать, они должны проигрывать даже в самом начале, в ином случае они подумают, что игра — для детей», — отмечает Флориан [14].

Поэтому использование кривой сложности для процесса обучения и тестирования является вполне обоснованной мерой. Тогда встает вопрос — как измерять сложность уровней и как понять, что текущая сложная задача для игрока уже не кажется сложной? Для решения этого вопроса было решено прибегнуть к системе рейтинга Эло, активно используемой в довольно большом количестве игр явно или скрыто.

Система рейтингов Эло представляет собой особую методику расчёта относительной силы игроков в играх, в которых принимают участие два игрока (например, сёги, го или шахматы). Данную систему рейтингов разработал американский профессор физики венгерского происхождения Арпад Эло. В текущей работе мы планируем жестко задавать сложность для уровней, а динамично меняться будет только рейтинг игрока [15].

Арпад Эло, квалифицированный шахматист уровня мастера, активно работал в Шахматной федерации США со времени её основания в 1939 году. Шахматная федерация США применяла цифровую систему для обсчёта рейтингов, которые позволяли следить за прогрессом шахматистов. Но эта система не была совершенной и временами приводила к необоснованному росту рейтингов. По поручению Шахматной федерации США профессор Эло разработал новую систему на статистической основе.

Система рейтингов Эло была предложена Шахматной федерацией США в 1960 году. В 1970 году ФИДЕ приняла систему рейтингов Эло за основу при решении вопросов, связанных с присвоением званий гроссмейстера и международного мастера, комплектованием отборочных и других турниров и так далее.

Под рейтингом Эло в шахматах обычно подразумевают рейтинг ФИДЕ, который получают шахматисты после выступлений в турнирах с обычным контролем времени. В шахматах рейтинг Эло вычисляется по результатам игр шахматистов друг с другом. Система рейтингов Эло делит шахматистов на девять классов: высший класс начинается с рейтинга 2600, низший класс соответствует рейтингу 1200 и ниже [15].

В системе рейтингов Эло принято, что переход от одного класса игры к следующему происходит примерно через 200 пунктов рейтинга (начиная с игроков уровня первого разряда). Если различие между двумя игроками составляет 200 пунктов, то сильнейший игрок набирает в среднем около 0,76 очка за игру, если различие составляет 400 пунктов, то это среднее примерно равно 0,91. Различие в 600 пунктов означает, что сильнейший игрок выигрывает «почти» всегда (в среднем около 0,97 очка за игру). Если рейтинги обоих игроков равны, вероятность победы одного из них равна вероятности победы другого из них (что равносильно среднему количеству 0,5 очков за игру). Эти вероятности, конечно, не учитывают резко изменившуюся спортивную форму игрока в конкретный момент. Напротив, если сила игрока изменяется относительно медленно (в то время как игрок проводит статистически достаточно большое количество игр, учитываемых для изменения рейтинга), то рейтинг постоянно подстраивается под изменения силы игрока.

Чем стабильнее играет шахматист, тем точнее можно оценить его рейтинг. Наиболее точно рейтинг можно получить на основе турниров, в которых играют примерно равные по силам игроки.

В основе системы рейтингов Эло лежит допущение, что сила каждого шахматиста может быть представлена как вероятностная переменная, подчиняющаяся нормальному. Расчёт рейтинга конкретного игрока по результатам какого-либо турнира основан на сравнении количества набранных им очков с ожидаемым, предсказанным на основе его рейтинга, количеством очков. Если по итогам турнира количество набранных очков оказывается больше, чем предсказанное значение, то рейтинг данного игрока возрастает. Если по итогам турнира количество набранных очков оказывается меньше, чем предсказанное значение, то рейтинг данного игрока уменьшается [15].

Вычисление рейтинга Эло для шахматистов — дело не простое. Вычисляется математическое ожидание количества очков, которое наберёт игрок A в партии с B (оно равно сумме вероятности выигрыша игрока A и половины вероятности ничьей):

,

где: — математическое ожидание количества очков, которое наберёт игрок A в партии с B;- рейтинг игрока А;- рейтинг игрока B.

Новый рейтинг игрока A рассчитывается по формуле:

,

где:

К — коэффициент, значение которого равно 10 для сильнейших игроков (рейтинг 2400 и выше), 20 (было 15) — для игроков с рейтингом меньше чем 2400 и 40 (было 30) — для новых игроков (первые 30 партий с момента получения рейтинга ФИДЕ), а также для игроков до 18 лет, рейтинг которых ниже 2300;- фактически набранное игроком A количество очков (1 очко за победу, 0,5 — за ничью и 0 — за поражение);’A — новый рейтинг игрока A.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

Несмотря на все достоинства системы Эло она слишком громоздкая, поэтому было принято решение использовать её, но в немного более упрощенном варианте.

.2 Алгоритм многоуровневой генерации заданий

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

Процесс тестирования предполагает большую подготовительную работу (составление теста), собственно тестирование и обработку его результатов. Для организации тестирования используют три группы моделей, из которых самой продуктивной и самой сложной по реализации является адаптированное тестирование. При обработке результатов тестирования прибегают к латентно-структурному анализу, основанному на модели Раша, позволяющей описывать все семейство кривых испытуемых и все семейство кривых тестовых заданий. В числе основных требований обеспечения эффективности теста: использование шкалы интервалов, надежность, валидность, дискриминативность, наличие нормативных данных или критериев, установленных экспертом [16].

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

Одним из путей автоматизации процессов построения тестов является включение в структуру КТС механизмов генерации тестовых заданий на основе представленной некоторым образом базы знаний предметной области. Наиболее просто задача разработки тестирующих систем с достаточно большим количеством разнообразных тестовых вопросов и занимающих при этом сравнительно небольшой размер памяти компьютера решается в математических тестах, например, посредством изменения параметров задачи, что позволяет формировать задания в момент тестирования и хранить в памяти лишь шаблоны заданий и диапазоны параметров. Однако существующие программы не могут генерировать задания по любому предмету, а пополнение шаблонов производится программным способом. Отсутствие отработанной методологии построения КТС с возможностью генерации тестовых заданий приводит к тому, что встраивание функций генерации тестовых заданий требует оригинальной реализации соответствующих механизмов. Возникает проблема расширения предметной области, охватываемой КТС (например, до нескольких технических дисциплин) с исключением необходимости вносить изменения в программную реализацию КТС при пополнении системы новым набором генерируемых заданий [17].

Технические дисциплины в большинстве своем представляют собой хорошо структурированные предметные области. Обозначим знания по какой-либо отдельно взятой технической дисциплине — PA, структуру данной предметной области — STPA. Структура тестов, создаваемых для выбранной дисциплины STTPA, должна отражать структуру заданной предметной области и охватывать все сегменты изучаемого курса (Sgi…k — учебный блок: раздел, подраздел, тема, …, предложение) упорядоченной последовательностью тестовых заданий Sgti : STTPA=<Sgt1, Sgt2, …, Stgk> , представлена на рисунке 3.2.1 [18, 19]. Мощность КТС определяется количеством различных заданий MKTS, которые могут быть предъявлены системой:

,

где  — мощность сегмента (число дуплетов в сегменте), k — количество сегментов в предметной области.

Компьютерный тест KT является упорядоченной последовательностью заданий-ответов:

,

где n — конечное целое, Di=(Qi,Ai) — дуплет, обозначающий пару задание-ответ и представляющий собой предложение конечной длины ограниченного естественного языка. Таким образом, требуется получить правило преобразования П, позволяющее на основе знаний предметной области и заданной структуры теста создать множество тестов :

.

Рисунок 3.2.1 — Структура тестов выбранной дисциплины

На искомое преобразование накладываются следующие ограничения:

Множество МТ не должно оказаться пустым. Мощность МТ должна быть не менее некоторого заданного целого. Максимальное значение мощности МТ заранее не ограничено и может определяться на стадии технического решения.

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

,

где A(Di) — возможное множество дуплетов, соответствующих сегменту Sgti.

Повторение вопросов в сгенерированных тестах должно стремиться к нулю для всех вариантов тестов KTi, KTj:

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

, т.е. ,

где KTi =(Qi1, Qi2, … , Qif), KTj =(Qj1, Qj2, … , Qjf), Qik ,Qjk — тестовые задания, NT — множество номеров тестов.

Время преобразования (время поиска решения) tdec должно быть ограничено некоторой приемлемой с практической точки зрения величиной tmax:

< tmax.

Программная реализация КТС должна поддерживать возможность генерации тестовых заданий по дисциплинам технического направления. Формальное описание тестовых заданий должно позволять включать в тест следующие виды информации: простые типы данных (целые и рациональные числа, символ, строка символов, рисунок, в заданном графическом формате); сложные типы данных (предложения, получаемые комбинированием простых данных); переменные (указывается тип данных и название переменной); функции, в том числе встраиваемые в КТС и подключаемые через библиотеку модулей, а также записываемые посредством переменных, для вычисления, например, правильного ответа для данного тестового задания; файлы, содержащие грамматики заданий, структуру тестов и информацию необходимую для генерации тестовых заданий (например, схемы).

Заданным требованиям удовлетворяет модель, которую представили авторы статьи «Алгоритм реализации метода автоматической генерации тестовых заданий» Сергушичева А.П. и Швецов А.Н. [17]. Предложенная авторами статьи модель КТС (MKTS) включает механизмы генерации тестовых заданий:

,

где: — структура КТС;

{ScТ} — множество сценариев тестирования, реализованных в КТС;

{DKTS} — множество данных, необходимых для работы КТС и генерируемых КТС.

Структура КТС представлена блоком регистрации Reg, блоком редактирования баз знаний предметных областей EdtKSG, блоком формирования тестов FrmITS, генератором тестовых заданий GТT , блоками тестирования Tst и оценивания Est:

.

Редактор грамматик EdtKSG предназначен для ввода и редактирования базы знаний КТС, в которой порождаемые множества тестовых заданий описаны с помощью формальных грамматик (ФГ). Формирователь КТС FrmKTS обеспечивает формирование структуры теста, задания которого будут предъявляться в динамическом режиме. Процесс задания структуры теста определяется, в основном, техническими решениями по реализации блока, выполняющего указанную функцию. Генератор тестовых заданий GТT необходим для автоматического создания на основе имеющихся файлов с ФГ дуплетов тестовое задание {Qst}- ответ {Ans} в соответствии с заданной структурой теста.

Для реализации механизмов генерации тестов Сергушичевой и Швецовым был предложен оригинальный метод, который описывает динамику построения теста по заданной структуре. Метод автоматической генерации тестовых заданий базирующийся на продукционном формализме. Алгоритм реализации метода представлен на рисунке 3.2.2. Исходной информацией для построения теста является база знаний предметной области, представленная множеством формальных грамматик, описывающих множество правил вывода тестовых заданий. Структура теста задается указанием имен файлов, содержащих грамматики заданий, включаемых в тест и количества заданий каждого типа (по каждому из файлов). Модуль генерации теста (аксиомы) создает промежуточный файл, в который в соответствии с заданной структурой подставляются по какому-либо алгоритму конкретные грамматики тестовых заданий. Во избежание повторного использования номера примененных грамматик учитываются. На основании промежуточного файла вызываются обработчики соответствующих грамматик, которые формируют задание в привычном виде, подставляя по какому-либо алгоритму конкретные данные (текстовые, числовые, графические и т.д.).

Выбор стратегии обработки продукционных правил позволяет расширить разнообразие формируемых тестов. Стратегия по первому применимому правилу из списка правил исчисления реализует классический подход к алгоритмическому процессу порождения конструктивных объектов в стиле нормальных алгоритмов А.А.Маркова. Использование приоритетов правил должно обеспечить генерацию тестов разной сложности и возможность концентрации внимания на тех или иных сегментах предметной области. Вопрос расстановки приоритетов в продукционных системах до настоящего времени изучен не достаточно.

Рисунок 3.2.2 — Алгоритм реализации метода автоматической генерации тестов, предложенный Сергушичевой и Швецовым

Поэтому задача расстановки конкретных приоритетов требует участия квалифицированного эксперта-преподавателя. Стратегия, ориентированная на применение коротких правил может использоваться для ускорения процессов генерации при разработке тестов для экспресс-опросов. Применение длинных правил полезно для построения наиболее сложных, структурно развитых заданий, направленных на выявление глубины знаний предметной области. Стратегия параллельного выполнения закладывается на случай реализации данного алгоритма на многопроцессорных системах с использованием языка параллельного программирования. Случайный выбор (в данном случае продукционных правил) традиционно и широко используется в системах подобного вида.

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

4. Разработка программных модулей

Разработка программных модулей в фреймворке Corona SDK на языке программирования lua представляет собой обычную разработку на объектно-ориентированном языке программирования и не очень сильно отличается от других языков. А вот фреймворк достаточно интересный. SDK — это кросс-платформенный движок для создания игр под iOS, Android и ПК. Он достаточно прост в освоении: «отлично» по паскалю — это достаточный багаж знаний для того, чтобы чувствовать себя вполне комфортно при работе с Corona SDK.

Интерфейс Corona SDK состоит из 2 окон: окно симулятора и окно консоли симулятора (Corona Simulator Output). В окне симулятора можно выбрать устройство и разрешение экрана, на котором будет производиться симуляция работы. Симуляция работы происходит достаточно быстро и практически не требует ресурсов компьютера, в отличии от полноценных эмуляторов устройств. Окно симулятора с запущенным примером программы из доступных в качестве обучающих представлено на рисунке 4.0.1.

Рисунок 4.0.1 — Окно симулятора Corona SDK

Во время работы симулятора в окно консоли симулятора поступают данные о состоянии программы: ошибки, состояние загрузки, команды мониторинга состояний (команда print в консоль). Окно консоли очень полезно для отладки и контроля правильности работы программы, главное пользоваться нужными метками в нужных местах. Окно консоли симулятора в момент работы программы-примера из документации короны, которая была показана на рисунке 4.0.1), представлено на рисунке 4.0.2.

Рисунок 4.0.1 — Окно консоли симулятора Corona SDK

Написание программного кода в Corona SDK происходит в сторонних программных средствах, например, блокнот, Notepad++, Sublime Text. Последняя имеет удобный для настройки интерфейс, подсветку синтаксиса, автоматическую подстановку слов и автоматическую расстановку скобок и точек с запятой, что определенно делает работу с Sublime Text очень удобной. Также в Sublime можно создавать проект и сохранять в профиль настройки проекта, список открытых окон и даже координаты курсора в момент последнего открытия.

4.1 Меню и навигация

В основе проектов Corona SDK лежит структура в виде сцен. Такая структура отлично подходит требованиям нашей предметной области. Для управления сценами и переходом между ними используется библиотека короны Composer. — это официальная библиотека создания и управления сценами (окнами) в Corona SDK. Эта библиотека предоставляет разработчикам простой способ создания и перехода между отдельными сценами [20].

Основным объектом библиотеки Composer является объект сцены. Это слушатель событий, который реагирует на определенные события и содержит уникальное свойство self.view, которое является ссылкой на группу отображения, связанную со сценой. Этот self.view — это то, где располагаются визуальные элементы, относящиеся к сцене.При помощи Composer сцена может быть создана, свернута (не отображается на экране, но существует в памяти), осуществлен переход к уже существующей сцене, загружена существующая сцена, но которой при этом нет в памяти устройства, удалена из памяти текущая сцена, удалены из памяти все скрытые сцены.

На рисунке 4.1.1 представлена схема работы меню.

Рисунок 4.1.1 — Схема работы меню

При запуске приложения вызывается файл main.lua, в котором инициализируются все используемые в проекте библиотеки, объявляются разрешения, которые нужно запросить у устройства (актуально для закрытых ос, таких как Android и iOs). Также в main устанавливается следующая вызываемая программой сцена:.setStatusBar( display.HiddenStatusBar )

display.setDefault(«fillColor», 0); composer = require( «composer» ).gotoScene( «menu» )

После вызова сцена menu.lua происходит её загрузка. Так как файл был вызван при помощи библиотеки Composer, то у неё есть строгая типизация оформления — цитата из официальной документации Corona SDK [20]:

local composer = require( «composer» )scene = composer.newScene()

— Code outside of the scene event functions below will only be executed ONCE unless

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

— the scene is removed entirely (not recycled) via «composer.removeScene()»

— Scene event functions

— create()scene:create( event )sceneGroup = self.view

— Code here runs when the scene is first created but has not yet appeared on screen

— show()scene:show( event )sceneGroup = self.viewphase = event.phase( phase == «will» ) then

— Code here runs when the scene is still off screen (but is about to come on screen)( phase == «did» ) then

— Code here runs when the scene is entirely on screen

— hide()scene:hide( event )sceneGroup = self.viewphase = event.phase( phase == «will» ) then

— Code here runs when the scene is on screen (but is about to go off screen)( phase == «did» ) then

— Code here runs immediately after the scene goes entirely off screen

— destroy()scene:destroy( event )sceneGroup = self.view

— Code here runs prior to the removal of scene’s view

— Scene event function listeners:addEventListener( «create», scene ):addEventListener( «show», scene ):addEventListener( «hide», scene ):addEventListener( «destroy», scene )scene

Как видно, для каждого события, которое может произойти со сценой, как с объектом, предусмотрен свой шаблон поведения и listener, который слушает команды и передает Composer’y, который в свою очередь выполняет блок, который должен работать в данной ситуации.

После того, как мы из main.lua запустили menu.lua начал выполняться блок create, а за ним show. Так как мы не подразумеваем никаких хитрых манипуляций со сценами, то можем весь код просто писать в одном из этих блоков. Я предпочитаю использовать блок show, так как кажется логичным работать из блока, который выполняется, когда мы видим сцену.

Работа меню построена на базовых кнопках, которые состоят из простых форм — прямоугольников, в которых пишется текст:

}playbutton1 = widget.newButton {= ‘Rect’,= 500, height = 100,= display.contentCenterX, y = 750,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 60,= «Blogger Sans-Medium»,= «Учиться»,= PlayButton1Event

}aboutbutton = widget.newButton {= ‘Rect’,= 500, height = 100,= display.contentCenterX, y = 900,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 60,= «Blogger Sans-Medium»,= «Помощь»,= AboutButtonEvent

}:insert( playbutton ):insert( playbutton1 ):insert( aboutbutton ):insert( MenuText )scene:show( event )scene:hide( event )scene:destroy( event ):addEventListener( «create», scene ):addEventListener( «show», scene ):addEventListener( «hide», scene ):addEventListener( «destroy», scene )scene

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

if ( «ended» == event.phase ) then

end.

После выбора соответствующего пункта меню пользователь попадает на какую-то сцену, в зависимости от его выбора. Это может быть модуль обучения, модуль тестирования или справка по программе, она же руководство пользователя.

.2 Основная игровая сцена

В целом сцены обучающего модуля и тестирующего модуля достаточно похожи. Их отличает только порядок показа контента. В обучающем модуле — он строго фиксированный: Задания идут в определенном порядке, один за одним, чтобы дать обучаемому всю информацию по теме в одном месте. А в тестирующем модуле система смотрит на рейтинг игрока (упрощенная система Эло) для выбора сложности задания при его генерации и на рейтинг игрока в конкретной когорте вопросов — не просел ли он в какой-то тематике, если да — нужно дать больше более простых заданий этой группы.

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

В этой сцене ученику предлагается ввести код из букв в определенном порядке. Эти буквы генерируются автоматически из алфавита русских букв (за исключением самых редких, типа ё, ъ, ь, ы и так далее) и искомого слова. Эти буквы вносятся в массив из 16 знаков (2 строки по 8 букв) в случайном порядке. Каждому символу соответствует своя кнопка — после нажатия на эту кнопку символ вносится в электронный дисплей, а кнопка гаснет (становится невидимой и неактивной для нажатия).

После того как внесен последний символ длины слова — игрок жмет на кнопку «проверить» и система сравнивает искомое слово с получившимся. Если слово верно — игрок идет дальше, если нет — тогда слово на дисплее сбрасывается, а нажатые кнопки снова загораются.

Для того, чтобы игрок мог удалить случайно введенный символ существует кнопка «delete». Для того, чтобы она верно функционировала мы каждый нажатый символ вносим во временный массив, в котором хранятся номера всех нажатых кнопок. Таким образом при нажатии на «delete» игрок удаляет с дисплея последнюю введенную букву (длина строки минус 1), восстанавливает кнопку, соответствующую этой букве, делает её видимой и доступной для нажатия, очищает номер этой кнопки из массива порядка нажатий.

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

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

5. Отладка и экспериментальное тестирование модулей

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

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Заказать диплом

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

Все выявленные в ходе тестирования ошибки были обнаружены в коде, локализированы и исправлены. Большинство выявленных ошибок были алгоритмическими, то есть последовательность или результат выполнения группы операций не соответствовали спроектированным алгоритмам. Также присутствовали ошибки в интерфейсе, отображении графики, несостыковки графики на разных разрешениях экранов (при изменении соотношения сторон с 16:9 на 4:3 картинки перестали состыковываться).

6. Разработка технической документации

Игровая компьютерная среда дисциплины «Представление знаний в информационных системах» ориентирована на людей, желающих отточить навыки в решении задач по дисциплине ПЗиС и заодно весело провести время благодаря игровой форме подачи материала.

При запуске программы пользователь попадает в главное меню, откуда он может перейти в обучающий модуль, тестирующий модуль или в справку.

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

7. Проведение исследования

В рамках работы требовалось провести исследование влияния игровой компьютерной среды дисциплины «Представление знаний в информационных системах» на успеваемость прошедших её учеников.

В качестве системы оценки влияния было принято решение использовать итоговый тест дисциплины на сайте дистанционного образования, тем более, что именно там и проходят итоговый тест по ПЗиС сейчас.

Итоговый тест в системе дистанционного образования представляет собой тестирующую систему, в которую внесены тестовые задания и варианты ответов. При генерации теста варианты ответа и порядок вопроса расставляются абсолютно случайно — таким образом уменьшается влияние других тестируемых на результат того, кто сейчас проходит тест. Тест включает в себя 30 вопросов, за каждый из которых дается разное количество баллов, чаще всего 1 балл за вопрос с 4 вариантами ответа. Не важно сколько баллов можно получить в итоге, но максимальное количество баллов — это 100% результат.

Возьмем группу из 20 человек, которые не пользовались игровой компьютерной средой дисциплины «Представление знаний в информационных системах» в качестве контрольной группы и с их показателями среднего процента будем сравнивать тестируемую группу — тех, кто пользовался игровой компьютерной средой.

Также возьмем 20 человек из тех, кто ещё не проходил итоговый тест дисциплины ПЗиС и дадим им пользоваться игровой компьютерной средой в течении 7 дней. Время, которое тестируемые уделяли игровой среде никак не ограничивалось и не контролировалось.

Теперь соберем результаты тестируемой и контрольной групп в одну таблицу и проанализируем их. Чтобы не было проблем с распространением персональных данных реальные имена и фамилии заменим на идентификаторы тестировщиков. Проценты округлим до целых.

Результаты теста представлены в таблице 7.1.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Таблица 7.1 — Результаты теста

 

Среднее значение у контрольной группы — 60,25%, среднее значение у тестируемой группы — 66,7%. При этом минимальное значение у контрольной группы равно 26%, а у тестируемой — 38%; максимальное значение контрольной группы составило 96%, а у тестируемой — 95%.

То есть в целом использование игровой компьютерной среды оправдало ожидания — средний уровень знаний повысился. При этом значения оказались более сгруппированными: разница между минимумом и максимумом у тестируемой группы составила 57%, а у контрольной — 70%.

Если откинуть минимум и максимум и посмотреть только значения в середине интервалов, тогда получим следующие данные: тестируемая группа — 66,72%, а контрольная 60,167%. Разница примерно в 6.5% сохранилась. Это говорит нам об отсутствии влияния фактора минимума и максимума на результат тестирования.

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

Заключение

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

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

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

Список использованных источников

Шабалина, О.А. Разработка обучающих компьютерных игр: как сохранить баланс между обучающей и игровой компонентой? / О.А. Шабалина // Образовательные технологии и общество. — 2013.- № 3.- С. 587-602.. Prensky Digital Game-Based Learning // Paragon House Publishers. — 2007. — p. 442.

Minecraft [Электронный ресурс]. — Режим доступа: https://minecraft.net/ru-ru/[Электронный ресурс]. — Режим доступа: https://civilization.com/

Bittanti V. (Ed.) Civilization: Virtual history, real fantasies. // Milan, Italy: Ludilogica Press. — 2005. — p. 27.

Шапошев, Д.В. Виртуальная модель предметной области

дисциплины «Представление знаний в информационных системах»: выпускная квалификационная работа, бакалавр: 20.06.2015 / Д.В. Шапошев, — Вологда, 2015. — 28 с.

Антонова, С. Г. Современная учебная книга / С.Г. Антонова, Л.Г. Тюрина — Москва: КНОРУС, 2008. — 225 c.

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Подробнее

Сергушичева А.П., Швецов А.Н. Алгоритм реализации метода автоматической генерации тестовых заданий / А.П. Сергушичева, А.Н. Швецов // Алгоритмы, методы и системы обработки данных. — 2006.- № 11.

Швецов, А.Н. Традиционные подходы к задачам компьютерного тестирования / А.Н. Швецов // Образовательные технологии и общество. — 2012. — № 6. — С. 44-49.

Швецов, А.Н. Модели компьютерных тестирующих систем / А.Н. Швецов // Образовательные технологии и общество. — 2012. — № 6. — С. 50-58.SDK Documentation [Электронный ресурс]. — Режим доступа: https://docs.coronalabs.com.

Приложение

(рекомендуемое)

Листинг одной из сцен обучающего модуля

local widget = require( «widget» )composer = require( «composer» )loadsave = require(«loadsave»)utf8 = require( «plugin.utf8» )scene = composer.newScene()adListener( event )( event.phase == «init» ) then — Successful initialization( event.isError )( event.phase == «failed» ) then — The ad failed to load( event.type )( event.isError )( event.response )function CheckButtonEvent( event )( «ended» == event.phase ) then.showOverlay(«result», {= true,= «crossFade»,= 0,

});AnimAddCoins = function() =balans+1.text = «Balans: «..balansfunction onCompleteAddCoinsVideo( event ).performWithDelay( 5, AnimAddCoins, 25 ) function onCompleteAddCoinsBanner( event ).performWithDelay( 5, AnimAddCoins, 5 ) function onPressHelp( event

if ( event.action == «clicked» ) then

— Если нажал «Назад» ничего не делаем

endfunction AddCoinsButtonEvent( event )( «ended» == event.phase ) thenappodeal.isLoaded(«rewardedVideo»)== true then.show(«rewardedVideo»)alert = native.showAlert( «Отлично!», » { «OK»}, onCompleteAddCoinsVideo)appodeal.isLoaded(«interstitial») == true then.show(«interstitial»)alert = native.showAlert( «Отлично{ «OK»}, onCompleteAddCoinsBanner)alert = native.showAlert( «Ошибка!», «Попробуйте запросить позже.», { «OK»}, onPressHelp)function DelButtonEvent( event )( «ended» == event.phase ) then=»»=false=#SymbolAnswerchange==false doResultText[i]~=»_» then[i]=»_»=true=i-1i=1,#SymbolAnswer do=AText..ResultText[i]

end.text=AText

-условие возврата кнопки

if StackPress[StackNumber]==1 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==2 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==3 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==4 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==5 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==6 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==7 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==8 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==9 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==10 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==11 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==12 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==13 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==14 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==15 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1StackPress[StackNumber]==16 then:setEnabled( true ).isVisible = true[StackNumber]=nil=StackNumber-1function HelpButtonEvent( event )( «ended» == event.phase ) thenbalans >= 10 then =falsei=1,#SymbolAnswer doResultText[i]==»_» and change==false then

idsymbol=i —нашли номер пустого символа в ответе

change=true=falsei=1,16 do= falsej=1,16 doi == StackPress[j] then = true —нажимали ли мы уже эту кнопку?SymbolAnswer[idsymbol]==SymbolQuestion[i] and change==false and pressed==false then

ids=i —нашли номер кнопки с подходящим символом

change=trueStackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then

ResultText[i]=SymbolQuestion[ids] —записали в строку ответа символ из найденной кнопки

change=true=AText..ResultText[i].text=AText=StackNumber+1[StackNumber]=idsids == 1 then :setEnabled( false ).isVisible = falseids == 2 then :setEnabled( false ).isVisible = falseids == 3 then :setEnabled( false ).isVisible = falseids == 4 then :setEnabled( false ).isVisible = falseids == 5 then :setEnabled( false ).isVisible = falseids == 6 then :setEnabled( false ).isVisible = falseids == 7 then :setEnabled( false ).isVisible = falseids == 8 then :setEnabled( false ).isVisible = falseids == 9 then :setEnabled( false ).isVisible = falseids == 10 then :setEnabled( false ).isVisible = falseids == 11 then :setEnabled( false ).isVisible = falseids == 12 then :setEnabled( false ).isVisible = falseids == 13 then :setEnabled( false ).isVisible = falseids == 14 then :setEnabled( false ).isVisible = falseids == 15 then :setEnabled( false ).isVisible = falseids == 16 then :setEnabled( false ).isVisible = false=balans-10.text=»Монет: «..balansalert = native.showAlert( «Jib,rf.», {«Назад»}, onPressHelp)

end

-тут пишем в строку

local function PlayButton1Event( event )( «ended» == event.phase ) then=1StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton2Event( event )( «ended» == event.phase ) then=2StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton3Event( event )( «ended» == event.phase ) then=3StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton4Event( event )( «ended» == event.phase ) then=4StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton5Event( event )( «ended» == event.phase ) then=5StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton6Event( event )( «ended» == event.phase ) then=6StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton7Event( event )( «ended» == event.phase ) then=7StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton8Event( event )( «ended» == event.phase ) then=8StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton9Event( event )( «ended» == event.phase ) then=9StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton10Event( event )( «ended» == event.phase ) then=10StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton11Event( event )( «ended» == event.phase ) then=11StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton12Event( event )( «ended» == event.phase ) then=12StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton13Event( event )( «ended» == event.phase ) then=13StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton14Event( event )( «ended» == event.phase ) then=14StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton15Event( event )( «ended» == event.phase ) then=15StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsfunction PlayButton16Event( event )( «ended» == event.phase ) then=16StackNumber < #SymbolAnswer then=»»=falsei=1,#SymbolAnswer dochange==false and ResultText[i]==»_» then[i]=SymbolQuestion[ids]=true=AText..ResultText[i].text=AText:setEnabled( false ).isVisible = false=StackNumber+1[StackNumber]=idsscene:create( event )

— Initialize the Appodeal plugin.init( adListener, { appKey=»fe49170e17289b8b7ec459216adaeb1c092e6b2009228575″ } ).load( «rewardedVideo» ).load( «interstitial» )scene:show( event )xml = require( «xml» ).newParser()inbox = xml:loadFile( «levels.xml» )= {}i=1,#inbox.child do[i] = inbox.child[i]={}=0= loadsave.loadTable( «gamedata.json» )( gamedata == nil ) then= {}.id = 1.balans = 25.tutor = false.saveTable( gamedata, «gamedata.json» )= gamedata.id= gamedata.balans= gamedata.tutor

— зацикливаем вопросыid > #inbox.child then =1= {}char in utf8.gmatch( question[id].child[2].value, «.» ) do.insert(SymbolAnswer, char)= {}i=1,#SymbolAnswer doflag = falseflag == false doa = math.random(1, 16)SymbolQuestion[a]== nil then[a]=SymbolAnswer[i]= true

end= {«й»,»ц»,»у»,»к»,»е»,»н»,»г»,»ш»,»щ»,»з»,»х»,»ф»,»ы»,»в»,»а»,»п»,»р»,»о»,»л»,»д»,»ж»,»э»,»я»,»ч»,»с»,»м»,»и»,»т»,»б»,»ю»}

Нужна помощь в написании диплома?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Сдача работы по главам. Уникальность более 70%. Правки вносим бесплатно.

Цена диплома

for i=1, 16 doSymbolQuestion[i]==nil then[i]=alphabet[math.random(1,30)]=»»= {}i=1,#SymbolAnswer do[i]=»_»=AText..ResultText[i]phase = event.phase( phase == «will» ) then

— Called when the scene is still off screen (but is about to come on screen).( phase == «did» ) thensceneGroup = self.viewStatsRectBack = display.newRect(display.contentCenterX, 0, 730, 100):setFillColor(244/255);helpbutton = widget.newButton {= ‘Rect’,= 250, height = 80,= 610, y = 0,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 50,= «Blogger Sans-Medium»,= «Подсказка»,= HelpButtonEvent

}= display.newText( «Balans: «..balans, 170, 0, «Blogger Sans-Medium», 50)addcoinsbutton = widget.newButton {= ‘Rect’,= 80, height = 80,= 350, y = 0,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 90,= «Blogger Sans-Medium»,= «+»,= AddCoinsButtonEvent

}checkbutton = widget.newButton {= ‘Rect’,= 500, height = 150,= display.contentCenterX, y = 950,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 60,= «Blogger Sans-Medium»,= «Проверить»,= CheckButtonEvent

}delbutton = widget.newButton {= ‘Rect’,= 120, height = 80,= 700, y = 580,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 60,= «Blogger Sans-Medium»,= «Del»,= DelButtonEvent

}

— место, где будут стоять буквы= display.newText( AText, display.contentCenterX, 580, «Blogger Sans-Medium», 60 )

-расставляем буквы= widget.newButton {= ‘Rect’,= 90, height = 90,= 50, y = 700,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[1],= PlayButton1Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 145, y = 700,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[2],= PlayButton2Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 240, y = 700,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[3],= PlayButton3Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 333, y = 700,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[4],= PlayButton4Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 427, y = 700,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[5],= PlayButton5Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 524, y = 700,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[6],= PlayButton6Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 619, y = 700,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[7],= PlayButton7Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 714, y = 700,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[8],= PlayButton8Event

}

— вторая строка= widget.newButton {= ‘Rect’,= 90, height = 90,= 50, y = 800,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[9],= PlayButton9Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 145, y = 800,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[10],= PlayButton10Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 240, y = 800,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[11],= PlayButton11Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 333, y = 800,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[12],= PlayButton12Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 427, y = 800,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[13],= PlayButton13Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 524, y = 800,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[14],= PlayButton14Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 619, y = 800,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[15],= PlayButton15Event

}= widget.newButton {= ‘Rect’,= 90, height = 90,= 714, y = 800,= { default={ 0.2 }, over={ 0.8 } },= { default={ 1 }, over={ 1 } },= 70,= «Blogger Sans-Medium»,= SymbolQuestion[16],= PlayButton16Event

}options =

{= 320,= 240,= 1,= 320, — width of original 1x size of entire sheet= 240 — height of original 1x size of entire sheet

}imageSheet = graphics.newImageSheet( question[id].child[3].value, options )obj = display.newImageRect( imageSheet, 1, display.contentWidth/10*7, display.contentWidth/10*5.25 ).x, obj.y = display.contentCenterX, display.contentCenterY/2 + 20

—если игрок не видел туториала — показываем туториал

if tutor == false then.showOverlay(«tutor», {= true,= «crossFade»,= 100,

});id == 17 then.showOverlay(«popup», {= true,= «crossFade»,= 100,

});id % 5 == 0 thenappodeal.isLoaded(«interstitial») == true then.show(«interstitial»).showOverlay(«reklama», {= true,= «crossFade»,= 100,

});:insert( StatsRectBack ):insert( helpbutton ):insert( CoinsText ):insert( checkbutton ):insert( delbutton ):insert( obj ):insert( symbolbutton1):insert( symbolbutton2):insert( symbolbutton3):insert( symbolbutton4):insert( symbolbutton5):insert( symbolbutton6):insert( symbolbutton7):insert( symbolbutton8):insert( symbolbutton9):insert( symbolbutton10):insert( symbolbutton11):insert( symbolbutton12):insert( symbolbutton13):insert( symbolbutton14):insert( symbolbutton15):insert( symbolbutton16):insert( addcoinsbutton):insert( text )scene:hide( event )scene:destroy( event ):addEventListener( «create», scene ):addEventListener( «show», scene ):addEventListener( «hide», scene ):addEventListener( «destroy», scene )scene

Средняя оценка 0 / 5. Количество оценок: 0

Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

430

Закажите такую же работу

Не отобразилась форма расчета стоимости? Переходи по ссылке

Не отобразилась форма расчета стоимости? Переходи по ссылке