93
1 ФОРМА № Н-9.02 Вінницький національний технічний університет (повне найменування вищого навчального закладу) Інститут інформаційних технологій та комп'ютерної інженерії (повне найменування інституту, назва факультету (відділення)) Кафедра програмного забезпечення (повна назва кафедри (предметної, циклової комісії) Пояснювальна записка до дипломної роботи бакалавра (освітньо-кваліфікаційний рівень) на тему «Розробка навчальної гри «Математика для дітей» Вінниця - 2014 року Виконав: студент 4 курсу, групи 1ПІ-10б напряму підготовки 6.050103 Програмна інженерія (шифр і назва напряму підготовки, спеціальності) Білоконна К. В. (прізвище та ініціали) Керівник Войтко В. В. (прізвище та ініціали) Рецензент Месюра В. І. (прізвище та ініціали)

Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

1

ФОРМА № Н-9.02

Вінницький національний технічний університет

(повне найменування вищого навчального закладу)

Інститут інформаційних технологій та комп'ютерної інженерії

(повне найменування інституту, назва факультету (відділення))

Кафедра програмного забезпечення (повна назва кафедри (предметної, циклової комісії)

Пояснювальна записка до дипломної роботи

бакалавра (освітньо-кваліфікаційний рівень)

на тему «Розробка навчальної гри «Математика для дітей»

Вінниця - 2014 року

Виконав: студент 4 курсу, групи 1ПІ-10б

напряму підготовки

6.050103 – Програмна інженерія (шифр і назва напряму підготовки, спеціальності)

Білоконна К. В. (прізвище та ініціали)

Керівник Войтко В. В.

(прізвище та ініціали) Рецензент Месюра В. І. (прізвище та ініціали)

Page 2: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

2

Форма № Н-9.01

Вінницький національний технічний університет

Інститут інформаційних технологій та комп'ютерної інженерії

Кафедра програмного забезпечення

Освітньо-кваліфікаційний рівень - бакалавр

Напрям підготовки 6.050103 «Програмна інженерія»

З А В Д А Н Н Я

НА БАКАЛАВРСЬКУ ДИПЛОМНУ РОБОТУ СТУДЕНТУ

Білоконній Катерині Валеріївні

1. Тема роботи: «Розробка навчальної гри «Математика для дітей»»

керівник роботи: Войтко Вікторія Володимирівна, к. т. н., доцент

затверджені наказом вищого навчального закладу від “___”_____20__ року №___

2. Строк подання студентом роботи____________________________________

3. Вихідні дані до роботи : Операційна система – Windows XP/7; Середовище

виконання – MS VisualStudio 2013; мова програмування C#, навчальна

комп’ютерна гра з математики для дітей..

4. Зміст розрахунково-пояснювальної записки (перелік питань, які потрібно

розробити): вступ; аналіз стану питання та постановка задач розробки;

розробка алгоритмів, структури та методів; розробка програмної реалізації;

тестування розробленого програмного забезпечення; охорона праці;

висновки; додатки.

5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень):

мета і задачі роботи; інтерфейс програми; схема алгоритму; структура

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

ЗАТВЕРДЖУЮ

Зав. каф. ПЗ, проф., д.т.н.

__________А. М. Пєтух

”___” __________ 20___ р.

УЗГОДЖУЮ

Директор закладу

«Загальноосвітня школа

І-ІІІ ступенів №15

Вінницької міської ради»

____________ О. І. Черешнюк

“____”______________ 20___ р.

Page 3: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

3

6. Консультанти розділів проекту (роботи)

Розділ Прізвище, ініціали та посада

консультанта

Підпис, дата

завдання видав завдання

прийняв

Технічний

розділ

Войтко В. В., к.т.н., доцент

кафедри ПЗ

Охорона

праці

Заюков І. В., к.е.н., доцент

кафедри БЖД

7. Дата видачі завдання______________________________________________

КАЛЕНДАРНИЙ ПЛАН

з/п

Назва етапів дипломного

проекту (роботи)

Строк виконання

етапів проекту

( роботи )

Примітка

1 Аналіз стану питання та постановка задач

розробки

Вик.

2 Розробка алгоритмів, структури та методів Вик.

3 Розробка програмної реалізації Вик.

4 Тестування розробленого програмного

забезпечення

Вик.

5 Експериментальна перевірка роботи ПЗ Вик.

6 Розробка питань охорони праці Вик.

7 Оформлення матеріалів до захисту БДР Вик.

Студент _________ Білоконна К. В.

( підпис ) (прізвище та ініціали)

Керівник проекту (роботи) _____________ Войтко В. В. ( підпис ) (прізвище та ініціали)

Page 4: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

4

ЗМІСТ

ВСТУП ..................................................................................................................... 6

1 АНАЛІЗ СТАНУ ПИТАННЯ ТА ПОСТАНОВКА ЗАДАЧ РОЗРОБКИ ....... 9

1.1 Аналіз предметної області ....................................................................... 9

1.2 Аналіз аналогів розроблюваного програмного продукту ................... 15

1.3 Аналіз програмно-інформаційної підтримки при розробці навчальних

комп’ютерних ігор ........................................................................................ 23

1.4 Постановка задач ..................................................................................... 25

1.5 Висновки .................................................................................................. 26

2 РОЗРОБКА АЛГОРИТМІВ, СТРУКТУРИ ТА МОДЕЛЕЙ .......................... 27

2.1 Розробка алгоритму побудови робочого поля ..................................... 27

2.2 Розробка покрокового алгоритму .......................................................... 30

2.3 Аналіз вимог до модулів із завданнями ................................................ 31

2.4 Розробка моделі програмного продукту ............................................... 34

2.5 Висновки .................................................................................................. 36

3 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ ........................................... 37

3.1 Варіантний аналіз та обґрунтування вибору засобів реалізації

програмного продукту .................................................................................. 37

3.2. Обґрунтування вибору інтерфейсу ...................................................... 39

3.3 Програмування інтерфейсу .................................................................... 41

3.4 Розробка програми .................................................................................. 43

3.5 Висновки .................................................................................................. 46

4 ТЕСТУВАННЯ РОЗРОБЛЕНОГО ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ .... 47

4.1 Аналіз методик тестування .................................................................... 47

4.2 Тестування модулів програми ............................................................... 48

4.3 Тестування взаємодії користувача з програмою ................................. 50

4.4 Інструкція користувача ........................................................................... 53

4.5 Висновки .................................................................................................. 54

Page 5: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

5

5 ОХОРОНА ПРАЦІ ............................................................................................. 55

5.1 Характеристика професії та приміщення ............................................. 55

5.2 Аналіз умов праці в приміщенні ........................................................... 57

5.3 Розробка заходів щодо поліпшення умов праці .................................. 64

5.4 Висновки .................................................................................................. 65

ВИСНОВКИ ........................................................................................................... 67

ПЕРЕЛІК ПОСИЛАНЬ ......................................................................................... 69

ДОДАТОК А Акт впровадження ......................................................................... 71

ДОДАТОК Б Лістинг модуля програми MainWindowVM.cs ........................... 73

ДОДАТОК В Лістинг модуля програми MainWindow.xaml ............................ 78

ДОДАТОК Г Лістинг модуля програми Step1Model.cs .................................... 80

ДОДАТОК Ґ Лістинг модуля програми Step1ViewModel.cs ............................ 82

ДОДАТОК Д Лістинг модуля програми App.xaml ............................................ 84

ДОДАТОК Е Ілюстративний матеріал до захисту бакалаврської роботи ...... 93

Page 6: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

6

ВСТУП

На сьогоднішній день стрімкий ріст інформаційних та комп'ютерних

технологій обумовлює розвиток і поширення ігрової індустрії. Комп'ютер, а з

ним і комп'ютерні ігри, досить міцно увійшли в життя сучасної людини.

Крім розважальної мети, ігрові програми часто орієнтовані на власне

практичне застосування в сучасних навчально-освітніх засобах[1]. Докладно

аналізуються можливості і вимоги до створення розвивальних навчальних

програм, способи організації роботи дитини в ситуації використання

комп'ютерної техніки, функції комп'ютера в навчальній діяльності.

Ігри стають приводом для мережевого спілкування, що обумовлює

можливість їхнього трактування як знаряддя соціалізації. Проте, з іншого

боку, надмірне захоплення комп'ютерними іграми посилює проблеми у сфері

реальних соціальних контактів, ізолюючи людину та забезпечуючи їй

можливість відходу від життєвих проблем.

Багатьма дослідженнями було виявлено мотиваційний ефект і

когнітивний потенціал комп’ютерних ігор, що передбачає їх орієнтацію на

стимулювання розвиваючої функції користувачів. Комп'ютерні ігри мають

особливий вплив на подальший розвиток особистості, соціальну адаптацію та

на пізнавальний розвиток людини. Психологи помітили, що включення ігор

до навчального процесу дозволяє краще зосередити увагу тих, хто

навчається, на вивчені дисциплін, допомагає оцінювати знання користувачів

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

кожного гравця, оцінити якість знань та врахувати індивідуальні особливості

респондентів.

Важливе значення мають інтелектуальні комп’ютерні ігри, які

поєднують у собі різного роду навчальні ігрові програми. Ігрові тренінгові

програми можуть включати в себе тренувальні й навчальні ігри та ігри-

Page 7: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

7

експерименти. Особливістю реалізації інтелектуальних ігор є широке

використання методів штучного інтелекту.

Багато розважальних ігор містять велику кількість інформації за

рахунок насиченого змісту, і в силу цього гравець отримує знання з різних

навчальних дисциплін. Творці ігор часто свідомо включають в них

необхідність освоєння деякого обсягу знань, вироблення навичок.

Тому розробка і дослідження ігрових технологій як засобів активізації

навчального процесу є актуальною задачею сучасної системи освіти. При

розробці комп’ютерних ігор особливу увагу слід приділяти інформаційному

наповненню, структуризації гри та розробці її стратегії.

Метою роботи є активізація навчального процесу шляхом

впровадження концепції Game Based Learning (GBL), що реалізує навчальні

процеси, засновані на ігрових ситуаціях, систематизація та класифікація

навчальних і розважальних ігрових програм.

Об’єктом дослідження постають технології розробки ігрових

продуктів. Під предметом дослідження розуміємо сучасні ігрові програми,

засоби їх оформлення та реалізації.

Задачами дослідження вбачаємо аналіз засобів реалізації навчальних

комп’ютерних ігрових програм, орієнтованих на використання принципів

концепції GBL, класифікацію та систематизацію комп’ютерних ігор,

розробку власної навчальної гри.

У першому розділі бакалаврської дипломної роботи було проведено

аналіз предметної області, розроблено класифікацію комп’ютерних ігор,

розкрито поняття «Edutainment» та розглянуто переваги концепції Game

Based Learning. Було проведено аналіз аналогів розроблюваного програмного

продукту, здійснено постановку задачі бакалаврської дипломної роботи.

Також проведено аналіз програмно-інформаційної підтримки при розробці

навчальних комп’ютерних ігор.

Page 8: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

8

У другому розділі було продумано алгоритм побудови робочого поля,

розроблено покроковий алгоритм роботи програми, наведений у вигляді

блок-схеми. Для розробки модулів із завданнями було проведено аналіз

вимог до задач за шкільною програмою. Було розроблено модель

програмного продукту.

У третьому розділі описано розробку програмного продукту, а саме

проведено варіантний аналіз та обґрунтування вибору засобів реалізації

програмного продукту, перелічено основні функції, що використовуються у

програмі, та описано їх призначення. Також наведено обґрунтування вибору

та програмування інтерфейсу.

У четвертому розділі проведено аналіз методик тестування, проведено

тестування модулів програми та тестування взаємодії користувача з

програмою. Також описано інструкцію використання програми.

У п’ятому розділі описано характеристику професії та приміщення,

провелено аналіз умов праці в приміщенні та розроблено заходи щодо

поліпшення умов праці.

Результати роботи опубліковані в двох наукових публікаціях [2, 3].

Також присутнє свідоцтво про реєстрацію авторського права [4]. Робота

виконана на замовлення закладу «Загальноосвітня школа І-ІІІ ступенів №15

Вінницької міської ради», що підтверджує акт впровадження.

Page 9: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

9

1 АНАЛІЗ СТАНУ ПИТАННЯ ТА ПОСТАНОВКА ЗАДАЧ РОЗРОБКИ

1.1 Аналіз предметної області

Однією з ефективних можливостей використання електронного

навчання є застосування навчальних систем, в яких реалізовані компоненти

ігрового процесу – навчальних комп'ютерних ігор. Однією з проблем

використання засобів електронних занять є втрата учнем інтересу до

навчання. Застосування комп'ютерних ігор дозволяє підвищити мотивацію

учнів, зберігши, при цьому, всі переваги електронного навчання.

Комп'ютерні ігри за їх призначенням і цілями створення поділяються

на ігри розважальні та ігри, створені для цілей навчання. Розважальні ігри –

це засоби розважального характеру, створені вони в більшості своїй як

проекти, не пов'язані з освітою, проте акумулюють корисну інформацію та

мають розвиваючий потенціал. Ігри ж, створені для цілей навчання є

особливими програмами, які в ігровій формі підносять конкретний

навчальний матеріал. Навчальні ігри допомагають вивчати новий матеріал в

ігровій формі, що сприяє активізації користувачів у процесі отримання

освітянських послуг.

Класифікація комп’ютерних ігор визначається базовими

характеристиками акумульованих властивостей ігрових програм та потребує

комплексної систематизації. У зв’язку з цим актуальним є створення

класифікації за принципом реалізації еквівалентних відношень з метою

поділу наявних ігор на класи, що однозначно не перетинаються. При цьому

класифікація репрезентує психологічний аспект використання ігрових

програм та враховує основний вид діяльності, що реалізується індивідом в

ігровому процесі.

На основі аналізу найбільш загальних ознак комп'ютерних ігор та

особливостей взаємодії індивіда з ігровим світом О.А. Поповим була

Page 10: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

10

запропонована двовимірна класифікація, заснована на ознаках наявності

персонажа в ігровому просторі й забезпеченні можливості морального

вибору[5]. Пропонуємо графічну модель класифікації комп’ютерних ігор з

урахуванням принципів О.А. Попова (рисунок 1.1). Чотирирангова типізація

такої класифікації дозволяє чітко розмежувати комп'ютерні ігри як за

жанровими особливостями, так і за когнітивними процесами ігрових

ситуацій. Найбільш цінною особливістю цієї класифікації вбачаємо

можливість пояснення причини виникнення ігрової залежності та

прогнозування моменту її виникнення, спираючись на тип гри.

Наявний

персонаж

Персонаж

відсутній

Відсутність

морального

вибору

Наявність

морального

вибору

Тип 2.

Ігри, що мають конкретний

персонаж, яким грає індивід, але

сюжет не передбачає здійснення

морального вибору.

Тип 1.

Ігри, в яких необхідно обирати і

розвивати персонажа. Вони

містять сюжетну лінію, яка

потребує стратегічного здійснення

морального вибору.

Тип 3.

Ігри без персонажу і морального

вибору. Логічні, азартні ігри,

головоломки. Сюди також

відноситься більшість класичних

автосимуляторів.

Тип 4.

Індивід грає сам за себе, розвиток

у грі прирівнюється до розвитку

самого гравця. Моральний вибір

тут є особистим рішенням самого

індивіда.

Рисунок 1.1 – Двовимірна класифікація комп’ютерних ігор

На рисунку 1.2 запропоновано комплексну класифікацію комп’ютерних

ігор. Ігрові програми додатково класифікуються за умовами

Page 11: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

11

розповсюдження, за видом поставки (на оптичному носії, коробочна версія,

спеціальні редакції, доповнення, антологія тощо).

Ігри-

експериментування

ЗА КІЛЬКІСТЮ

ГРАВЦІВ ТА

СПОСІБ ВЗАЄМОДІЇ

ЗА ЖАНРАМИЗА ІНТЕРФЕЙСНИМ

ПРЕДСТАВЛЕННЯМ

ЗА

ПЛАТФОРМОЮ

ЗА ВАРТІСНИМИ

ХАРАКТЕРИСТИКАМИ

ЗА

ВИКОРИСТАННЯМ

МЕРЕЖІ ІНТЕРНЕТ

ЗА

ТЕМАТИКОЮ

Actions

Симулятори /

Менеджери

Стратегії

Пригоди

Музичні ігри

Рольові ігри

Головоломки,

логічні ігри,

пазли

Традиційні та

настільні

Одиночні

Мультиплеєрні

Мультиплеєрні на

одному комп’ютері

Мультиплеєрні

оффлайн ігри

Масові онлайн ігри

Мультиплеєрні

мережеві ігри

Оффлайн-ігри

Онлайн-ігри

3D-шутери,

«бродилки-

стрілялки»

Файтинги

Аркада

Стелс-экшен

Технічні

Аркадні

Спортивні

Спортивний

менеджер

Економічні

Стратегії за

схемою ігрового

процесу

Стратегії за

масштабом ігрового

процесу

Текстова

пригодницька гра

Графічний квест

Пригодницький

бойовик

Симулятор

побачень

Візуальна новела

Фентезі

Історичні

В дусі сучасності

Космічні

Постапокаліпстичні

Міфологічні

Кіберпанк

Стімпанк

Графічні засоби

оформлення

Текстові засоби

оформлення

Звукові ігри

2D графіка

3D графіка

Комп’ютерні ігри

Мережеві ігри

Ігри для ігрових

приставок та

кишенькових

персональних

комп’ютерів

Ігри для мобільних

пристроїв

ЗА

ПЛАТФОРМНИМ

ПРОГРАМНИМ

ЗАБЕЗПЕЧЕННЯМ

Кросплатформне

програмне

забезпечення

Одноплатформне

програмне

забезпечення

Безкоштовні

Платні

Із витраченням

віртуальних

грошей

Безкоштовні ігри з

обмеженнями, які

знімаються після

внесення оплати

КЛАСИФІКАЦІЯ КОМП’ЮТЕРНИХ ІГОР

ЗА

ПРИЗНАЧЕННЯМ

Ігри-забави

Розвиваючі ігри

Навчальні ігри

Комп'ютерні

діагностичні ігри

Рисунок 1.2 – Класифікація комп’ютерних ігор

Сьогодні стрімкий ріст інформаційних та комп'ютерних технологій

обумовлює розвиток і поширення ігрової індустрії. Крім розважальної мети,

ігрові програми часто орієнтовані на власне практичне застосування в

сучасних навчально-освітніх засобах. Такий підхід є базовим для концепції

Page 12: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

12

Game Based Learning (GBL), що реалізує навчальні процеси, засновані на

ігрових ситуаціях.

На сучасному етапі розвитку комп'ютерних ігор межі між

розважальними та навчальними іграми стираються, оскільки сьогодні

навчальні ігри за формою реалізації наближаються до розважальних, а

навчання через комп'ютер стає більш доступним і цікавим. У свою чергу

сучасні розважальні ігри хоч і не орієнтовані на задоволення освітніх цілей,

проте вимагають освоєння базового багажу знань, містять корисну

інформацію та допомагають придбати різні навички, що дозволяє розглядати

їх як своєрідні комп’ютерні тренажери. Навчальні ігри вмотивовано

орієнтовані на самореалізацію користувачів у процесі вивчення і закріплення

матеріалу. Такий підхід ліг в основу концепції Game Based Learning –

навчання, заснованого на грі. За концепцією GBL навчальні комп’ютерні ігри

мають такі переваги[3]:

зацікавлення навчальним процесом;

постановка цілей;

ігрове освоєння матеріалу;

вибір рівня складності;

інтерактивність і симуляційний ефект;

розвиток дрібної моторики;

тренування комплексу життєво важливих навичок.

У той час, коли навчання або сприйняття інформації відчувається

нудним процесом, людина не мотивована на заняття. Навчання не означає

механічне запам'ятовування – це означає набуття навичок та розумових

процесів, необхідних для реагування відповідним чином в різних ситуаціях.

Для цього не потрібно проводити багато часу в класі, щоб навчитися думати і

реагувати в умовах реальних проблем. Потрібно використовувати ефективні

Page 13: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

13

та інтерактивні засоби, які мотивують і активно включають людину в процес

навчання.

Комп’ютерні технології все частіше входять в життя дошкільника. За

допомогою комп'ютера дитині пропонується опанувати початковими

уявленнями про колір і форму, розвинути пам'ять, мислення і навіть мову.

Спеціально спрощений інтерфейс, введення сюжету та анімаційні інструкції

не вимагають участі дорослого.

Ігрові та навчальні програми, так звані «edutainment», пропонуються

для дітей починаючи з трирічного віку. Англійський термін «edutainment»

складений з двох слів – «education» (освіта) і «entertainment» (розвага) – і

відноситься до практик, в яких навчальний процес поєднується з розвагою.

Для передачі змісту поняття «edutainment» необхідно розділити його на

дві частини:

1. «Edutainment» як спосіб передачі інформації і навичок тим, хто на це не

мотивований. Розвага в цьому випадку використовується як засіб

привернення уваги. Передбачає пасивне сприйняття інформації.

2. Сам процес навчання розуміється як розвага, відомості та навички

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

задумані як освітні матеріали. Передбачає активний пошук інформації.

Традиційні, пасивні підходи до навчання спонукають людину на

виконання та заучування певних вузьких процедур та аспектів, а потім

відбувається оцінка знань, які були отримані в ході виконання цього процесу.

Навіть при позитивній оцінці отриманих знань, поведінка людини в реальних

життєвих ситуаціях залишається неперевіреною. Крім того, жодна програма

підготовки не може охопити всі можливі варіанти повороту подій. В умовах

ігрових програм «edutainment», створених на основі реальних подій з

використанням концепції Game Based Learning, гравцем отримуються не

Page 14: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

14

тільки практичні знання та важливі факти, а й розглядається їх практичне

застосування з різними варіантами розвитку подій.

У таблиці 1.1 проведено порівняння трьох підходів у навчанні:

- пасивні методи навчання, такі як аудиторні лекції, підручники та лекції

за онлайн-посиланням;

- методи з практичним навчанням, такі як програми виробничого

навчання, лабораторні роботи;

- навчання за допомогою навчальної гри на основі концепції GBL.

Таблиця 1.1 – Аналіз можливих підходів у навчання

Традиційне

навчання

Практичні

заняття

Навчання за

концепцією GBL

Економічні

заощадження + - +

Низьке фізичне

навантаження + - +

Об’єктивна оцінка

наявних теоретичних

знань

+ - +

Зацікавленість у

проходженні навчання - + +

Регулювання темпу

навчання з

урахуванням

здібностей учня

- + +

Безпосередній

зворотній зв'язок для

виправлення помилок

учня

- + +

Адаптація процесу

навчання до реального

життя

- + +

Активна участь учня у

навчанні - + +

Page 15: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

15

У наш час найпоширенішою є традиційна система навчання. Проте

навчальна гра на основі концепції GBL має ряд переваг в порівнянні з

традиційними емпіричними методами навчання. Така гра є економічно

ефективною, з низьким рівнем ризику та має ряд переваг у порівнянні з

традиційними методами навчання. Наприклад, учні можуть повторно пройти

заняття із заданим набором обставин кілька разів, досліджуючи наслідки

різних дій, крім того, може бути надана можливість отримання досвіду

навчання, яке неможливо реалізувати в реальному житті, наприклад,

навмисно створити якомога більший віртуальний вибух для розуміння

масштабу наслідку.

1.2 Аналіз аналогів розроблюваного програмного продукту

Особливістю комп'ютерних навчальних ігор є активна і безпосередня

участь гравця у подіях, що розгортаються, на відміну від пасивного

перегляду мультфільмів або вирішення однотипних завдань, запропонованих

у підручнику. На сьогоднішній день головною ціллю навчальних

комп’ютерних ігрових програм є тренування пам'яті, логіки, координації

рухів, умінь планувати свою діяльність, знаходити інформацію, необхідну

для вирішення поставленого завдання.

Для порівняльної експертизи комп'ютерних навчальних ігрових

програм з математики для учнів молодшого віку було обрано такі існуючі

програми: «Бджілка ЖУ-ЖУ. Зачаровані цифри», «Петрик. Лісові пригоди»,

«Transition Math K-1».

«Бджілка Жу-Жу. Зачаровані цифри» – комп’ютерна навчальна гра для

дітей віком до 9 років. Мета гри – «знімати чари» з чисел. У такій грі дитина

легко і невимушено ознайомлюється з цифрами та числами, засвоює прості

математичні дії: додавання, віднімання, множення та ділення.

Page 16: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

16

При запуску гри відкривається головне меню, де надано можливість

почати нову гру, продовжити раніше почату гру, отримати настанову щодо

проходження гри та виходу з гри. Весь процес проходження гри

супроводжується голосовими підказками, що полегшує роботу дитини з

комп’ютером. На рисунку 1.3 наведено інтерфейс головного меню.

Гра розроблена з почерговим наданням теоретичних відомостей про

цифри та поступовим наростанням складності завдань. На рисунку 1.4

показано процес надання теоретичних відомостей, що супроводжується

голосовими поясненнями. На рисунку 1.5 наведено етап проходження гри.

Рисунок 1.3 – Вигляд інтерфейсу меню гри

Рисунок 1.4 – Надання теоретичних відомостей у грі

Page 17: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

17

Рисунок 1.5 – Етап проходження гри

Після тестування гри «Бджілка Жу-Жу. Зачаровані цифри» було

помічено наступні недоліки:

- надання теоретичних відомостей після проходження рівня, де ці знання

повинні використовуватись;

- недоцільне розташування перешкод при проходженні рівня;

- відсутність зацікавленості у гравця через довгий процес проходження

певного рівня;

- відсутність можливості повторного проходження попередніх рівнів для

закріплення знань;

- обмеженість гри лише цифрами та простими математичними діями.

«Петрик. Лісові пригоди» – комп’ютерна навчальна гра для дітей, віком

3-7 років. Навчання проходить в процесі подорожі головного героя Петрика,

який потрапляє в різні ситуації, де потрібно застосувати математику.

Дана комп’ютерна гра навчить дітей розпізнавати кольори і фігури,

співставляти розміри, висоту, відстань, виконувати прості логічні задачі та

рахувати.

При запуску гри відкривається головна карта, з якої надано можливість

переходу до виконання завдання або виходу з гри. Завдання кожного рівня

Page 18: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

18

супроводжується голосовими підказками. На рисунку 1.6 наведено фрагмент

карти. На рисунку 1.7 показано приклад виконання завдання.

Рисунок 1.6 – Фрагмент карти гри

Рисунок 1.7 – Процес виконання завдання

Після тестування гри «Петрик. Лісові пригоди» було виявлено такі

недоліки:

- відсутність надання теоретичних відомостей;

- відсутність голосової навігації;

- незрозумілий та складний інтерфейс для сприйняття дитиною;

- відсутність можливість збереження результату гри;

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

- відсутність можливості повторного проходження попередніх рівнів для

закріплення знань.

Page 19: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

19

«Transition Math K-1» – навчальна програма, що включає в себе

сторінки віртуальної робочої книги із вивченням таких математичних основ

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

перехід від основних дошкільних математичних понять в шкільну програму

математики. Під час проходження гри діти розвиватимуть навички

послідовності, формування малюнку з підрахунками, вивчення цифр та

номерів, угрупування елементів в набори.

При запуску програми відображується головне меню керування

програмою з наданою можливістю початку нової гри, продовження

збереженої гри та виходу із програми.

Кожне завдання має декілька рівнів складності. Програма містить

аудіокерівництво, дружній юзер-інтерфейс, ненав’язливу анімацію для

підвищення уваги гравця. Передбачена можливість повторного проходження

будь-якого завдання для засвоєння матеріалу або виправлення зроблених

помилок. Після виконання всіх рівнів гравець отримує сертифікат з оцінкою

правильності виконання завдань.

На рисунку 1.8 наведено приклад головного меню гри. На рисунках 1.9

та 1.10 показано етапи проходження гри. На рисунку 1.11 зображено приклад

сертифікату.

Рисунок 1.8 – Головне меню гри

Page 20: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

20

Рисунок 1.9 – Етап проходження гри

Рисунок 1.10 – Етап проходження гри

Рисунок 1.11 – Приклад сертифікату

Page 21: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

21

Після тестування гри «Transition Math K-1» було виявлено такі

недоліки:

- відсутність надання теоретичних відомостей;

- відсутність можливості зміни мови;

- незрозумілість поставленого завдання неангломовними дітьми;

- відсутність ігрового сюжету;

- велика ймовірність зникнення зацікавленості у гравця.

Для наукової розробки та ефективного впровадження навчальних

комп’ютерних програм у систему навчання необхідно виділити наступні

критерії оцінки якості такого програмного продукту:

1) Оцінка відповідності завдань до навчального плану:

- відповідність навчальної гри до вимог та рівня підготовки гравця;

- наукова коректність, загальноприйняті термінології та символіки;

- ступінь наочності при введенні та пояснені нових понять в процесі

навчання.

2) Наукова оцінка змісту:

- наявність рівнів складності завдань;

- можливість аналізу помилок за результатами навчального процесу.

3) Оцінка рівня реалізації гри:

- можливості самостійного проходження гри гравцями молодшого віку;

- можливість збереження результатів гри;

- можливість ведення ігор декількома користувачами.

Зведенні результати оцінок за перерахованими критеріями існуючих

реалізацій навчальних комп’ютерних програм з математики наведенні в

таблиці 1.2. Критерії відповідності завдань до навчального плану оцінені за

п’ятибальною шкалою. Критерії наукової оцінки змісту та оцінка рівня

реалізації гри позначені знаками «+» – можливість надана, та «-» –

можливість відсутня.

Page 22: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

22

Таблиця 1.2 – Результати оцінювання існуючих аналогів

Назва гри

Критерії

«Бджілка ЖУ-

ЖУ. Зачаровані

цифри»

«Петрик.

Лісові

пригоди»

«Transition

Math K-1»

Відповідність навчальної

гри до вимог та рівня

підготовки гравця

4 5 5

Наукова коректність,

дотримання

загальноприйнятої

термінології та символіки

5 4 5

Ступінь наочності при

введенні та пояснені

нових понять в процесі

навчання

5 0 0

Наявність рівнів

складності завдань + - +

Можливість аналізу

помилок за результатами

навчального процесу

- - +

Можливості самостійного

проходження гри

гравцями молодшого віку

+ + -

Можливість збереження

результатів гри + - +

Можливість ведення ігор

декількома

користувачами

- - -

Page 23: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

23

1.3 Аналіз програмно-інформаційної підтримки при розробці

навчальних комп’ютерних ігор

Розробка комп'ютерних ігор вимагає застосування певного набору

спеціалізованих програмних засобів. На даний час для створення навчальних

ігор використовуються, в основному, ті ж інструменти, що і для звичайних

комп'ютерних ігор. Однак в цьому випадку виникає ряд проблем: складність

забезпечення управління процесом навчання у грі, відсутність необхідних

засобів управління навчальним контентом і механізмів управління якістю

навчальних ігор. Використання ж в процесі створення комп'ютерних ігор

інструментів, призначених тільки для розробки навчальних систем,

ускладнюється непристосованістю цих інструментів до специфіки розробки

ігор, зокрема використанням невідповідних форматів даних для зберігання

навчального контенту.

Важливим завдання, що вирішується при створенні навчальних

комп'ютерних ігор, є реалізація управління процесом навчання. Спосіб

управління безпосередньо впливає на можливість досягнення мети навчання

і, відповідно, визначає якість навчальної гри. Існують навчальні системи, що

реалізують різні підходи до управління процесом навчання. Однак пряме

перенесення моделей, застосовуваних у традиційних навчальних системах, в

навчальні ігри істотно обмежує ігрові можливості, так як методи управління,

які реалізуються на їх основі, не є достатньо інтерактивними для реалізації

ігрового процесу.

Основними обмеженнями при розробці навчальних ігор прийнято

вважати:

- необхідність написання програмного коду низького рівня і його

супроводу;

- обмежена підтримка процесу навчання;

Page 24: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

24

- відсутність інструментів управління сценарієм навчання та

механізмами адаптації;

- відсутність засобів управління якістю навчальних ігор.

При розробці навчальних комп’ютерних ігор необхідно виділяти такі

аспекти, як модель сценарію гри, модель гравця та модель оцінювання.

Модель сценарію гри описує послідовності дій, що виконуються

гравцем в процесі гри. Для навчальних ігор набір дій доповнюється діями, що

реалізують навчальний процес. Для адаптивних систем сценарій навчання так

само містить інформацію, необхідну підсистемі адаптації для вибору

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

сценарію є використання мов програмування загального призначення, однак,

такий підхід має ряд недоліків:

- багато типових дії з окремих блоків потрібно будувати вручну;

- розробник курсу повинен володіти навичками структурного

програмування;

- такі мови програмування не містять спеціальних засобів для

роботи з моделлю навчаючогося.

Для розрахунку і зберігання оцінок результатів навчання розроблена

структура моделі гравця. У навчальних системах під моделлю гравця

розуміється структура, що дозволяє зберігати інформацію про гравця,

значиму з точки зору процесу навчання, а також розраховувати на основі цієї

інформації результати навчання та здійснювати адаптацію процесу навчання.

За аналогією, модель гравця в традиційних іграх, зберігає інформацію про

персонажа гравця – його поточних характеристик і можливостей.

Можливість аналізу процесу навчання у грі реалізується за рахунок

виділення в моделі гравця профілю дій, в якому збирається інформація про

виконання дій сценарію в процесі гри. Для кожної виконаної дії збирається

набір значень метрик виконання дії, що складають його характеристику.

Page 25: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

25

Набір метрик, за якими оцінюється виконана дія, визначається типом дії. При

проходженні навчання дії сценарію можуть бути виконані в різному порядку,

деякі дії можуть виконуватися повторно або не виконуватися зовсім. Таким

чином, профіль дій може містити кілька характеристик виконання одного і

того ж дії сценарію.

Оцінка результатів навчання і керування процесом навчання

здійснюються за допомогою моделі знань і моделі навичок. Обидві моделі

являють собою безліч змінних, що зберігають поточний рівень знань з

відповідних тем предметної області. Відмінності між цими двома моделями

полягають у механізмах обчислення змінних, застосовуваних шкалах оцінки

та інтерпретації цих моделей в ігровому процесі.

Для оцінки якості сценарію навчальної гри виділяють критерії,

засновані на аналізі сценарію навчання та профілю дій. Основні з них такі:

1) критерії, що характеризують структуру сценарію: необхідність

елементів сценарію; збалансованість стратегій навчання;

2) критерії, що характеризують якість елементів курсу: вплив

елементів курсу на елементи моделі учня; необхідність повторного

вивчення елементів курсу; кількість невірних спроб виконання

завдань;

3) критерії, що характеризують взаємодію навчаючого і ігрового

процесів: збалансованість навчаючого і ігрового процесу;

адекватність вимог до ігрових навичок;

1.4 Постановка задач

У процесі програмної розробки навчальної гри з математики для дітей

необхідно розв’язати такі задачі:

1) визначити вимоги до завдань розроблюваного продукту відповідно до

навчальної програми з дисципліни «Математика»;

Page 26: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

26

2) розглянути можливі шляхи вирішення поставленої задачі;

3) розробити модель програмного продукту;

4) провести варіантний аналіз та обґрунтувати вибір програмного

забезпечення для реалізації розроблюваного програмного засобу.

5) розробити інтерфейс власного програмного продукту;

6) розробити модулі із завданнями;

7) реалізувати аудіокерівництво;

8) забезпечити можливість збереження поточної гри;

9) реалізувати можливість проходження гри декількома гравцями;

10) провести тестування розробленого програмного забезпечення.

1.5 Висновки

У даному розділі було здійснено детальний аналіз предметної області

та анотований огляд існуючих навчальних комп'ютерних ігор з математики

для початкової школи. Розглянуто основні переваги та недоліки таких

програм. Проведено аналіз програмно-інформаційної підтримки при розробці

навчальних комп’ютерних ігор. Здійснено постановку задач дослідження.

Page 27: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

27

2 РОЗРОБКА АЛГОРИТМІВ, СТРУКТУРИ ТА МОДЕЛЕЙ

2.1 Розробка алгоритму побудови робочого поля

При розробці програми було використано шаблон проектування Model-

View-ViewModel (MVVM)[6]. Шаблон Model-View-ViewModel — це шаблон,

що застосовується при проектуванні архітектури додатка. MVVM

використовується для розділення моделі та її представлення, що дозволяє

змінювати їх окремо один від одного. Наприклад, програміст задає логіку

роботи з даними, а дизайнер відповідно працює з призначеним для

користувача інтерфейсом.

Шаблон MVVM ділиться на три частини:

• «Модель» (Model), так само, як в класичному шаблоні MVC,

«Модель» є фундаментальними даними, необхідними для роботи додатка.

• «Вигляд» / «Представлення» (View) - так само, як в класичному

шаблоні MVC, «Представлення» - це графічний інтерфейс, тобто вікно,

кнопки і т. п.

• «Модель вигляду» (Viewmodel, що означає «Model of View») є з

одного боку абстракцією «Вигляду», а з іншою надає обгортку даних з

«Моделлю», які підлягають скріпленню. Тобто вона містить «Модель», яка

перетворена до «Вигляду», а так само містить в собі команди, якими може

користуватися «Вигляд», щоб впливати на «Модель».

Частиною «Представлення» (View) є робоче поле, яке необхідне для

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

елементи керування, такі як списки, кнопки, тощо. Основні робочі поля

розробленої програми складається з наступних елементів.

Карта завдань. Займає всю частину робочого простору. На карті

розміщені кнопки переходу до завдань, серед яких доступні та заблоковані

етапи позначені відповідним кольором (яскраво оранжевий – завдання

доступне, блідний оранжевий – завдання заблоковане).

Page 28: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

28

Робочі області. Відображає елементи необхідні для виконання

завдання або елементи, які є результатом виконання завдання. Результуюча

область вирізняється кольором для попередження заплутування у ході

проходження рівня гри.

Елементи керування. Користувацькі елементи, окремо розроблені для

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

окремо на робочому полі.

Кнопки керування. Розміщені на всіх робочих полях. Надають

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

повернення на головну карту та виходу з гри.

На початку гри доступним є лише перше завдання. Доступ до всіх

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

рівень автоматично стає доступним.

На рисунках 2.1 - 2.3 представлено шаблони вигляду основних робочих

полів навчальної гри.

Карта завдань

2

1

3

4

5

6

7

8

9

10

11

1412

13

20

19

18

17

15 16Старт

Фініш

Рисунок 2.1 – Робоче поле «Карта завдань»

Page 29: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

29

Область з елементами для виконання завдання

Область результату виконання завдання

Повернення

до карти

Елемент

керування 1

Елемент

керування 2

Елемент

керування 3

Елемент

керування 4

Елемент

керування 5

Елемент

керування 6

Результуючий

елемент керування

Рисунок 2.2 – Робоче поле із використанням «Робочої області»

Область результату виконання завданняПовернення

до карти

Елемент керування 1

Елемент керування 2

Елемент керування 3

Елемент керування 4

Елемент керування 5

Елемент керування 6

Результуючий

елемент керування

Рисунок 2.3 – Робоче поле із використанням «Елементів керування»

При виконанні поставленого завдання необхідно обрати певний

елемент керування. При правильно обраному елементі керування дається

наступне завдання, в іншому випарку повідомляється про допустимість

помилки.

Page 30: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

30

2.2 Розробка покрокового алгоритму

Алгоритм — послідовність, система, набір систематизованих правил

виконання обчислювального процесу, що обов'язково приводить до

розв'язання певного класу задач після скінченного числа операцій. При

написанні комп'ютерних програм алгоритм описує логічну послідовність

операцій. Для візуального зображення алгоритмів часто використовують

блок-схеми[7].

Кожен алгоритм є списком добре визначених інструкцій для

розв'язання задачі. Починаючи з початкового стану, інструкції алгоритму

описують процес обчислення, які відбуваються через послідовність станів,

які, зрештою, завершуються кінцевим станом. Перехід з одного стану до

наступного не обов'язково детермінований — деякі алгоритми містять

елементи випадковості.

Алгоритм роботи навчальної комп’ютерної гри:

1) Запуск авторської заставки. Під час завантаження програми

показується вікно з авторською заставкою.

2) Показ відеоролика з передісторією сюжету навчальної гри.

3) Завантаження демонстраційних даних. Запуск демоверсії роботи

програми. Відображення головної карти.

4) Запуск аудіо з постановкою загальної задачі по сюжету гри.

5) Можливість обрання рівня завдання.

6) Постановка задачі конкретного для завдання.

7) Проходження рівня.

8) Повернення до головної карти.

9) Можливість обрання наступного рівня завдання.

10) Вихід з програми.

Блок-схему алгоритму роботи програми наведено на рисунку 2.4.

Page 31: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

31

Початок

Запуск авторської заставки

Завантаження демонстрацій-

них даних

Запуск аудіо

Очікування команди

користувача

2

Показ відеоролика

Натиснута кнопка переходу

до виконання завдання

Постановка завдання для проходження

рівня

так

2

ні

Завдання виконано правильно

ні

Останнє завдання обраного рівня

так

Постановка наступного

завдання для проходження

рівня

ніПовернення до головної карти

2

Натиснута кнопка виходу з

гри

ні

Кінець

так

1

1

Рисунок 2.4 – Блок-схема алгоритму роботи програми.

2.3 Аналіз вимог до модулів із завданнями

Формування початкових математичних знань і способів діяльності, їх

практичне застосування ґрунтується на заснованих учнями у передшкільний

період математичних уявленнях, які на елементарному рівні відображають

ознаки, властивості та відношення предметів навколишнього світу.

Результатом опанування дошкільником цих уявлень є:

- уміння визначати ознаки та властивості предметів за формою, розміром,

кольором, матеріалом, призначенням тощо;

- порівнювати предмети за однією або кількома ознаками;

- здійснювати серіацію предметів;

- орієнтуватися у просторі та визначати розташування предметів у ньому;

- встановлювати найпростіші причинно-наслідкові та просторово-часові

зв’язки;

Page 32: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

32

- лічити предмети;

- вживати у мовленні логічні сполучники та розуміти їх значення;

- робити елементарні умовиводи;

- висловлювати прості оцінювальні судження.

Ці уміння служать основою для сприймання, розуміння та засвоєння

математики учнями в початковій ланці освіти.

Відповідно до Державного стандарту початкової загальної освіти курс

математики будується за такими змістовими лініями:

1. Числа, дії з числами.

2. Величини.

3. Математичні вирази, рівності, нерівності.

4. Сюжетні задачі.

5. Просторові відношення.

6. Геометричні фігури.

7. Робота з даними.

На основі наведених змістових ліній, необхідних для планового

вивчення курсу математики в молодших класах, було розроблено зведену

таблицю з вимогами до завдань, що розроблятимуться при створенні

навчальної комп’ютерної гри (таблиця 2.1).

Таблиця 2.1 – Вимоги до завдань навчальної гри

Змістова лінія Навчальний матеріал Вимоги до результату навчання

1 2 3

Систематизація

знань з

передшкільного

періоду

Ознаки, властивості предметів

спільні та відмінні ознаки;

об’єднання об’єктів у групу за

спільною ознакою; розбиття

групи об’єктів на підгрупи за

спільною ознакою;

Розпізнавання предметів за

розміром, формою, призначенням,

кольором; визначення спільних та

відмінних ознак об’єктів; порівняння

предметів за вказаними ознаками.

Page 33: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

33

Продовження таблиці 2.1 – Вимоги до завдань навчальної гри

1 2 3

Просторові

відношення.

Геометричні

фігури

Розміщення об’єктів на площині

та у просторі; напрямки руху;

геометричні поняття: точка,

пряма, крива, відрізок, промінь,

кут, ламана, многокутник, круг;

просторові фігури: куб, куля,

циліндр.

Орієнтація на площині та у просторі;

визначення розміщення об’єктів у

просторі і на площині; встановлення

відношень між предметами на

площині та у просторі; розпізнавання

форм навколишніх предметів;

знання геометричних фігур.

Числа. Дії з

числами

Лічба; правила лічби; назви

чисел у межах 10; порядкова

лічба; порядкові відношення;

порівняння чисел; знаки

порівняння; арифметичні дії

додавання й віднімання чисел;

знаходження невідомого

компонента арифметичних дій;

Знання назв чисел у межах 10;

позначення числа цифрами;

розуміння відмінності між числом і

цифрою; порівняння числа різними

способами; знання знаків дій

додавання і віднімання; розуміння

змісту дій додавання та віднімання;

застосування правила знаходження

невідомих компонентів.

Математичні

вирази.

Рівності.

Нерівності

Числова рівність; числова

нерівність; істинні та хибні

числові рівності й нерівності;

числовий вираз та його

значення; математичні вирази

сума і різниця; числові вирази на

дві дії.

Розрізнення числових рівностей та

нерівностей; розуміння, що рівності

й нерівності можуть бути істинними

й хибними; розв’язання числових

виразів, що містять дії додавання або

віднімання; обчислення значення

числового виразу, що містить одну-

дві дії.

Величини

Одиниці вимірювання довжини;

одиниця вимірювання маси;

одиниця вимірювання місткості;

одиниці вартості;

Розуміння довжини як властивості

об’єктів мати протяжність; знання

одиниць вимірювання; розуміння,

що всі навколишні предмети мають

Page 34: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

34

Продовження таблиці 2.1 – Вимоги до завдань навчальної гри

1 2 3

одиниці вимірювання часу –

година, доба, тиждень.

масу; знання одиниці вимірювання

місткості – літр; розуміння, що

посудини мають місткість; знання,

що товари мають вартість, виражену

грошовими одиницями; знання

одиниці вартості і співвідношення

між ними; знання назв днів тижня та

їх послідовність; наявність уявлення

про добу.

Сюжетні задачі

Поняття задачі; структурні

елементи задачі; зв’язок умови і

запитання; прості задачі на

знаходження суми, різниці двох

чисел; збільшення і зменшення

числа на кілька одиниць;

знаходження невідомого.

Знання структурних елементів задачі

– умова і запитання; числові дані та

шукане; розуміння, що в умові задачі

містяться числові дані, а запитання

вказує на шукане; визначення

числових даних, необхідних і

достатніх для відповіді на запитання;

2.4 Розробка моделі програмного продукту

Для забезпечення технологічності розроблюваного програмного

забезпечення застосовується модульне програмування.

Програмний продукт, як правило, є великою системою, тому необхідно

вжити заходи для її спрощення. Для цього програму розробляють на частини,

які називаються програмними модулями. Такий метод створення програм

називають модульним програмуванням. Модульне програмування засноване

на понятті модуля - програми або функціонально завершеного фрагмента

програми.

Модуль характеризують:

Page 35: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

35

- один вхід і один вихід. На вході програмний модуль отримує певний

набір вихідних даних, виконує їх обробку і повертає один набір вихідних

даних;

- функціональна завершеність. Модуль виконує набір певних операцій

для реалізації кожної окремої функції, достатніх для завершення розпочатої

обробки даних;

- логічна незалежність. Результат роботи даного фрагмента програми не

залежить від роботи інших модулів;

- слабкі інформаційні зв'язки з іншими програмними модулями. Обмін

інформацією між окремими модулями повинен бути мінімальний;

- розмір і складність програмного елемента повинні бути розроблені в

розумних рамках.

Отже, модулі містять опис вихідних даних, операції обробки даних і

структури взаємозв'язку з іншими модулями.

Програмний модуль є самостійним програмним продуктом. Це означає,

що кожен програмний модуль розробляється, компілюється та

налагоджували окремо від інших модулів програми. Таким чином,

програмний модуль може розглядатися і як засіб спрощення складних

програм і як засіб накопичення та багаторазового використання

програмістських знань.

Модульна структура програми являє собою деревоподібну структуру, в

вузлах якої розміщуються програмні модулі, а спрямовані дуги показують

статичну підпорядкованість модулів. Якщо в тексті модуля є посилання на

інший модуль, то їх на структурній схемі з'єднує дуга, яка виходить з

першого і входить у другий модуль. Іншими словами, кожен модуль може

звертатися до підлеглих йому модулів. Функція верхнього рівня

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

функцій, яким відповідають підлеглі модулі.

Page 36: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

36

При визначенні набору модулів, що реалізують функції конкретного

алгоритму, необхідно враховувати наступне:

1) модуль викликається на виконання вищестоящим по ієрархії

модулем і, закінчивши роботу, повертає йому керування;

2) прийняття основних рішень в алгоритмі виноситься на

максимально високий по ієрархії рівень;

3) якщо в різних місцях алгоритму використовується одна і та ж

функція, то вона оформлюється в окремий модуль, який буде викликатися за

необхідністю.

Склад, призначення і характер використання програмних модулів в

значній мірі визначаються інструментальними засобами.

На рисунку 2.5 зображено модель програмного продукту, на якому

представлено всі наявні модулі програми та взаємозв’язок між ними.

Головний модуль

MainWindowViewModel

Модуль

ViewModelStep1

Модуль

ViewModelStep2

Модуль

ViewModelStep3

Модуль

ViewModelStep20...

Модуль

ViewStep1

Модуль

ModelStep1

Модуль

ViewStep2

Модуль

ModelStep2

Модуль

ViewStep3

Модуль

ModelStep3

Модуль

ViewStep20

Модуль

ModelStep20

Модуль

MainWindowView

Рисунок 2.5 – Модель навчальної комп’ютерної гри

2.5 Висновки

У даному розділі було розроблено алгоритм побудови робочого поля,

описано алгоритм роботи розробленої програми, що дозволяє швидко

зрозуміти весь цикл роботи та побачити основні операції програми.

Проведено аналіз вимог до модулів із завданнями розроблюваної гри.

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

Page 37: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

37

3 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

3.1 Варіантний аналіз та обґрунтування вибору засобів реалізації

програмного продукту

Мова програмування — формальна знакова система, призначена для

запису комп'ютерних програм. Мову програмування визначає набір

лексичних, синтаксичних і семантичних правил, визначаючих зовнішній

вигляд програми і дії, які виконає виконавець (комп'ютер) під її управлінням.

З часу створення перших програмованих машин людство придумало

більше двох з половиною тисяч мов програмування. Щороку їх число

збільшується. Деякими мовами уміє користуватися лише невелике число їх

власних розробників, інші стають відомі мільйонам людей. Професійні

програмісти інколи застосовують в своїй роботі більше десятка різних мов

програмування.

Творці мов по-різному тлумачать поняття мова програмування. До

найбільш поширених тверджень, визнаним більшістю розробників,

відносяться наступні:

- Функція: мова програмування призначена для написання комп'ютерних

програм, які застосовуються для передачі комп'ютеру інструкцій по

виконанню того або іншого обчислювального процесу і організації

управління окремими пристроями.

- Завдання: мова програмування відрізняється від природних мов тим,

що призначена для передачі команд і даних від людини до комп'ютера,

тоді як природні мови використовуються для спілкування людей між

собою. Можна узагальнити визначення «мов програмування» — це

спосіб передачі команд, наказів, чіткого керівництва до дії, тоді як

людські мови служать також для обміну інформацією.

Page 38: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

38

- Виконання: мова програмування може використовувати спеціальні

конструкції для визначення і маніпулювання структурами даних і

управління процесом обчислень.

У наш час існує безліч мов програмування. Деякі з них змінювалися,

удосконалювалися та набували популярності протягом багатьох років, а деякі

ставали відомими та поширеними майже одразу після їх створення. На

сьогоднішній день серед всіх мов найвідомішими та найбільш

використовуваними мовами програмування можна назвати такі, як Java, C,

C++, C#, PHP, Visual Basic, Delphi та інші.

Розглянемо деякі з них, а саме C, C++, Java та C#. Метою створення C#

було розширення можливостей C++, яка була нащадком найбільш поширеної

мови системного програмування С[9]. Орієнтований на ту ж саму сферу

застосування, C# успадкував безліч особливостей як C++, так и С. В області

прикладного програмування альтернативою C# є Java, також мова-нащадок

С++[9]. Не дивлячись на спадкоємність по відношенню до C++, Java

будувалася на принципово іншій основі, її розробники не були зв'язані

вимогами сумісності з мовою-предком і забезпечення максимально досяжної

ефективності, завдяки чому вони змогли кардинально переробити мову,

відмовитися від безлічі синтаксичних засобів, щоб добитися ідеологічної

цілісності мови. Вже пізніше компанія Microsoft запропонувала мову C#, що

є ще однією переробкою C++ в тому ж напрямі, що і Java.

Java і C# можна розглядати як дві мови-нащадки C, що розроблені з

різних міркувань і пішли, внаслідок цього, по різних напрямках. В зв'язку з

цим представляє інтерес порівняння даних мов. На відміну від С#, Java є

чисто об'єктно-орієнтовною мовою, без можливості процедурного

програмування. Для оголошення вільних функцій або глобальних змінних в

Java необхідно створювати фіктивні класи, що містять лише static члени. Для

Page 39: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

39

завдання головній функції навіть найпростішої програми на Java необхідно

помістити її в клас.

Розглянувши всі плюси та мінуси таких мов програмування, як С++, C#

та Java, можна зробити висновок, що у даному випадку, для розроблюваної

програми найефективнішою мовою програмування є С#. При вирішенні

поставленої задачі оптимально використовувати для представлення

інформаційних матеріалів мову С#, яка є мовою високого рівня і дозволяє

швидко і ефективно створювати програми.

3.2. Обґрунтування вибору інтерфейсу

Інтерфейс — сукупність засобів, методів і правил взаємодії

(управління, контролю) між елементами системи.

Інтерфейс користувача[10] — сукупність засобів для обробки та

відображення інформації, максимально пристосованих для зручності

користувача.

Різновид інтерфейсів, в якому одна сторона представлена людиною

(користувачем), інша — машиною/пристроєм, являє собою сукупність

засобів і методів, за допомогою яких користувач взаємодіє з різними,

найчастіше складними, машинами, пристроями і апаратурою.

При розробці інтерфейсу необхідно керуватися такими

принципами[10]:

- Стандартизація. Рекомендується використовувати стандартні,

перевірені багатьма програмістами і користувачами інтерфейсні

рішення.

- Зручність і простота роботи. Інтерфейс повинен бути інтуїтивно

зрозумілим. Бажано, щоб усі дії легко запам’ятовувалися і не вимагали

стомлюючих процедур.

Page 40: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

40

- Зовнішній дизайн. Важливо, щоб інтерфейс не стомлював зір. Він

повинен бути розрахований на тривалу роботу користувача з додатком

протягом дня.

Сукупність засобів, за допомогою яких користувач взаємодіє з різними

програмами і пристроями:

- Інтерфейс командного рядка: інструкції комп'ютеру даються шляхом

введення з клавіатури текстових рядків (команд).

- Графічний інтерфейс користувача: програмні функції представляються

графічними елементами екрану.

- Діалоговий інтерфейс: наприклад, Пошук

- Природно-мовний інтерфейс: користувач «розмовляє» з програмою на

рідній йому мові.

- Тактильний інтерфейс: кермо, джойстик і так далі

- Нейрокомп’ютерний інтерфейс (англ. brain-computer interface):

відповідає за обмін між нейронами і електронним пристроєм за

допомогою спеціальних імплантованих електродів.

Для написання даної програми було вирішено обрати графічний

інтерфейс, адже при використанні програми буде використовуватись багато

графічних елементів для кращого візуального контакту між дитиною та

комп’ютером.

Для забезпечення діалогу між програмою та користувачем було

вирішено використовувати діалогове вікно, розроблене за WPF (Windows

Presentation Foundation) типом інтерфейсу.

Діалогове вікно — це особливий тип вікна, яке задає запитання і

дозволяє вибрати варіанти виконання дії, або ж інформує користувача.

Діалогові вікна зазвичай відображаються тоді, коли програмі для подальшої

роботи потрібна ваша відповідь.

Page 41: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

41

3.3 Програмування інтерфейсу

При розробці інтерфейсу даної програми використовувалась система

Windows Presentation Foundation.

Windows Presentation Foundation (WPF) - система для побудови

клієнтських додатків Windows з візуально привабливими можливостями

взаємодії з користувачем, графічна (презентаційна) підсистема в складі .NET

Framework, що має пряме відношення до XAML (ЗАМЛ).

У основі WPF лежить векторна система візуалізації, не залежна від

дозволу пристрою виводу і створена з врахуванням можливостей сучасного

графічного устаткування. WPF надає засоби для створення візуального

інтерфейсу, включаючи Мову XAML (Extensible Application Markup

Language), елементи управління, прив'язку даних, макети, двомірну і

тривимірну графіку, анімацію, стилі, шаблони, документи, текст,

мультимедіа і оформлення.

Для роботи з WPF потрібна будь-яка .NET-сумісна мова. У цей список

входить безліч мов: C#, VB, C++, Ruby, Python, Delphi (Prism), Lua і багато

інших.

Для повноцінної роботи було використано як Visual Studio, так і

Expression Blend. Перша орієнтована на програмування, а друга — на дизайн

і дозволяє робити багато речей, не удаючись до ручного редагування XAML.

Приклади цьому — анімація, стилізація, стани, створення елементів

управління і так далі.

На рисунках 3.1 – 3.4 представлено приклади вигляду інтерфейсу

розробленої навчальної гри.

Задля того, щоб підвищувати зацікавленість дитини до гри, було

вирішено інтерфейс програми розробити у яскравих тонах, з використанням

елементів сюжету гри. Всі завдання розроблено згідно з вимогами навчання

Page 42: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

42

дитини математиці, але при цьому використовувались спеціально розроблені

за сюжетною лінією елементи керування.

Рисунок 3.1 – Вигляд інтерфейсу головної карти

Рисунок 3.2 – Вигляд інтерфейсу першого завдання

Для того, щоб гравцю одразу було зрозуміло, де саме знаходяться

результати виконання завдань, їх було вирішено розташувати в спеціально

відведених та певним чином позначених областях екрану. Якщо при

виконанні завдання не передбачено перенесення елемента керування в

зазначену область, то такий елемент підсвічується при натисненні на ньому.

Page 43: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

43

Рисунок 3.3 – Вигляд інтерфейсу четвертого завдання

Рисунок 3.4 – Вигляд інтерфейсу п’ятого завдання

3.4 Розробка програми

Під час розробки програми створювалося багато змінних, масивів,

функцій та класів задля полегшення подальшої розробки та для кращого

розуміння коду та орієнтування в написаній програмі.

Для розробки основного алгоритму було використано наступний набір

головних функцій.

З файлів, що реалізують шаблон ViewModel.cs:

Page 44: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

44

- PlaySound(). Метод, який забезпечує відтворення звукового

файлу, ім’я якого передається у функцію як аргумен. Методо

використовує стандартні функції класу SoundPlayer.

- DataContexts. Певні змінні, які прив’язуються до елементів

керування у View як їх властивості. При змінні цих властивостей

змінюється візуальний вид відповідного елементу керування.

- Activate(). Функція, що реалізовує перехід від карти завдань до

певного рівня і навпаки.

- ChooseErrorVoice(). Метод, що дозволяє випадково обирати

повідомлення про неправильне виконання завдання.

Використовує методи стандартного класу Random, а саме

Random(DateTime.Now.Second), rand.Next().

- MainWindowVM(). Конструктор, який забезпечує роботу

комп’ютерної гри. В даному методі відбувається запуск всіх

необхідних функцій..

- Commands. Властивості кнопочних елементів керування. При

натисненні на кнопку, викликатиметься певна команда, яка

прив’язана до кнопки, що натиснута.

З файлів, що реалізують шаблон Model.cs:

- list BoardScribbledFigures. Список, який містить данні про різні

фігури, що використовуватимуться при виконанні завдання.

- list BoardSelectedFigures. Список, який містить данні про обрані

фігури, що відображатимуться на області результату виконання

завдання.

- class Step1Model. Клас, який обписує алгоритм виконання

першого завдання. На кожне завдання гри створено відповідний

клас, який реалізовує необхідний алгоритм.

Page 45: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

45

- StartNextLevel(). Функція, яка викликається при виконанні

поставленого завдання. Тут виконується перевірка на кількість

виконаних завдань і залежно від результату перевірки

відбувається перехід до наступного завдання або до головної

карти гри.

Програмний код імплементації функції PlaySound() та приклад виклику

функції виглядають наступним чином:

using System.Media; public MainWindowVM() { audio = new SoundPlayer(); PlaySound(Properties.Resources.entry); } public void PlaySound(System.IO.UnmanagedMemoryStream stream) { audio.Stream = stream; audio.Play(); }

На початку необхідно підключити бібліотеку, що забезпечуватиме

можливість виконання встроєних функцій. Потім потрібно у конструкторі

створити екземпляр класу SoundPlayer. Функція PlaySound виконує певні дії

із змінною типу SoundPlayer, а саме передає необхідний для відтворення

файл та запускає відтворення переданого файлу.

Приклад написання та використання змінних типу DataContexts:

private Step1ViewModel step1DataContext; public Step1ViewModel Step1DataContext { get { return step1DataContext; } set { step1DataContext = value; NotifyPropertyChanged("Step1DataContext"); } } private Step2ViewModel step2DataContext; public Step2ViewModel Step2DataContext { get { return step2DataContext; } set { step2DataContext = value; NotifyPropertyChanged("Step2DataContext"); }

Page 46: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

46

} public MainWindowVM() { Step1DataContext = new Step1ViewModel(this); Step2DataContext = new Step2ViewModel(this); } <UserControl.Resources> <DataTemplate x:Key="CircleFigure"> <local:CircleControl Command="{Binding Path=DataContext.SelectedCommand, ElementName=Board}"/></DataTemplate> </UserControl.Resources> <Grid x:Name="Board" DataContext="{Binding Step1DataContext}"></Grid>

В описаному коді створюються певні властивості Step1DataContext та

Step2DataContext типів Step1ViewModel та Step2ViewModel відповідно. При

зміні цих властивостей викликається подія NotifyPropertyChanged(), яка

аргументом приймає назву властивості. Викликана подія запускає ряд

функцій, що відповідають за нове відтворення візуалізації. Зв’язування

описаних властивостей відбувається за допомогою команди Binding, як

показано у прикладі.

Всі перелічені класи, матриці, змінні та функції – найголовніші у

розробленій програмі. Без них робота програми була б неправильною або

вона б видавала неповні результати.

3.5 Висновки

У даному розділі було проведено варіантний аналіз та обґрунтування

вибору засобів реалізації програмного продукту, розроблено код основних

класів, функцій та властивостей, необхідних для правильної роботи

програми. Проведено розробку та дизайн інтерфейсу навчальної гри,

зорієнтованого на користувачів молодшого віку.

Page 47: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

47

4 ТЕСТУВАННЯ РОЗРОБЛЕНОГО ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

4.1 Аналіз методик тестування

Тестування — один з розділів діагностики. Тестування застосовується

для визначення відповідності предмету випробування заданим

специфікаціям. У завдання тестування не входить визначення причин

невідповідності заданим вимогам. Тестування застосовується для визначення

придатності об'єкту тестування для виконання тих або інших функцій. Якість

тестування і достовірність його результатів в значній мірі залежить від

тестувальника.

Технологія тестування складається з наступних частин:

- зовнішня дія;

- реакція випробовуваного;

- оцінка реакції і виводи.

Випробування проводяться багато разів, при різних зовнішніх діях, до

тих пір, поки тестер не зможе прийняти рішення про придатність

випробовуваного до реалізації заданих функцій.

Тестування програмного забезпечення[11] — процес дослідження

програмного забезпечення (ПЗ) з метою здобуття інформації про якість

продукту.

Методи тестування програмного забезпечення, що існують на

сьогоднішній день, не дозволяють однозначно і повністю виявити всі

дефекти і встановити коректність функціонування аналізованої програми,

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

перевірки досліджуваного або такого, що розробляється програмного

забезпечення.

Такий процес формальної перевірки або верифікації може довести, що

дефекти відсутні з точки зору використовуваного методу. Тобто немає

Page 48: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

48

жодної можливості точно встановити або гарантувати відсутність дефектів в

програмному продукті з врахуванням людського чинника, присутнього на

всіх етапах життєвого циклу програмного засобу.

Існує безліч підходів до вирішення задачі тестування і верифікації

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

продуктів — це процес вкрай творчий, такий, що не зводиться до дотримання

строгих і чітких процедур [11].

Існує декілька ознак, по яких прийнято виробляти класифікацію видів

тестування. Зазвичай виділяють наступні.

По об'єкту тестування: функціональне тестування (functional testing),

тестування продуктивності (performance testing), тестування навантаження

(load testing), стрес-тестування (stress testing), тестування стабільності

(stability / endurance / soak testing), юзабіліті-тестування (usability testing),

тестування інтерфейсу користувача (UI testing), тестування безпеки (security

testing), тестування локалізації (localization testing), тестування сумісності

(compatibility testing).

По мірі ізольованості компонентів: компонентне (модульне) тестування

(component/unit testing), інтеграційне тестування (integration testing), системне

тестування (system/end-to-end testing).

4.2 Тестування модулів програми

При розробці навчальної комп’ютерної гри було використано Unit

тестування за допомогою Microsoft Unit Testing Framework, за яким у

відповідному файлі на кожну функцію чи метод, який потрібно протестувати,

вводяться необхідні для виконання цього метода дані, записуються очікувані

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

неправильному виконані даного метода. На рисунку 4.1 наведено приклад

синтаксису написання даного тестування для розробленої навчальної гри.

Page 49: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

49

Рисунок 4.1 – Приклад синтаксису написання Unit тестування

На рисунку 4.2 можна побачити результати успішного тестування, на

якому не виявлено жодних помилок.

Рисунок 4.2 – Приклад успішного виконання Unit тестування

На рисунку 4.3 продемонстровано результат тестування, під час якого

виявлено помилки та виведено повідомлення, що саме спрацювало не так, як

очікувалось.

Page 50: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

50

Рисунок 4.3 – Приклад неуспішного виконання Unit тестування

Також передбачена можливість детального перегляду результатів

тестів, для цього необхідно два рази клацнути на результат відповідного

тестування, після чого відкриється додаткове вікно, у якому буде показано

детальний перегляд результату тестування (рисунок 4.4).

Рисунок 4.4 – Вікно детального перегляду Unit тестування

4.3 Тестування взаємодії користувача з програмою

В даній програмі використано такий шаблон проектування, як Model-

View-ViewModel, який дозволяє розділити логіку роботи з даними, логіку

роботи User interface та сам User interface. Це дозволяє зробити Unit

тестування логіки User interface, що важко зробити при інших підходах

програмування.

Для повного тестування розробленого програмного продукту потрібно

перевірити всі варіанти використання. Варіанти використання (Use Cases) –

це опис послідовності дій, які може здійснювати система у відповідь на

зовнішні дії користувачів або інших програмних систем. Варіанти

Page 51: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

51

використання відображають функціональність системи з точки зору здобуття

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

У розробленій програмі однією з головних use cases є послідовність дій

після обрання команди переходу до виконання певного завдання. При обрані

цієї команди програма повинна спочатку приховати головне діалогове вікно з

картою завдання і перейти до діалогового вікна із відповідним до обраного

рівня завдання. При переході до діалогового вікна із завданням повинен

запуститися аудіофайл, що озвучуватиме завдання обраного рівня, щоб

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

поставленою задачею без необхідності залучення сторонньої допомоги.

Отже, потрібно протестувати такі моменти, як приховання головного

вікна і перехід до додаткового, відповідність відкритого вікна до обраного

користувачем рівня завдання, запуск правильного аудіофайлу та коректна

робота всієї програми.

Одним з варіантів перевірки правильності виконання даних операцій є

почерговий перехід під час роботи програми до карти завдання та до

декількох різних рівнів завдань з деякими повторними обраннями одного і

того ж завдання. При цьому кожного разу при кількаразовому переході до

одного завдання повинен запускатись один і той самий аудіофайл та

інтерфейс діалогового вікна. При переході до всіх інших завдань замість

зазначених аудіофайлу та інтерфейсу повинні запускатись інші, відповідні до

обраного завдання.

Для впевненості, що відтворюється саме той аудіофайл, який

відповідає номеру завдання, було вирішено тимчасово відображувати

текстову область, де реалізовано відображення назви аудіофайлу, що

програється. Результат проведеного тестування наведено на рисунку 4.5.

Аналогічним чином було проведено тестування відповідності

відкритого діалогового вікна до очікуваного. Було створено текстову

Page 52: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

52

область, куди виводилась назва відображуваного діалогового вікна. Результат

тестування наведено на рисунку 4.6.

Рисунок 4.5 – Результат тестування запуску аудіофайлу

Рисунок 4.6 – Результат тестування запуску діалогового вікна

Після завершення розроблення навчальної гри з математики, було

отримано задовільні результати. Було проведено ряд тестів, які мали різну

форму тестування. Після проведення описаних тестувань було перевірено,

що програма функціонує правильно.

Для зацікавлення користувачів було обрано яскраві відтінки фону, всі

поля на головному вікні розташовано у логічному порядку задля зручності

Page 53: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

53

користування гравцями молодшого віку. Більшу частину всіх вікон займає

поле, на якому розміщені користувацькі контроли, з якими працює гравець.

Це дає можливість сконцентровувати увагу гравця на вирішення поставленої

задачі. Також передбачене меню, через яке при виборі певного пункту

виконуються відповідні дії: початок нової гри, завантаження раніше початої

гри, збереження поточної гри, прослуховування передісторії сюжету гри.

4.4 Інструкція користувача

Для запуску гри необхідно запустити файл MashaIVedmid.exe, після

чого відкриється меню гри, де запропоновано почати нову гру або обрати гру

із списку збережених ігор. При обранні певного пункту з’являється головне

вікно з картою проходження гри та починає відтворюватись аудіосупровід з

передісторією та постановкою загального завдання при проходженні гри.

Після прослуховування аудіосупроводу гравець має можливість обрати

етап проходження гри. Якщо гравець почав нову гру, доступним є лище

перший етап, після проходження якого стає доступним другий етап і т.д.

Якщо гравець продовжує вже збережену гру, то він може обрати будь-який із

вже пройдених етапів, або останній доступний, після проходження якого

наступний етап також стає доступним.

При переході до певного етапу гри запускається вікно з відповідним

завданням та аудіо із постановкою завдання. При правильному проходженні

етапу відбувається підтримка гравця словами типу «Молодець», «Так

тримати», а при неправильному – підбадьорювання словами «Ти можеш це

зробити», «Спробуй ще раз».

Після правильного виконання завдання гра автоматично переходить до

головного вікна з картою завдань і доступним стає наступне після

пройденого завдання.

Page 54: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

54

В будь-який момент гри гравець може відкрити меню та зберегти

поточний стан гри.

4.5 Висновки

Проведено ряд тестів, які мали різну форму тестування.

На різних етапах розробки даної програми з’являлися непередбачені

труднощі та перешкоди до реалізації тієї чи іншої задумки розробника. Тому

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

можна знайти шлях вирішення цієї проблеми. Якщо знайти потрібну

відповідь не виходило, потрібно було переглядати всі етапи розробки та

шукати інші шляхи обходу труднощів, інколи навіть доводилось змінювати

те, що було вже реалізовано.

Всі помилки ліквідовано, роботу та функціонування програми

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

користувача інтерфейс. Наведено інструкцію користування програмою.

Page 55: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

55

5 ОХОРОНА ПРАЦІ

5.1 Характеристика професії та приміщення

Наведемо приналежність професії «Менеджер (управитель) систем з

інформаційної безпеки» до класифікаційних угруповань відповідно до

Національного класифікатору професій (КП) ДК 003:2010 (від 28.07.2010

року № 327) [12] наведено в таблиці 5.1. Також наведемо загальні

характеристики професії.

Таблиця 5.1 – Загальні характеристики професії

Назва Опис

Розділ 1 Законодавці, вищі державні службовці, керівники, менеджери (управителі)

Галузі

застосування

знань

Цей розділ вміщує професії, що пов'язані з:

визначенням та формуванням державної політики, законодавчим

регулюванням;

вищим державним управлінням;

правосуддям та прокурорським наглядом;

керівництвом об'єднаннями підприємств, підприємствами, установами,

організаціями та їхніми підрозділами незалежно від форм власності та видів

економічної діяльності.

Цей розділ щодо кваліфікації, як ознаки класифікації, є змішаним порівняно з

іншими розділами. Розділ охоплює широке коло професій, пов'язаних із

здійсненням різноманітних функцій управління та керівництва, які в цілому

суттєво відрізняються за своєю складністю та відповідальністю.

Кваліфікацій-

ні вимоги Повна вища освіта відповідного напряму підготовки (магістр, спеціаліст).

Код професії 1495

Код за ДКХП -

Завдання та

обов’язки у

сфері охорони

праці

­ Здійснює розробку оперативних планів роботи з охорони праці планів

організаційно-технічних заходів по виконанню приписів органів Держнагляду.

­ Розглядає і затверджує плани, графіки ремонтів ЕОМ і споруд.

­ Організує виконання перспективних, поточних, оперативних планів-

заходів з охорони праці в ввірених підрозділах.

­ Дає усні та письмові розпорядження і вказівки з питань охорони праці.

­ Приймає участь у проведенні контролю стану охорони праці у ввірених

відділах.

­ Здійснює комплексні і цільові перевірки стану охорони праці у

встановлені терміни.

­ Надає у встановлені терміни інформацію до статистичних форм.

­ Здійснює контроль своєчасного виконання перспективних поточних,

оперативних планів роботи з охорони праці в ввірених підрозділах.

­ Здійснює контроль за дотриманням керівниками ділянок, вимог правил і

норм безпеки тощо.

Page 56: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

56

Об’єктом дослідження в роботі є відділ програмного забезпечення у м.

Вінниці. Приміщення відділу знаходиться на третьому поверсі

адміністративної будівлі.

Загальна площа приміщення складає 15,36 м2. Висота приміщення 2,5

м, тому його об’єм становить – 15,36*2,5=38,4 м3. Кількість працюючих у

приміщенні − 7 осіб. Компютерами обладнано 6 робочих місць. Отже, на

одного працюючого в приміщенні припадає: 15,36 : 7 = 2,19 (м2/ос.) робочої

площі та 38,4 /7=5,49 (м3/ос.).

За СНиП 2.09.04–87 [13] на кожного працюючого в управлінських

приміщеннях повинно припадати не менше 4 (м2/чол.) робочої площі.

Відповідно до НПОАП 0.00-1.28-10 [14] на одного працівника, який

застосовує ЕОМ має припадати не менше 6 кв. м., а об’єм повітря в

приміщенні має бути не менше 20 куб. м. Висота приміщення – не менше 2,5

м. Отже, норматив забезпечення працюючих об’ємом повітря та площею в

відділі не дотриманий.

Передбачено два вікна розмірами (довжина 1,4 м., висота 1,5 м.). У

приміщенні розташовано 6 комп’ютерів. Напруга джерела живлення

комп’ютерів у приміщенні − 220 В. У приміщенні розміщені 7 письмових

столів, одна шафа для зберігання документів. За небезпекою ураження

електричним струмом приміщення відділу належить до приміщень без

підвищеної небезпеки ураження електричним струмом працюючих.

Відповідно до типових норм належності вогнегасників НАПБ

Б.03.001−2004 для приміщення відділу програмного забезпечення (так як в

приміщенні наявні комп’ютери) доцільно обрати два вуглекислотних

вогнегасника ВВК−3,5, а тип пожежної сигналізації – комбінований

автоматичний пожежний сповіщувач.

Планування приміщення відділу наведено на рисунку 5.1.

Page 57: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

57

Рисунок 5.1 – Планування приміщення

де: 1 – шафа;

2 – робочі місця (столи);

3 – персональні комп’ютери;

4 – дверний отвір;

5 – вікна (розмір вікна 1,4×1,5 м.).

5.2 Аналіз умов праці в приміщенні

В таблиці 5.2 наведено початкові дані метеорологічного аналізу умов

на робочому місці.

2 3

3

3

3

1

3 2

2

2

2

2

4

3,2 м

1,4

м

1,4

м

4,8

м

5

5

1,55 м

3 2

2,7 м

Page 58: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

58

Таблиця 5.2 – Вихідні дані для аналізу метеорологічних умов на робочому

місці

Категорія

робіт

Пер

іод

року

Роб

оч

е м

ісц

е

(пост

ійн

е (П

,

неп

ост

ійн

е,

Н)

Тем

пер

атура,

С0

Від

носн

а

вологі

сть, %

Шви

дкіс

ть

руху п

овіт

ря,

м/с

Концентрація шкідливих речовин в

повітрі робочої зони: оксид вуглецю (во),

озон (о), оксид азоту (оа), формальдегід

(ф) мг/м3

во о оа ф

Легка Іа Холодний П 25 45 0,4 31 0,08 8,3 0,32

Згідно санітарних норм мікроклімату виробничих приміщень ДСН

3.3.6.042−99 [15] для робіт легка Іа встановлено такі норми: оптимальна

температура – становити 22-24 ºС, допустима – 21-25 ºС; оптимальна

відносна вологість – 40-60%, допустима – не більше 75%; оптимальна

швидкість руху повітря – не більше 0,1 м/с, допустима – не більше 0,1 м/с;

концентрація оксиду вуглецю – не більше 20 мг/м3, озону – не більше 0,1

мг/м3, оксиду азоту – не більше 2 мг/м3, формальдегіду – не більше 0,5 мг/м3.

Проведемо порівняння фактичних та нормативних даних: температура

повітря є в допустимих межах; відносна вологість є оптимальною; швидкість

руху повітря є високою; концентрація оксиду вуглецю є високою;

концентрація озону відповідає нормам; концентрація оксиду азоту є високою;

концентрація формальдегіду відповідає нормам.

Виявлені невідповідності показників нормативам потрібно усунути.

Проведемо дослідження достатності природного освітлення.

Вихідні дані: Відношення відстані між протилежними будівлями до

висоти карнизу протилежного будинку – 0,4 м. Вид світлопропускаючого

матеріалу - скло віконне листове подвійне. Вид віконної рами – дерев’яні

одинарні. Сонцезахисні пристрої – горизонтальні козирки (кут не більше 30

ºС). Стан стелі – бетонна чиста. Стан стін – свіжопобілені з вікнами без штор.

Стан підлоги - колір підлоги зелений. Характеристика зорової роботи –

робота середньої точності. Місто розташування приміщення – Вінниця.

Page 59: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

59

Для дослідження достатності природнього освітлення наведемо схему

приміщення відділу програмного забезпечення (рисунок 5.2, 5.3).

Нормоване значення КПО беремо з ДБН В.2.5−28−2006 «Природне і

штучне освітлення» [16,17] (приймаємо роботу середньої точності). Тоді

КПО буде становити 1,5. Орієнтація світлових прорізів за сторонами

горизонту (приймаємо, що вікна виходять на північний схід). Тоді нормоване

значення КПО складе [16]:

еN = 1,5 · 0,9 = 1,35

Для робочих місць, де застосовують ЕОМ, значення КПО має

становити не менше 1,5%.

Для визначення достатності природного освітлення розраховуємо

фактичне значення КПО за формулою 5.1 [16]:

(5.1)

де Sв – площа усіх вікон у приміщенні;

Sn – площа підлоги приміщення;

τз – загальний коефіцієнт світлопроникності віконного прорізу;

r1 − коефіцієнт, який враховує відбиття світла від внутрішніх поверхонь

приміщення;

ŋв − світлова характеристика вікна;

Кбуд − коефіцієнт, що враховує затемнення вікон іншими будинками;

Кз − коефіцієнт запасу.

Площа всіх вікон у приміщенні становить – Sв=1,4·1,5·2= 4,2 м2.

Площа підлоги приміщення Sh=4,8·3,2=15,36 м2.

Загальний коефіцієнт світлопроникності віконного прорізу (τз)

розраховуємо за формулою 5.2 [16]:

Page 60: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

60

(5.2)

де τ1 – коефіцієнт світло пропускання матеріалу (τ1=0,8);

τ2 – коефіцієнт, що враховує втрати світла у віконній рамі (τ2=0,75);

τ3 – коефіцієнт, що враховує втрати світла у несучих конструкціях (при

боковому освітленні τ3 = 1)

τ4 – коефіцієнт, що враховує втрати світла у сонцезахисних пристроях

(τ4=0,8);

τ5 – коефіцієнт, що враховує втрати світла у захисній сітці, яка

встановлюється під ліхтарями (приймається рівним 1).

Розрахуємо світлову характеристику вікна (ŋв). Відношення довжини

приміщення (L) до його глибини (В) = 4,8/3,2 = 1,5. Відношення глибини

приміщення (В) до висоти від рівня робочої поверхні до верхнього краю

вікна (h) = 3,2/1,5 = 2,13. Таким чином, ŋв = 13.

Приймаємо в розрахунок те, що біля адміністративного будинку є

будинки на відстані 0,4 м, тоді Кбуд = 1,7. Приймаємо коефіцієнт запасу 1,3.

Рисунок 5.2 – Схема розрахунку природнього освітлення (вигляд збоку)

0,2 м

2,7 м 0,8 м

3,2 м

1,5 м

2

,5 м

1

Page 61: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

61

Рисунок 5.3 – Схема розрахунку природнього освітлення (вигляд

зверху)

Порахуємо середньозважений коефіцієнт відбиття (ρстелі). Приймаємо,

що стеля бетонна чиста, тоді ρстелі = 0,55; стіни свіжопобілені з вікнами без

штор, тоді ρстін = 0,55); підлога пофарбована в зелений колір, тоді ρпідлоги =

0,41. Площа стін становить – Sстін=(4,8·2,5·2 + 3,2·2,5·2) =40 м2.

Порахувавши значення параметрів, що характеризують приміщення

відділу програмного забезпечення, визначаємо коефіцієнт r1:

2 3

3

3

3

1

3 2

2

2

2

2

4

3,2 м

1,4

м

1,4

м

4,8

м

5

5

1,55 м

2 3

2,7 м

Page 62: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

62

відношення глибини приміщення (В) (до висоти від рівня умовної

робочої поверхні до верху вікна (h): 3,2/1,5 = 2,13;

відношення відстані до розрахункової точки від зовнішньої стіни

(l) до глибини приміщення (B): 2,7/3,2 =0,84;

відношення довжини приміщення (L) до його глибини (B): 4,8/3,2

= 1,5.

Враховуючи наведені вище співвідношення, коефіцієнт, який враховує

відбиття світла від внутрішніх поверхонь приміщення буде дорівнювати r1=

3,1.

Отже, фактичне значення природного освітлення (еф) дорівнює:

Оскільки фактичне значення природного освітлення відповідає

нормативу (1,35 (1,5)), тому природне освітлення в приміщенні покращувати

не потрібно.

Проведемо оцінювання ефективності штучного освітлення.

Для освітлення відділу програмного забезпечення застосовуються

лампи розжарювання потужністю 80 Вт. Система освітлення − загальна.

Отже, нормоване значення освітленості повинне становити не менше 300

люкс (ДБН В. 2. 5−28−2006) [16,17].

Схема розміщення світильників у відділі наведена на рисунку 5.4.

Page 63: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

63

Рисунок 5.4 – Схема розміщення світильників

Розрахуємо фактичне значення освітлення (Еф) за формулою 5.3 [16]:

(5.3)

де Fл – світловий потік однієї лампи, лм;

ηв – коефіцієнт використання світлового потоку. Для світильників, які

використовуються в адміністративних будівлях для традиційних розмірів

приміщення і кольорового оздоблення, може набувати значення в межах ηв =

0,4 − 0,6;

N – кількість світильників у приміщенні, яке досліджується, шт.;

n – кількість ламп у кожному світильнику, шт.;

S – площа приміщення, м2;

k – коефіцієнт запасу.

0,9 м 0,4 м

0,9 м

0,4 м

0,4 м 0,4 м

3,2 м

4,8

м

0,6

5 м

0,6

0,6

5 м

1 м

0,6

5 м

Page 64: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

64

z – коефіцієнт нерівномірності освітлення: для ламп розжарювання z =

1,15; для люмінесцентних ламп z = 1,1.

Розраховуємо значення світлового потоку (Fл) для ламп розжарювання

потужністю 80 Вт. Згідно таблиці вибираємо тип лампи – БК 215-225-100

(світловий потік – 1450 лм).

Коефіцієнт використання світлового потоку (ŋВ). Приймаємо середнє

його значення 0,5 ((0,4+0,6) /2).

Кількість світильників згідно умов задачі 5 штук.

Кількість ламп у світильнику згідно умов задачі 5 штука.

Площа приміщення (S = 15,36 м2).

Коефіцієнт запасу ( К = 1,3).

Коефіцієнт нерівномірності освітлення (Z = 1,15).

Таким чином, фактичне значення штучного освітлення буде складати:

Отже, фактичне значення штучного освітлення значно перевищує

норми (300 - 500 < 789,42 люкс). Це означає що освітлення надмірне, тому

потребує коригувань.

5.3 Розробка заходів щодо поліпшення умов праці

Відповідно до здійснених розрахунків та виявлених недоліків в роботі в

таблиці 5.3 наведено перелік заходів щодо покращення умов праці на

робочому місці.

Page 65: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

65

Таблиця 5.3 - Розробка заходів покращення стану охорони та умов праці

№ п/п Виявлені недоліки Заходи покращення умов праці

1

Не дотримано нормативу

забезпечення працюючих

площею та об’ємом

повітря

Потрібно зменшити кількість працівників в

приміщенні.

2 Висока швидкість руху

повітря

Не залишати відкритими двері та кватирки під час

провітрювання.

3

Високі концентрації

оксиду вуглецю та оксиду

азоту

Забезпечити належну роботу вентиляції та вчасне

провітрювання приміщення відділу.

4 Надмірність штучного

освітлення

Найефективнішим заходом буде зменшення кількості

ламп у світильнику мінімум до 3 штук.

Реалізація даних рекомендацій дозволить покращити умови праці в

відділі програмного забезпечення та привести їх у відповідність до

встановлених норм. Це сприятиме підвищенню продуктивності праці та

допоможе знизити втомлюваність у працівників.

5.4 Висновки

В ході виконання теоретичної частини роботи було наведено

характеристику професії «Менеджер (управитель) систем з інформаційної

безпеки)» та вибрано код професії з Національного класифікатора професій.

Обрана професія належить до 1 розділу «Законодавці, вищі державні

службовці, керівники, менеджери (управителі)». Цей розділ щодо

кваліфікації, як ознаки класифікації, є змішаним порівняно з іншими

розділами. Розділ охоплює широке коло професій, пов'язаних із здійсненням

різноманітних функцій управління та керівництва, які в цілому суттєво

відрізняються за своєю складністю та відповідальністю.

Page 66: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

66

У практичній частині роботи було охарактеризовано приміщення, а

саме відділу програмного забезпечення у м. Вінниці, та зображено його

схему планування. Було визначено, що на одного працівника в приміщенні

припадає 2,19 (м2/ос.) робочої площі та 5,49 м3 об’єму, і це не відповідає

нормативам. Для приміщення відділу (так як в приміщенні наявні

комп’ютери) запропоновано обрати два вуглекислотних вогнегасника

ВВК−3,5, а тип пожежної сигналізації – комбінований автоматичний

пожежний сповіщувач.

Проведений аналіз метеорологічних умов на робочому місці показав,

що нормативним значенням не відповідають швидкість руху повітря,

концентрації оксиду вуглецю та оксиду азоту. Усі показники є вищими

встановлених нормативів.

Також було досліджено рівень природного та штучного освітлення в

приміщенні відділу програмного забезпечення. Було виявлено, що рівень

природнього освітлення достатній (1,35>1,42>1,5). Рівень штучного

освітлення перевищує нормативи (300-500 < 789,42 лк), тому його потрібно

знизити.

Відповідно до здійснених розрахунків та виявлених недоліків наведено

теоретично перелік заходів щодо покращення умов праці на робочому місці в

приміщенні відділу програмного забезпечення.

Page 67: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

67

ВИСНОВКИ

Під час виконання бакалаврської дипломної роботи було розроблено

навчальну комп’ютерну гру з математики для дітей, що розроблена за

концепцією Game Based Learning (GBL), реалізує навчальні процеси,

засновані на ігрових ситуаціях, включає завдання, розроблені за шкільною

програмою, має аудіокерівництво, що дозволяє гравцям молодшого віку

проходити гру без залучення сторонньої допомоги.

У процесі програмної розробки навчальної гри з математики для дітей

було розроблено модель програмного продукту, що включає в себе розробку

схем робочих полів, розробку покрокового алгоритму роботи програми та

розробку методів програмного продукту.

При створення гри було розроблено модулі із окремими завданнями.

Для таких модулів було визначено вимоги до завдань розроблюваного

продукту відповідно до шкільної навчальної програми з дисципліни

«Математика».

Було проведено варіантний аналіз та обґрунтування вибору

програмного забезпечення для реалізації розроблюваного програмного

засобу. Розроблено інтерфейс власного програмного продукту, попередньо

зробивши аналіз та обґрунтування вибору інтерфейсу. Для можливості

самостійного проходження гри гравцями молодшого віку було реалізовано

аудіокерівництво. Для зацікавленості гравців придумано сюжет гри та

розроблено дизайн діалогових вікон, насичений яскравими кольорами, що

поліпшує емоційних стан гравців. Задля проходження гри у декілька етапі та

декількома гравцями було реалізовано можливість збереження поточної гри

та початку нової гри новим гравцем.

Також було проведено детальне тестування розробленого програмного

забезпечення. Окремо протестовані модулі програми із завданнями та

взаємодія користувача з програмою.

Page 68: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

68

В ході виконання теоретичної частини роботи з розділу «Охорона

праці» було наведено характеристику професії «Менеджер (управитель)

систем з інформаційної безпеки)» та вибрано код професії з Національного

класифікатора професій. У практичній частині роботи було охарактеризовано

приміщення, а саме відділу програмного забезпечення у м. Вінниці, та

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

на робочому місці. Також було досліджено рівень природного та штучного

освітлення в приміщенні відділу програмного забезпечення.

Результати роботи опубліковані в двох наукових публікаціях [2, 3].

Також присутнє свідоцтво про реєстрацію авторського права [4]. Робота

виконана на замовлення закладу «Загальноосвітня школа І-ІІІ ступенів №15

Вінницької міської ради», що підтверджує акт впровадження.

Page 69: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

69

ПЕРЕЛІК ПОСИЛАНЬ

1. Бевз С.В. Класифікація та порівняльний аналіз засобів реалізації

сучасних ігрових програм / С.В. Бевз, Т.В. Савальчук, А.М. Слюсар. –

Науковий журнал «Вісник Хмельницького національного

університету». Хмельницький, – 2011. – С. 238-242.

2. Білоконна К.В. Принципи реалізації ігрових програм // К. В. Білоконна –

Електронне наукове видання матеріалів конференції «XLII Регіональна

науково-технічна конференція професорсько-викладацького складу,

співробітників та студентів університету з участю працівників науково-

дослідних організацій та інженерно-технічних працівників підприємств м.

Вінниці та області» – conf.vntu.edu.ua/alvntu/2013/initki/txt/bilokonna.pdf.

3. Білоконна К. В. Принципи реалізації навчальних ігрових програм // К.

В. Білоконна, С. М. Бурбело, С. А. Яремко. – Вісник Хмельницького

національного університету. Технічні науки. – Хмельницький 2013. –

№ 6. – С. 218-223.

4. Білоконна К.В., Войтко В.В., Бевз С.В. Комп'ютерна програма

"Комп’ютерна програма динамічної ідентифікації елементів керування

шляхом моніторингу процесів візуалізації результатів роботи" //

Свідоцтво про реєстрацію авторського права на твір № 54949, від

23.05.2014.- 2014.- Свідоцтва про державну реєстрацію авторського права

на твір.

5. Новая классификация компьютерных игр [Електронний ресурс]:

Psystat.at.ua – Статистика в психологии и педагогике – Режим доступу:

http://psystat.at.ua/publ/4-1-0-30.

6. Алексей Поляков. Методы и алгоритмы компьютерной графики в

примерах / Алексей Поляков , – Санкт-Петербург, 2002.

7. Седжвик “Алгоритмы на С++” / А. В. Седжвик, – Вильямс, 2011 г.,

1026 стр.

Page 70: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

70

8. Страуструп “Программирование: принципы использования C++” / М.

Эллис, Б.Страструп, – Диалектика-Вильямс, 2010 г., 1248 стр..

9. Страструп. Справочное руководство по языку С++ с комментариями /

М. Эллис, Б.Страструп, – Москва: Мир, 1992.

10. Електронна стаття «Інтерфейс користувача» [Електронний ресурс]:

http://uk.wikipedia.org/wiki/Інтерфейс_користувача

11. Фолк Дж. Тестування програмного забезпечення / С. Канер., Дж. Фолк

– М.: ДиаСофт, 2001. – 538 С.

12. Національний класифікатор професій. Державний комітет України з

питань технічного регулювання та споживчої політики (ДК 003:2010)

від 28.07.2010 року № 327. [Електронний ресурс]. – Режим доступу :

http//www.kadrovik01.com.ua.

13. СНиП 2.09.04 – 87 Здания и сооружения. Административные и

бытовые здания. [Електронний ресурс]. – Режим доступу : http//

www.document.ua/docs/tdoc429.php.

14. НПОАП 0.00-1.28-10 Правила охорони праці під час експлуатації

електронно-обчислювальних машин. Режим доступу :

http//www.library.univ.kiev.ua.

15. ДСН 3.3.6.042-99 Санітарні норми мікроклімату виробничих

приміщень [Електронний ресурс]. – Режим доступу :

http//www.dnaop.com.

16. Методичні вказівки до виконання контрольної роботи з дисципліни

«Основи охорони праці» студентів напрямів підготовки 0306 −

«Менеджмент» та 0401 «Екологія, охорона навколишнього

середовища» −, укладач: доц. кафедри БЖД, к.е.н. Заюков І. В.,

Вінниця, ВНТУ, 2014.

17. ДБН В.2.5-28-2006 «Природне і штучне освітлення». [Електронний

ресурс]. – Режим доступу : http//www.dnaop.com.

Page 71: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

71

ДОДАТОК А

Акт впровадження

Page 72: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

72

Page 73: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

73

ДОДАТОК Б

Лістинг модуля програми MainWindowVM.cs

using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Timers; using System.Windows.Input; using System.Media; namespace MashaIMedved { public class MainWindowVM : NotifyPropertyChangedImplementation { public Game Game { get; set; } private SoundPlayer audio; #region DataContexts private Step1ViewModel step1DataContext; public Step1ViewModel Step1DataContext { get { return step1DataContext; } set { step1DataContext = value; NotifyPropertyChanged("Step1DataContext"); } } private Step2ViewModel step2DataContext; public Step2ViewModel Step2DataContext { get { return step2DataContext; } set { step2DataContext = value; NotifyPropertyChanged("Step2DataContext"); } } private Step3ViewModel step3DataContext; public Step3ViewModel Step3DataContext { get { return step3DataContext; } set { step3DataContext = value; NotifyPropertyChanged("Step3DataContext"); } } private Step4ViewModel step4DataContext; public Step4ViewModel Step4DataContext { get { return step4DataContext; }

Page 74: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

74

set { step4DataContext = value; NotifyPropertyChanged("Step4DataContext"); } } private Step5ViewModel step5DataContext; public Step5ViewModel Step5DataContext { get { return step5DataContext; } set { step5DataContext = value; NotifyPropertyChanged("Step5DataContext"); } } #endregion public MainWindowVM() { Game = new Game(); audio = new SoundPlayer(); MainMapVisible = true; Step1WindowVisible = false; Step2WindowVisible = false; Step3WindowVisible = false; Step4WindowVisible = false; Step5WindowVisible = false; PlaySound(Properties.Resources.entry); MapCommand = new DelegateCommand(ActivateMap); Step1DataContext = new Step1ViewModel(this); Step1Command = new DelegateCommand(ActivateStep1, (o) => { return

Game.CurrentStep >= 1; }); Step2DataContext = new Step2ViewModel(this); Step2Command = new DelegateCommand(ActivateStep2, (o) => { return

Game.CurrentStep >= 2; }); Step3DataContext = new Step3ViewModel(this); Step3Command = new DelegateCommand(ActivateStep3, (o) => { return

Game.CurrentStep >= 3; }); Step4DataContext = new Step4ViewModel(this); Step4Command = new DelegateCommand(ActivateStep4, (o) => { return

Game.CurrentStep >= 4; }); Step5DataContext = new Step5ViewModel(this); Step5Command = new DelegateCommand(ActivateStep5, (o) => { return

Game.CurrentStep >= 5; }); Step6Command = new DelegateCommand(ActivateStep6, (o) => { return

Game.CurrentStep >= 6; }); } #region Activate public void ActivateMap(object obj)

Page 75: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

75

{ MainMapVisible = true; Step1WindowVisible = false; Step2WindowVisible = false; Step3WindowVisible = false; Step4WindowVisible = false; Step5WindowVisible = false; Step6WindowVisible = false; } private void ActivateStep1(object obj) { Step1WindowVisible = true; MainMapVisible = false; PlaySound(Properties.Resources.audioState1_1); } private void ActivateStep2(object obj) { Step2WindowVisible = true; MainMapVisible = false; PlaySound(Properties.Resources.audioState2_1); } private void ActivateStep3(object obj) { Step3WindowVisible = true; MainMapVisible = false; PlaySound(Properties.Resources.audioState3_1); } private void ActivateStep4(object obj) { Step4WindowVisible = true; MainMapVisible = false; PlaySound(Properties.Resources.audioState4_1); } private void ActivateStep5(object obj) { Step5WindowVisible = true; MainMapVisible = false; PlaySound(Properties.Resources.audioState5_1); } private void ActivateStep6(object obj) { Step6WindowVisible = true; MainMapVisible = false; PlaySound(Properties.Resources.audioState6_1); } #endregion #region WindowVisible private bool mainMapVisible; public bool MainMapVisible { get { return mainMapVisible; } set { mainMapVisible = value; NotifyPropertyChanged("MainMapVisible");

Page 76: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

76

} } private bool step1WindowVisible; public bool Step1WindowVisible { get { return step1WindowVisible; } set { step1WindowVisible = value; NotifyPropertyChanged("Step1WindowVisible"); } } private bool step2WindowVisible; public bool Step2WindowVisible { get { return step2WindowVisible; } set { step2WindowVisible = value; NotifyPropertyChanged("Step2WindowVisible"); } } private bool step3WindowVisible; public bool Step3WindowVisible { get { return step3WindowVisible; } set { step3WindowVisible = value; NotifyPropertyChanged("Step3WindowVisible"); } } private bool step4WindowVisible; public bool Step4WindowVisible { get { return step4WindowVisible; } set { step4WindowVisible = value; NotifyPropertyChanged("Step4WindowVisible"); } } private bool step5WindowVisible; public bool Step5WindowVisible { get { return step5WindowVisible; } set { step5WindowVisible = value; NotifyPropertyChanged("Step5WindowVisible"); } } private bool step6WindowVisible; public bool Step6WindowVisible { get { return step6WindowVisible; }

Page 77: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

77

set { step6WindowVisible = value; NotifyPropertyChanged("Step6WindowVisible"); } } #endregion #region ErrorMessage public void ErrorVoice() { PlaySound(ChooseErrorVoice()); } #endregion public void PlaySound(System.IO.UnmanagedMemoryStream stream) { audio.Stream = stream; audio.Play(); } private System.IO.UnmanagedMemoryStream ChooseErrorVoice() { Random random = new Random(DateTime.Now.Second); int randError; randError = random.Next(1, 5); switch (randError) { case 1: randError = 0; return Properties.Resources.error1; case 2: randError = 0; return Properties.Resources.error2; case 3: randError = 0; return Properties.Resources.error3; case 4: randError = 0; return Properties.Resources.error4; case 5: randError = 0; return Properties.Resources.error5; default: return Properties.Resources.error1; } } #region Commands public ICommand MapCommand { get; set; } public DelegateCommand Step1Command { get; set; } public DelegateCommand Step2Command { get; set; } public DelegateCommand Step3Command { get; set; } public DelegateCommand Step4Command { get; set; } public DelegateCommand Step5Command { get; set; } public DelegateCommand Step6Command { get; set; } #endregion } }

Page 78: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

78

ДОДАТОК В

Лістинг модуля програми MainWindow.xaml

<Window

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:local="clr-namespace:MashaIMedved"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc="http://schemas.openxmlformats.org/markup-

compatibility/2006"

mc:Ignorable="d"

x:Class="MashaIMedved.MainWindow"

Title="MainWindow" Height="508" Width="800">

<Window.Resources>

<local:MainWindowVM x:Key="MainWindowVM"/>

<BooleanToVisibilityConverter x:Key="BoolToVisConverter" />

</Window.Resources>

<Grid x:Name="mainWindow" DataContext="{Binding

Source={StaticResource MainWindowVM}}">

<local:MainMapControl Visibility="{Binding MainMapVisible,

Converter={StaticResource BoolToVisConverter}}"/>

<local:Step1Control Visibility="{Binding

Path=Step1WindowVisible, Converter={StaticResource

BoolToVisConverter}}"/>

<local:Step2Control Visibility="{Binding

Path=Step2WindowVisible, Converter={StaticResource

BoolToVisConverter}}"/>

<local:Step3Control Visibility="{Binding

Path=Step3WindowVisible, Converter={StaticResource

BoolToVisConverter}}"/>

<local:Step4Control Visibility="{Binding

Path=Step4WindowVisible, Converter={StaticResource

BoolToVisConverter}}"/>

Page 79: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

79

<local:Step5Control Visibility="{Binding

Path=Step5WindowVisible, Converter={StaticResource

BoolToVisConverter}}"/>

<local:Step6Control Visibility="{Binding

Path=Step6WindowVisible, Converter={StaticResource

BoolToVisConverter}}"/>

</Grid>

</Window>

Page 80: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

80

ДОДАТОК Г

Лістинг модуля програми Step1Model.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; using System.Windows.Documents; using System.Collections.ObjectModel; namespace MashaIMedved { public class Step1Model { private int level = 0; FigureType figureType; private const int numberOfLevels = 3; public BoardScribbledFigures BoardScribbledFigures {get; set;} public BoardSelectedFigures BoardSelectedFigures {get; set;} public Step1Model() { figureType = ChooseFigureType(); BoardScribbledFigures = new BoardScribbledFigures(figureType); BoardSelectedFigures = new BoardSelectedFigures(figureType); } private FigureType ChooseFigureType() { switch (level) { case 0: return FigureType.Circle; case 1: return FigureType.Square; case 2: return FigureType.Triangle; default: return FigureType.Circle; } } public void OnFigureSelected(object obj) { Figure figure = (Figure)obj; if (figureType == figure.Type) { BoardSelectedFigures.ListSelectedFigures.Add(figure); figure.FigureIsEnabled = false; BoardScribbledFigures.ListScribbledFigures.Remove(figure); if (BoardSelectedFigures.ListSelectedFigures.Count == 5) { if (MessageEvent != null) { MessageEvent(this, true); }

Page 81: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

81

} } else { if (MessageEvent != null) { MessageEvent(this, false); } } } public void StartNextLevel() { level++; if (level < numberOfLevels) { BoardSelectedFigures.ListSelectedFigures.Clear(); BoardScribbledFigures.ListScribbledFigures.Clear(); figureType = ChooseFigureType(); BoardScribbledFigures.CreateFiguresByType(figureType); BoardSelectedFigures.AddFirstFigureByType(figureType); if (NewLevelStarted != null) { NewLevelStarted(this, level); } } else { if (StepIsOver != null) { StepIsOver(this, null); } } } public event EventHandler<bool> MessageEvent; public event EventHandler<int> NewLevelStarted; public event EventHandler StepIsOver; } }

Page 82: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

82

ДОДАТОК Ґ

Лістинг модуля програми Step1ViewModel.cs

using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Timers; using System.Windows.Controls; using System.Windows.Input; namespace MashaIMedved { public class Step1ViewModel : NotifyPropertyChangedImplementation { MainWindowVM mainWindowVM; Step1Model step1Model; public ObservableCollection<Figure> SelectedFigures { get { if (step1Model.BoardSelectedFigures != null) { return step1Model.BoardSelectedFigures.ListSelectedFigures; } else return new ObservableCollection<Figure>(); } set { } } public ObservableCollection<Figure> ScribbledFigures { get { if (step1Model.BoardScribbledFigures != null) { return step1Model.BoardScribbledFigures.ListScribbledFigures; } else return new ObservableCollection<Figure>(); } set { NotifyPropertyChanged("ScribbledFigures"); } } public Step1ViewModel(MainWindowVM mainWindowVM) { this.mainWindowVM = mainWindowVM; step1Model = new Step1Model(); SelectedCommand = new DelegateCommand(step1Model.OnFigureSelected); step1Model.MessageEvent += step1Model_MessageEvent; step1Model.NewLevelStarted += step1Model_NewLevelStarted;

Page 83: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

83

step1Model.StepIsOver += step1Model_StepIsOver; } void step1Model_StepIsOver(object sender, EventArgs e) { mainWindowVM.PlaySound(Properties.Resources.audioState1_over); mainWindowVM.ActivateMap(null); mainWindowVM.Game.CurrentStep++; mainWindowVM.Step2Command.RaiseCanExecuteChanged(); } void step1Model_NewLevelStarted(object sender, int level) { NotifyPropertyChanged("ScribbledFigures"); switch (level) { case 1: mainWindowVM.PlaySound(Properties.Resources.audioState1_2); break; case 2: mainWindowVM.PlaySound(Properties.Resources.audioState1_3); break; } } void step1Model_MessageEvent(object sender, bool isFinished) { mainWindowVM.ErrorVoice(); if (isFinished == true) { step1Model.StartNextLevel(); } } public ICommand SelectedCommand { get; set; } } }

Page 84: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

84

ДОДАТОК Д

Лістинг модуля програми App.xaml

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing" mc:Ignorable="d" x:Class="MashaIMedved.App" StartupUri="MainWindow.xaml"> <Application.Resources> <!-- Resources scoped at the Application level should be defined here. --> <Style x:Key="StepButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Ellipse x:Name="Ellipse" StrokeThickness="0"> <Ellipse.Fill> <ImageBrush

ImageSource="pack://application:,,,/Resources/StateButtonStyle.png" Stretch="UniformToFill">

<ImageBrush.RelativeTransform>

<TransformGroup> <ScaleTransform

CenterY="0.5" CenterX="0.5" ScaleX="1.35" ScaleY="1.35"/> <SkewTransform

CenterY="0.5" CenterX="0.5" AngleX="-7"/>

<RotateTransform CenterY="0.5" CenterX="0.5" Angle="-2"/>

<TranslateTransform/> </TransformGroup>

</ImageBrush.RelativeTransform> </ImageBrush> </Ellipse.Fill> </Ellipse> <Ellipse x:Name="DisabledEllipse"

StrokeThickness="0" OpacityMask="#FFB6B6B6" Opacity="0"> <Ellipse.Fill> <ImageBrush

ImageSource="Resources/StateButtonStyleDisabled.png" Stretch="UniformToFill">

<ImageBrush.RelativeTransform> <TransformGroup> <ScaleTransform

CenterY="0.5" CenterX="0.5" ScaleX="1.35" ScaleY="1.35"/> <SkewTransform

CenterY="0.5" CenterX="0.5" AngleX="-7"/>

<RotateTransform CenterY="0.5" CenterX="0.5" Angle="-2"/>

<TranslateTransform/>

Page 85: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

85

</TransformGroup>

</ImageBrush.RelativeTransform> </ImageBrush> </Ellipse.Fill> </Ellipse> <Ellipse x:Name="glassCube" StrokeThickness="0"

RenderTransformOrigin="0.5,0.5" Opacity="0" d:IsHidden="True"> <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX="1.3"

ScaleY="1.1"/> <SkewTransform AngleX="-

25"/> <RotateTransform/> <TranslateTransform/> </TransformGroup> </Ellipse.RenderTransform> <Ellipse.Fill> <ImageBrush

ImageSource="Resources/StateButtonStyle.png" Stretch="UniformToFill">

<ImageBrush.RelativeTransform> <TransformGroup> <ScaleTransform

CenterY="0.5" CenterX="0.5" ScaleX="1.35" ScaleY="1.35"/> <SkewTransform

CenterY="0.5" CenterX="0.5" AngleX="-7"/>

<RotateTransform CenterY="0.5" CenterX="0.5" Angle="-2"/>

<TranslateTransform/> </TransformGroup>

</ImageBrush.RelativeTransform> </ImageBrush> </Ellipse.Fill> </Ellipse> <Ellipse x:Name="glassCube_Copy"

StrokeThickness="0" RenderTransformOrigin="0.5,0.5" Opacity="0" d:IsHidden="True"> <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleY="-

1.1" ScaleX="-1.3"/> <SkewTransform AngleY="0"

AngleX="-25"/> <RotateTransform Angle="0"/> <TranslateTransform/> </TransformGroup> </Ellipse.RenderTransform> <Ellipse.Fill> <ImageBrush

ImageSource="Resources/StateButtonStyle.png" Stretch="UniformToFill">

<ImageBrush.RelativeTransform> <TransformGroup> <ScaleTransform

CenterY="0.5" CenterX="0.5" ScaleX="1.35" ScaleY="1.35"/> <SkewTransform

CenterY="0.5" CenterX="0.5" AngleX="-7"/>

<RotateTransform CenterY="0.5" CenterX="0.5" Angle="-2"/>

Page 86: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

86

<TranslateTransform/>

</TransformGroup>

</ImageBrush.RelativeTransform> </ImageBrush> </Ellipse.Fill> </Ellipse> <Viewbox> <ContentPresenter

x:Name="myContentPresenter" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" HorizontalAlignment="Center" VerticalAlignment="Center"/>

</Viewbox> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsDefault" Value="False"/> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver"

Value="True"/> <Condition Property="IsEnabled"

Value="True"/> </MultiTrigger.Conditions> <Setter Property="Opacity"

TargetName="glassCube" Value="1"/> <Setter Property="Stroke"

TargetName="glassCube" Value="#FFFFF8CE"/> </MultiTrigger> <Trigger Property="IsPressed" Value="True"> <Setter Property="Opacity"

TargetName="glassCube_Copy" Value="1"/> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Opacity"

TargetName="DisabledEllipse" Value="1"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="FontFamily" Value="Monplesir script"/> <Setter Property="FontSize" Value="30"/> <Setter Property="Foreground" Value="#6f0800" /> </Style> <Style x:Key="CircleButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Ellipse HorizontalAlignment="Stretch"

VerticalAlignment="Stretch" Fill="White" Opacity="0"/> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="RectangleButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}">

Page 87: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

87

<Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Fill="White" Opacity="0"/>

</ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="SquareButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Rectangle HorizontalAlignment="Stretch"

VerticalAlignment="Stretch" Fill="White" Opacity="0"/> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="TriangleButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <ed:RegularPolygon InnerRadius="1" PointCount="3" Fill="White"

Opacity="0"/> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="HexagonButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <ed:RegularPolygon InnerRadius="1" PointCount="6" Fill="White"

Opacity="0"/> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="StarButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <ed:RegularPolygon InnerRadius="0.47211" PointCount="5"

Fill="White" Opacity="0"/> </ControlTemplate> </Setter.Value> </Setter> </Style> <LinearGradientBrush x:Key="MyStrokeBrush1" EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FFFFF79A" Offset="0"/> <GradientStop Color="#FF5F5C2E" Offset="1"/> </LinearGradientBrush> <Style x:Key="BookBigButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/BooksBig.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content=""/>

Page 88: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

88

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="BookMediumButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/BooksMedium.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content=""/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="BookSmallButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/BooksSmall.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="GlobeBigButton" TargetType="{x:Type Button}"> <Setter Property="Template">

Page 89: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

89

<Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/GlobeBig.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="GlobeMediumButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/GlobeMedium.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="GlobeSmallButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/GlobeSmall.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/>

Page 90: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

90

<Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="PencilMediumButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/PencilMedium.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="PencilThickButton" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/PencilThick.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="forState4_6Button" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid>

Page 91: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

91

<Image Source="/MashaIMedved;component/Resources/forState4_6.png" Stretch="Fill"/>

<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="forState4_7Button" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/forState4_7.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="Paper1Button" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid> <Image

Source="/MashaIMedved;component/Resources/Paper1.png" Stretch="Fill"/> <ContentPresenter

HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>

</Grid> <ControlTemplate.Triggers> <Trigger Property="IsFocused" Value="True"/> <Trigger Property="IsDefaulted" Value="True"/> <Trigger Property="IsMouseOver" Value="True"/> <Trigger Property="IsPressed" Value="True"/> <Trigger Property="IsEnabled" Value="False"/>

Page 92: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

92

</ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </Application.Resources> </Application>

Page 93: Пояснювальна записка - ВНТУinmad.vntu.edu.ua/portal/static/51C80992-D68A-4B6C-B45A-902DC0829995.pdfкафедри БЖД 7. ... персонаж, яким грає

93

ДОДАТОК Е

ІЛЮСТРАТИВНИЙ МАТЕРІАЛ ДО ЗАХИСТУ БАКАЛАВРСЬКОЇ РОБОТИ

Завідувач кафедри ПЗ, д.т.н., професор _____________ А. М. Пєтух

Науковий керівник, к.т.н., доцент _________________ В. В. Войтко

Рецензент, к.т.н., професор ________________ В. І. Месюра

Виконавець, студент групи 1ПІ-10б ___________________ К. В. Білоконна