Логічна гра 'Light Maze'

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    366,56 Кб
  • Опубликовано:
    2015-06-08
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Логічна гра 'Light Maze'

Харківський патентно-комп’ютерний коледж

Відділення „Розробка програмного забезпечення”

Предметно-циклова комісія „Програмування”










Дипломний проект молодшого спеціаліста

на тему «Логічна гра «Light Maze»»

ДП5.05010301.11.15.00


Виконав студент IV курсу групи П-11 спеціальності 5.05010301

“Розробка програмного забезпечення”

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

«Програмна інженерія»

Макаров О.С.



Харків - 2015 року

Реферат

Об’єкт дослідження - логічна гра з елементами розвитку зорової пам’яті «Light Maze»

Мета дослідження - розробити логічну гру з компонентами розвитку зорової пам’яті, яка працює під ОС Windows та Android.

У технічному завданні визначені вимоги до дипломного проекту і надійності. Вказано призначення розробки, необхідні функціональні характеристики та вимоги до вихідних та вхідних даних. Визначені необхідні умови експлуатації та параметри технічних засобів. Описані етапи розробки програмного продукту, порядок контролю та приймання.

У першому розділі пояснювальної записки проаналізовано існуючі технології для створення ігор та різноманітність мов програмування. А також обґрунтовано вибір технологій та мов програмування для розробки логічної гри «Light Maze»

У другому розділі пояснювальної записки розглянуто опис алгоритму функціонування програми, а також опис розробки та компонування елементів на платформі Unity3D та UML діаграми.

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

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

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

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

Ключеві слова: ЛОГІЧНА ГРА, UNITY3D, КОМП’ЮТЕРНІ ІГРИ.

Abstract

object of research is logical game with development elements of visual memory named «Light Maze».purpose is - to develop a logical game, which works on Windows and Android, with development elements of visual memory.TOR defined the requirements for the diploma project and reliability. The purpose is specified, also the necessary development functional characteristics and requirements for output and input are shown. The necessary exploitation conditions and parameters of technology are defined. It is also describes the stages of the software, order control and acceptance.first section of the explanatory note analyzes existing technologies to create games and the variety of programming languages. And also it substantiates the choice of technologies and programming languages of the development logical game «Light Maze».second section of the explanatory note descripts the algorithm of the program, the design and layout of elements on the Unity3D platform and UML diagrams.third section of the explanatory note calculates the cost-effectiveness of the development and support of software.fourth section of the explanatory note contains the analysis of compliance with safety when working with PC and working conditions in the workplace in accordance with regulations.results of testing the software are shown in the program and methods of testing.manual operator is a description of the program and message to the operator.: LOGICAL GAME, UNITY3D, COMPUTER GAMES.

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

- Massively multiplayer online role-playing game - жанр онлайнових рольових відеоігор, в якій велика кількість гравців взаємодіє один з одним у віртуальному світі.- Massively Multiplayer Online Game - мережева відеогра, в яку одночасно грає багато гравців.- Multiplayer Online Battle Arena - піджанр відеоігор-стратегій в реальному часі, де гравець контролює тільки одного персонажа в складі однієї з двох протиборчих команд.

ПК - персональний комп’ютер.- Extensible Markup Language - cтандарт побудови мов розмітки.- Graphical user interface - тип інтерфейсу, який дозволяє користувачам взаємодіяти з електронними пристроями через графічні зображення та візуальні вказівки.- Central processing unit - функціональна частина ПК, що призначена для інтерпретації команд.- Graphics Proccesing Unit - окремий пристрій персонального комп'ютера або ігрової приставки, який виконує графічний рендеринг.

ЕПТ - електронно-променева трубка.

ВДТ - відео дисплейний термінал.

ЕОМ - електронна обпилювальна машина.

Вступ

Розробити логічну гру з компонентами розвитку зорової пам’яті, яка працює під ОС Windows та Android.

Підстава для розробки

Основою для розробки є завдання на дипломне проектування, видане Харківським патентно-комп'ютерний коледжем 06 квітня 2015 року. Найменування: «Логічна гра з компонентами розвитку зорової пам’яті». На замовлення Макарової І. В.

Призначення розробки

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

         Вимоги до програмного продукти

.1 Вимоги до функціональних характеристик

Програма повинна працювати в режимі реального часу через функції update, що викликаються один раз за функцією кадру. Програма повинна виконувати наступні дії:

при натисканні на контролюючі клавіші arrows, player буде здійснювати рух в заданому напрямку по лабіринту;

генерація лабіринту алгоритмом Еллєра та запис його окремим компонентом в файл;

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

розташування старту та фінішу у будь-яких місцях даного рівня;

перемикання між сценами програмного забезпечення керуючи простим GUI. Контролюючий процес здійснюється за допомогою миші;

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

.2 Вимоги до надійності

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

.3 Умови експлуатації

Програма може зберігатися на будь-якому носії інформації достатньою для її запису ємністю. Рекомендований тип носія - жорсткий диск. Умови навколишнього середовища повинні відповідати умовам експлуатації цих носіїв, які вказуються в їх технічних характеристиках. При їх недотриманні автор програмного продукту не буде нести відповідальності за коректність роботи програми.

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

Технічні засоби для використання даного програмного продукту повинні включати в себе: ПК з частотою процесора більш ніж 1.2 ггц, RAM 1 гб, графічним відеоадаптером ємністю 512 мб, ОС Windows XP і вище, або мобільний пристрій з частотою процесора більш ніж 1 ггц, RAM 500 мб, ОС Android 2.3.6 і вище.

.5 Вимоги до інформаційної та програмної сумісності

Програма повинна використовувати стандартні елементи управління ОС windows 7 для сумісних з іншими версіями ос цієї родини. Вихідні дані повинні бути написані на мові с#, з використанням сторонніх бібліотек та програмних засобів від unity, дотримуватись державних стандартів на програмний продукт.

Техніко-економічні показники

Можливий термін окупності повинен становити 1-2 роки.

Вартість однієї копії не повинна перевищувати 200 грн.

Стадії та етапи розробки

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

аналіз предметної області задачі;

розробка алгоритму функціонування програми;

розробка та компонування елементів на платформі Unity3D;

програмна реалізація програми;

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

створення документації;

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

Порядок контролю та приймання

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

загальна працездатність програмного продукту;

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

Більш ніж 90% сучасних дітей і безліч дорослих грають у відеоігри, тому безсумнівно на сьогоднішній день розробка комп’ютерних ігор є найбільш розповсюдженою в IT-сфері. Вони є повсюди: web-ігри, flash-ігри: мобільні ігри для смартфонів і планшетів, консольні ігри, глобальні ігри типу MMORPG, MMO, MMOG, MOBA; сервісні ігрові станції, звичайні ігри для ПК і багато іншого. Конструювання якісних комп’ютерних ігор входить у клас найскладніших задач розробки ПЗ в цілому.

Комп'ютерні ігри, як і багато інших явищ в цьому світі, можуть нести в собі різне призначення. Коли справа стосується дорослих, то вони самі в змозі вирішити, потрібні їм ці ігри чи ні. Багатьох комп'ютерні ігри просто рятують, тому що допомагають пережити важкий час (особливо під час хвороби) або стрес, коли поруч нікого з близьких людей немає. Але як бути з дітьми? Чи насправді відеоігри їх розвивають, а якщо це так, то скільки часу їм можна приділяти без шкоди для гармонійного розвитку дітей та підлітків?

А як бути з дітьми? Цим питанням займався ряд науковців, педагогів, психологів та інших фахівців. Більшість з них зійшлися на тому, що комп'ютерні ігри не шкідливі для дітей. В деяких випадках, навіть жорстокі ігри бувають корисні для дітей. Багато ігор розвивають стратегічне, творче, нестандартне мислення, а групові ігри вчать взаємодії між людьми. Однак вони забирають час, який дитина могла б витратити на інші заняття. Тому діти, які занадто захоплюються відеоіграми, витрачають на домашні завдання приблизно на 40% менше часу, ніж це було б потрібно, а на читання - на 30% менше часу. Тому справа батьків - регулювати час, який діти проводять за відеоіграми.

Таким чином, відеоігри можуть бути корисними, а можуть і нашкодити. Якщо діти займаються ними в розумних межах, це сприяє, поряд з іншою їхньою діяльністю, розумовому розвитку і допомагає засвоювати нові навички. Перш за все, дитина набуває і вдосконалює навички роботи з комп'ютером, що стане в нагоді йому при подальшому навчанні. Правильно підібрані комп'ютерні ігри розвивають у дітей мислення, увагу і логіку, пам'ять і здатність приймати рішення. Управління грою покращує координацію рухів дитини. Навчальні ігри допомагають підготувати його до школи. Групові відеоігри вчать терпінню і взаємодії в групі. Деякі ігри розвивають творчу уяву.

Отже, якщо неправильно підходити до розробки комп’ютерних ігор, можна натрапити на наслідки руйнівного характеру, тому необхідно спрямовувати цю енергію в потрібне русло. Саме тому однією з головних задач є розробка продукту, який би вміло поєднував корисні якості і водночас ніс у собі розважальний характер.

1. Теоретичний розділ

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

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

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

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

Стратегії - ігри, що вимагають планування і вироблення певної стратегії для досягнення якоїсь конкретної мети, наприклад, перемоги у військовій операції. Гравець управляє не одним персонажем, а цілим підрозділом, підприємством або навіть всесвітом. Розрізняють покрокові стратегічні ігри, де гравці по черзі роблять ходи, і кожному гравцеві відводиться необмежений або обмежений (залежно від типу і складності гри) час на свій хід, та стратегічні ігри в реальному часі, в яких всі гравці виконують свої дії одночасно, і хід часу не переривається. Щоб здобути перемогу в таких іграх, потрібно мислити на кілька кроків вперед, випереджаючи суперника. Тому Стратегічні ігри розвивають аналітичне мислення на рівні з грою в шахи.

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

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

Головоломка - ігри, метою яких є вирішення логічних завдань, що вимагають від гравця задіяння логіки, стратегії та інтуїції.

Метою мого дипломного проекту є розробка програми, яка б несла, насамперед, розважальний характер, але включала б компоненти розвитку зорової пам’яті. Призначена для людей різних вікових категорію.

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

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

.2 Аналіз технологій та мов програмування

# і Java - дві найзатребуваніші мови, які сильно вплинули на усе сучасне програмування. Обидві мови із збіркою сміття і компіляцією при виконанні. Обидві мови мають C++ подібний синтаксис. Нижче розглянуті схожості і відмінності цих однотипних мов.

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

Обидві мови реалізують принципово однакову модель роботи з динамічними даними: об’єкти створюються динамічно за допомогою конструкції new, середовище виконання відстежує наявність посилань на них, а складальник сміття періодично очищає пам’ять від об’єктів, посилань на які немає.

Для оптимізації збірки сміття специфікації мов і середовищ виконання не містять обмежень на час життя об’єкту після видалення останнього посилання на нього - складальник працює незалежно від виконання програми, тому реальне знищення об’єкту може відбутися у будь-який момент після видалення останнього посилання до завершення роботи програми.

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

І в Java, і в C# є сильні і слабкі посилання на об’єкти. Обидві мови підтримують методи-фіналізатори. Із-за невизначеності моменту видалення об’єкту фіналізатори не можуть використовуватися для звільнення системних ресурсів, зайнятих об’єктом, що вимушує створювати додаткові методи для «очищення» об’єкту і викликати їх явно.# містить в стандартній бібліотеці інтерфейс IDisposable і спеціальну конструкцію using, що гарантує своєчасний виклик методу очищення. В Java подібної конструкції немає і очищення об’єктів може бути виконане тільки уручну.

Обидві мови - об’єктно-орієнтовані, з синтаксисом, успадкованим від C++, але значно переробленим. Код і дані можуть описуватися тільки усередині класів.

Інкапсуляція. В Java модифікатор protected в описі, крім доступу з класів-нащадків, вирішує доступ зі всіх класів, що входять в той же пакет, що і клас-власник. В C# для об’єктів, які повинні бути видні в межах збірки (зразковий аналог пакету Java), введений окремий модифікатор internal, а protected зберігає свій початковий сенс, узятий з C++, - доступ тільки з класів-нащадків. Допускається комбінувати internal і protected - тоді вийде область доступу, відповідна protected в Java[1].

Внутрішні класи. Обидві мови дозволяють визначити клас усередині класу. Внутрішні класи Java мають доступ до нестатичних членів батьківського класу, тобто «знають про this»; крім того, усередині методів можна визначати локальні класи, що мають доступ по читанню до локальних змінних, і безіменні (анонімні) локальні класи, які фактично дозволяють створювати екземпляри об’єктів і інтерфейсів, що перекривають методи свого класу. На цьому механізмі в Java-програмах може будуватися обробка подій. Підхід C# більш нагадує C++. Внутрішні класи в C# мають доступ тільки до статичних членів зовнішнього класу, а для доступу до нестатичних членів потрібно явно указувати екземпляр зовнішнього класу. Локальні внутрішні класи в C# не підтримуються, обробка подій в нім не вимагає таких класів, оскільки будується на інших механізмах.

Методи. В обох мовах методи, по аналогії з C++ - функції, визначені в класі. Тіло методу розташовується усередині опису класу. Підтримуються статичні методи, абстрактні методи. У C# також є явна реалізація методів інтерфейсу, що дозволяє класу реалізовувати методи інтерфейсу окремо від власних методів або давати різні реалізації однойменних методів, що належать двом різним інтерфейсам. В C# примітивні типи (byte, int, double, float, bool і ін.) і структури (struct) передаються по значенню (т.з. значущі типи), решта типів передається по посиланню (т.з. посилальні типи). C# також підтримує явний опис передачі параметрів по посиланню (ключові слова ref і out). При використанні out компілятор контролює наявність в методі привласнення значення. У Java параметри методу передаються тільки по значенню, але оскільки для екземплярів класів передається посилання, ніщо не заважає змінити в методі екземпляр, переданий через параметр.

Примітивні типи. Обидві мови підтримують ідею примітивних типів (які в C# є підмножиною типів-значень - value types ), і обидва для трансляції примітивних типів в об’єктні забезпечують їх автоматичне згортання в об’єкти (boxing) і розгортання (unboxing) (у Java - починаючи з версії 1.5).

У C# є більше примітивних типів, чим у Java, за рахунок беззнакових цілих типів (unsigned), що є парно до всіх знакових, і спеціального типа decimal для високоточних обчислень з фіксованою комою (у Java для цього служать класи java.math.BigInteger і java.math.BigDecimal).

В Java відмовилися від більшості беззнакових типів ради спрощення мови. Одна з відомих проблем з такими типами - складність визначення типу результату арифметичних операцій над двома аргументами, один з яких є знаковим, інший - беззнаковим.

Перевантаження операцій. C# включає перевантаження операцій і приведення типів, що задається користувачем. C# їх підтримує з деякими обмеженнями, що забезпечують логічну цілісність, що при обережному використанні допомагає зробити код лаконічнішим і читаним. Java не включає перевантаження операцій щоб уникнути зловживань нею і для підтримки простоти мови.

Умовна компіляція. C#, на відміну від Java, підтримує умовну компіляцію з використанням директив препроцесора. У нім також є атрибут Conditional, що означає, що вказаний метод викликається тільки тоді, коли визначена дана константа компіляції. Таким шляхом можна вставляти в код, наприклад, перевірки допущень (assertion checks), які працюватимуть тільки в налагоджувальній версії, коли визначена константа DEBUG. У стандартній бібліотеці .NET такий метод Debug.Assert(). Java версій 1.4 і вище включає в мову можливість перевірки допущень, що включається під час виконання. Крім того, конструкції if з константними умовами можуть розгортатися на етапі компіляції.

Таким чином ми бачимо, що C # і Java є потужними мовами, а також потужними платформами (.NET і Java). Кожна з яких підходить під свій тип завдання.

.3 Обґрунтування вибору технологій та мов програмування

Разом з випуском платформи .NET компанія Microsoft представила мову, що ідеально підходить для нової платформи - C# (читається "сі шарп"). На мій погляд будь-який .NET програміст повинен знати C#, як мову спеціально створену для роботи з цієї платформою. Тим більше, що в ньому багато хто знайде улюблені риси. Він близький і Delphi, і C ++, і Java програмістам.# - об'єктно-орієнтована мова програмування. Розроблена в 1998-2001 роках групою інженерів під керівництвом Андерса Хейлсберга в компанії Microsoft, як мова розробки додатків для платформи Microsoft .NET Framework. Визначена стандартом ISO / IEC 23270[2].

У мові для роботи з подіями і зворотними викликами представлена об'єктно-орієнтована концепція і безпечне, з точки зору системи типів, посилання на функцію - "делегат". Саме ця концепція дозволяє описувати події C# компонента без зворотних інтерфейсів і додаткових зусиль, досить використовувати ключове слово Event. Індексатори і властивості органічно доповнюють події до створення описуваного сигнатурою компонента.# має C стиль синтаксису (для керуючих конструкцій, блоків коду, описи сигнатури методів та ін.), багато спільного з Java (відсутність множинного спадкоємства і шаблонів, наявність збирача сміття) і Дельфі (орієнтованість на створення компонент), в той же час має і свій колорит.

При створенні мови в основу дизайну лягла легкість використання, домінуюча над потужністю мови і швидкістю виконання. Звідси і збирач сміття з керованими об'єктними посиланнями, який автоматично звільняє за вас пам'ять, відбираючи при цьому процесорний час. Ви також отримуєте безпеку роботи з типами, а це на думку багатьох є другим найважливішим чинником уникнення помилок[3].

Цілісність концепції видна, скажімо, в реалізації упакування / розпакування. Це дозволяє розглядати всі типи (навіть примітивні) як об'єкти, що вирішує багато проблем дизайну додатків.

При створенні мови розглядалася не тільки простота написання додатків, але і їх підтримка - у зв'язку з чим в мову включили підтримку XML коментарів і контролю версій. Справжній подарунок для програмістів.

У C# представлена концепція просторів імен, аналогічна пакетам в Java. Це дозволяє ієрархічно структурувати вашу систему типів, роблячи код набагато більш зрозумілим і дозволяючи уникнути проблем з ім'ям. Ви можете розглядати простори імен як директорії, а мовні типи як файли в цих директоріях.

Робота з атрибутам дозволяє використовувати COM, COM + і DLL в C# додатках, що працюють в середовищі .NET. Перерахування дозволяють убезпечити роботу з перерахованими типами.

Реалізація структур як типів, робота з якими йде за значенням, укупі з можливістю використовувати не тільки вкладені масиви (як в Java), але і багатовимірні дозволяє оптимізувати продуктивність додатків.

Для розробки програми, окрім платформи .NET, використовувалась також середовище розробки ігор Unity3d. Вибір даної мови програмування C# для проекту був обумовлений, в першу чергу, вибором цього середовища. - це потужний движок з безліччю інструментів, які можуть бути використані для реалізації ваших потреб. Редактор інтуїтивний та легко настроюється, надає більше свободи в робочому процесі.

Переваги Unity:

редактор Unity має простий drag & drop інтерфейс, який легко налаштовувати, з різних вікон, завдяки цьому можна виконувати налагодження гри прямо в редакторі;

можливостями для скриптинга - на відміну від UDK, в якому писати можна тільки на вбудованій мові, в Юніті доступні аж три мови: JavaScript, C#, і діалект пітона під назвою Boo. Тому швидкість виконання скриптів в UDK менше в декілька разів;

кроссплатформенность - як вже згадувалося раніше, підтримуються Windows, MacOS, Wii, iPhone, iPod, iPad, Android, PS3 і XBox 360. А також є можливість встанови веб-плагін. Програми, створені за допомогою unity, підтримують directx і opengl;

сучасний рівень графіки. В Unity є deferred освітлення, вбудований редактор шейдеров, стандартний набір постпроцессінгових ефектів, SSAO - весь набір інструментів для створення повноцінного проекту;

розрахунки фізики виконує фізичний движок physx від nvidia;

проект в Unity ділиться на сцені (рівні) - окремі файли, що містять свої ігрові світи зі своїм набором об'єктів, сценаріїв, и налаштуваннями. Об'єкти містять набори компонентів, з якими і взаємодіють скрипти. Також у об'єктів є назва (в unity допускається наявність двох і більше об'єктів з однаковими іменами). У будь-якого об'єкта на сцені обов'язково присутній компонент transform - він зберігає в собі координати місця розташування, повороту, і розмірів об'єкта по всіх трьох осях.

Всі вище приведені особливості та можливості Unity є гарантом можливості створення якісного, яскравого програмного продукту на мові C#. Тобто вибір мови програмування та технології розробки спирався на аналіз функціоналу гри.

логічний гра програмування алгоритм

2. Проектний розділ

.1 Алгоритм функціонування програми

Розглянемо роботу програмного забезпечення. Програма “Light Maze” розроблена на мові програмування С# з використанням платформи Unity3d та призначена для людей різних вікових категорій. Може використовуватись студентами для розвитку зорової пам’яті у вільний від навчання час.

Після запуску програми засобами бібліотеки unity.engine створюється вікно та графічна основа. Гравець опиняється в головному меню, завдяки якому він може здійснити необхідні налаштування або перейти безпосередньо до гри. Після проходження кожного рівня дані рекордів оновлюються в спеціальному файлі на жорсткому диску. Після завершення виконання програми відбувається очищення оперативної пам’яті, закриття вікна та видалення останніх даних «сміття» з ОЗП. Детальна діаграма прецедентів представлена на рисунку А.1 додатку А.

Програма складається з основних класів, які відображені на рисунку А.2 додатку А:

MonoBehaviour - головний клас від якого успадковуються всі скрипти;

Camera2DFollow - клас, який створює динамічне пересування камери за гравцем. Завдяки налаштуванню певних параметрів визначається рівень затримки та ковзання камери, що в свою чергу добавляє більш реалістичного почуття. Містить наступні функції:

а) Start - відповідає за ініціалізацію камери та налаштування її на гравцеві;

б) Update - функція, що викликається кожний кадр. Дозволяє пересуватися за гравцем;

MainMenu_GM - клас ігрового менеджера головного меню (рисунок А.3 додатку А). Відповідає за графічне наповнення меню, а також дозволяє проводити налаштування гучності музики під час гри. Містить наступні функції:

а) Start - відповідає за ініціалізацію головного меню;

б) Update - повідомляє якщо гравець вийшов з гри;

в) OnGUI - головна функція, яка відображає основні GUI-елементи та дозволяє керувати ними;

ChoiseLV_GM - клас для реалізації та контролю меню вибору рівня (рисунок А.3 додатку А). Графічна частина дозволяє забезпечити зручне для користувача графічне меню, а функціональна відповідає за розблокування наступних рівнів та взаємодію з файлом рекордів. Містить наступні функції:

а) Start - відповідає за ініціалізацію меню вибору рівня. Діаграма діяльності представлена на рисунку А.4 додатку А;

б) UnlockNextLevel - дозволяє розблокувати наступний рівень;

в) SaveInfoLevelInFile - записує до бінарного файлу такі показники як відкриті рівні, кількість зібраних зірок та рекордний час для кожного рівня;

г) ReadInfoLevelFromFile - зчитує з бінарного файлу такі показники як відкриті рівні, кількість зібраних зірок та рекордний час для кожного рівня;

д) OnGUI - головна функція, яка відображає основні GUI-елементи та дозволяє керувати ними;

GenerationLevel - клас, який використовується при розробці нових рівнів лабіринту. Генерує новий випадковий лабіринт завдяки алгоритму Еллєра та заданому розміру. Містить наступні функції:

а) Start - відповідає за ініціалізацію алгоритму Еллєра;

б) CellCoordinate - дозволяє визначити координати клітинки;

в) WallCoordinate - дозволяє визначити координати стінка;

г) GenerationMap - основна функція, завдяки якій відбувається генерація лабіринту;

д) CreateWall - добавляє нову стінку в лабіринті;

ConnerInsert - клас, який дозволяє графічно вдосконалити рівні. Містить наступні функції:

а) Start - відповідає за ініціалізацію скрипта та визначає розміри лабіринту;

б) InsertCorner - розставляє куточки;

FinishControll - клас реалізації фінішу. Забезпечує керування основними функціями під час проходження рівня. Дозволяє відстежувати статистику та оновлювати необхідний файл після завершення рівня. Містить наступні функції:

а) Start - відповідає за ініціалізацію скрипта та починає відстежувати гравця;

б) Update - рахує час проходження рівня;

в) OnGUI - дозволяє відображати статистику проходження;

г) OnTriggerEnter2D - повідомляє, якщо рівень пройдений;

д) timeToStr - дозволяє конвертувати час проходження для зручного відображення;

GameControll - клас, який забезпечує керування основними функціями під час проходження рівня. Дозволяє відстежувати статистику та обновляти необхідний файл. Містить наступні функції:

а) Start - відповідає за ініціалізацію скрипта;

б) Update - повертає до меню вибору рівня при натисненні відповідної кнопки;

в) FinishLevel - обробляє завершення рівня та забезпечує перехід до наступного;

PlayerController - дуже важливий клас, який відповідає за гравця. Дозволяє рухатись та взаємодіяти з предметами. Забезпечує необхідними графічними ефектами. Реалізує смерть та перезапуск рівня. Містить наступні функції:

а) Start - відповідає за ініціалізацію гравця;

б) OnCollisionEnter2D - дозволяє керувати зіткненнями та повідомляє при зборі зірки;

в) Update - забезпечує рух гравця та реалізацію смерті;

г) DeadPlayer - створює анімацію смерті;

Cell - клас для опису одного осередку;

Row - клас реалізації строки осередків.

Робота програми базується на окремих вагомих компонентах “сценах”. Кожна має свій унікальний індекс і може включати своє ресурсне наповнення та один або більше файлів програмного коду обробки цих ресурсів. Перемикання між сценами залежить від етапу роботи ПЗ та від дій користувача.

У грі присутні наступні сцени:

відображення головного меню передбачає запуск початкової сцени старту гри “0”, яка базується на найпростіших елементах GUI. Обробка сцени виконується засобами вбудованого класу MMGM. Взаємодія між користувачем і сценою “0” відбувається за допомогою миші (рисунок А.3 додатку А);

якщо користувач обирає пункт меню “play”, то запускається сцена “1” вибору рівня гри. Після вибору i-го рівня відбувається завантаження сцени “i”. За реалізацію даного процесу відповідає клас CHGM. В разі вибору пункту “back” відбувається повернення до головного меню (рисунок А.3 додатку А);

сцени, починаючи з “2”, являють собою безпосередньо ігрові рівні. Після проходження і-го рівня запускається сцена “1” вибору рівня гри. Користувач може завантажити наступний рівень.

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

Кожен рівень (ігрова сцена) також поділяється на окремі компоненти - префаби, в той час, як кожен префаб може мати свій файл коду обробки його властивостей (текстура, положення, орієнтація, розміри, тощо). Рівень включає такі основні префаби:

лабіринт - префаб, який складається з інших префабів в залежності від розмірів та складності рівня. Основними складовими префабами є стіни. Лабіринт не має елементів освітлення. Для оптимізації програмного забезпечення використовується клас оброки - combinechildren;

player - ігровий компонент, який переміщується по лабіринту при натисканні регулюючих клавіш клавіатури. Player не може проходити через колайдери стін. Завершення рівня вважається, коли player досягнув фінішної точки лабіринту (вступив в взаємодію з фінішним префабом). Клас обробки - playercontroller, відповідає за переміщення player по сцені;

фініш - ігровий префаб, що знаходиться в точці фінішу, являється тригером-ідентифікатором взаємодії. Клас обробки - fnishcontroll, відповідає за вихід з рівня;

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

камера - головний ігровий префаб, що відповідає за відображення подій сцени, пропускаючи дані через сукупність власних параметрів. Клас обробки -camera2dfollow, відповідає за динамічне переміщення камери в слід за player;

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

динамічні елементи - окремі префаби, з якими може взаємодіяти гравець. Наприклад, телепорт або кнопка, яка відкриває двері.

Серед найбільш важливих та складних функцій потрібно відзначити функцію «GenerationMap», яка дозволяє створювати випадковий лабіринт, який має тільки один можливий шлях між будь-якими двома комірками. Вона не використовується при виконанні програми користувачем, але є дуже необхідною для попереднього створення рівнів лабіринту.

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

Сам по собі алгоритм дуже швидкий і використовує пам'ять ефективніше, ніж інші популярні алгоритми (такі як Prim і Kruskal), вимагаючи пам'яті пропорційно числу рядків. Це дозволяє створювати лабіринти великого розміру при обмежених розмірах пам'яті. Для його роботи задаються такі основні параметри, як кількість комірок по вертикалі та горизонталі, які визнають розміри майбутнього рівня.

Загальна ідея алгоритму полягає в порядкової генерації, де між кожними двома клітинами рядка за певних умов (щоб не було циклів і недоступних клітин) випадковим чином виникає стінка. При цьому наприкінці всі клітини виявляться «в одній множині, що означатиме, що між будь-якими двома клітинами існує шлях.

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

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

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

.2 Розробка та компонування елементів на платформі UTINY3D

Програма “Light Maze” розроблена на мові програмування С# з безпосереднім використанням платформи Unity3d, тому слід детальніше розглянути роботу з платформою.

Головне вікно редактора складається з декількох вкладок, які називаються “Види” (Views). У Unity є декілька типів основных видів, кожен з яких призначений для конкретних цілей, серед яких знаходяться проект, редактор сцен, ієрархія, список інструментів та інспектор.

Рисунок 2.1 - Вікно редактора Unity

Проект відображає всі елементи, які використовуються під час розробки гри, а саме анімації, моделі, звуки, текстури, сцени, код та інші матеріали. Unity не примушує до конкретної організації ресурсів проекту, але для “Light Maze” було вибрано розподілення ресурсів по їх типу. Були відокремлені такі групи ресурсів, як сцени, скрипти, спрайти (зображення), префаби, анімації, звуки, GUI (елементи графічного інтерфейсу ).

Редактор сцени. Сцени містять згруповані об'єкти гри. Можна вважати кожен файл сцени окремим ігровим рівнем. У кожній сцені можна розмістити об'єкти оточення, загородження, декорації, по шматочках створюючи дизайн і саму гру. В моїй грі було спроектовано 14 сцен: одна для головного меню, одна для меню вибору рівня та ще дванадцять для окремих рівнів лабіринту. Розбиття гри на окремі сцени дозволило значно ефективніше розподіляти оперативну пам'ять та навантаження на процесор, а ще працювати над кожною сценою окремо.

Ієрархія відображає всі об'єкти на активній сцені. Завдяки цій панелі можна зручно керувати об’єктами на сцені та встановлювати взаємозв'язок між ними. Для цього необхідно перемістити в меню ієрархії об'єкт до іншого, і він причепиться. У підсумку вийде своєрідна папка. В “Light Maze” використовується строга ієрархія об’єктів, яка допомагає не тільки керувати об’єктами, але й оптимізувати програмне забезпечення. Наприклад, стіни та підлога лабіринту складається з однакових, часто повторюваних, об’єктів, тому я застосував клас оброки combinechildren, який дозволяє групувати об’єкти. Таким чином значно знизилась кількість звернень до CPU та GPU.

Список інструментів закріплений у верхній частині редактора. Він допомагає використовувати основні функції редактора. Наприклад, там можна переключатись між 2D та 3D режимами або запускати сцени. Під час запуску сцени моделюється ігровий варіант даної сцени, що дозволяє все перевірити від імені гравця. Під час розробки гри кожна сцена перевірялась багато разів для тестування окремих елементів або сцен в цілому. Це дозволило виправити недоліки та знайти необхідний баланс між складністю і цікавістю.

Інспектор відображає всі характеристики вибраного об'єкта. За допомогою нього можна додати анімації, скрипти, звуки та інше на конкретні об’єкти. Там можна використовувати такі інструменти як переміщення камери, переміщення об'єкта, розтяжка, розворот об'єкта. Це все дозволило створити окремі об’єкти, які відрізняються своїми характеристиками і відображеннями, та при цьому мають власний код обробки. Завдяки об’єднанню об’єктів у префаби, з’явилося можливість до багаторазового їх використання. Подібні особливості були дуже корисні при створенні кнопок і дверей, телепортів, пил, шипів та багато іншого.

Таким чином добре видно усі переваги платформи Unity3D. Завдяки правильному використанню усіх функціональних можливостей редактора мною була розроблена гра “Light Maze”. Чітка структура та ієрархія програми дозволяють дуже зручно працювати з існуючим проектом та легко вносити необхідні зміни.

3. Бізнес-план

.1 Резюме

У даній дипломній роботі розроблена гра «Light Maze» з компонентами розвитку зорової пам’яті. Призначена для людей різних вікових категорій. Може використовуватись студентами для розвитку зорової пам’яті у вільний від навчання час.

Швидкість виконання програми залежить від об’єму інформації та від технічних характеристик комп’ютера, на якому буде використовуватися програма.

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

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

Кількість продаж представлено по рокам:

рік - 450 екземплярів;

рік - 400 екземплярів;

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

Доходи від реалізації даного програмного продукту без ПДВ складатимуть:

за перший рік - 67500 грн., за другий рік - 60000 грн.

Усього за два роки реалізації доход буде складати - 127500 грн.

Для створення цього програмного продукту необхідно інвестування у вигляді кредиту на суму 18000 грн., який можна буде повернути вже після першого року , враховуючи 23% річних.

3.2 Оцінка ринку збуту

Даний програмний продукт буде продаватися та рекламуватися в тій області, на яку від буде орієнтований. Товар буде представлений у декількох фірмах - з метою оцінки та в мережі Internet.

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

Основним місцем розповсюдження програмного продукту будуть Харків і вся Україна в цілому, але також не виключено розповсюдження в містах СНГ, якщо об’єми продажу досягатимуть такого масштабу.

Таблиця 3.1. - Прогноз об’ємів продажу програмного продукту

Періоди

Споживачі

Кількість

 

 Для першого року реалізації

Січень

Студенти та люди різних вікових категорій.

25

Лютий


50

Березень


75

Квітень


75

Травень


50

Червень


50

Липень


25

Серпень


25

Вересень


25

Жовтень


20

Листопад


10

 Грудень


20

Усього за 1-й рік


450

Для другого року реалізації

І квартал

Студенти та люди різних вікових категорій.

75

 

ІІ квартал


125

 

ІІІ квартал


100

 

ІV квартал


100

 

Усього за 2-й рік


400

 


3.3 Аналіз конкуренції

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

Проведено ранжирування фірм-конкурентів за результатами аналізу їх позицій на ринку.

Результати ранжирування приведено в таблиці 3.2

Таблиця 3.2 - Аналіз фірм - конкурентів

Ключові фактори успіху

Результати ранжирування


1

2

3

4

5

1 Функціональність

Х3

Х4

Х2

0

Х1

2 Продуктивність

Х2

Х1

Х4

Х3

0

3 Об’єм пам’яті

Х1

Х2

Х3

0

Х4

4 Собівартість

Х1

Х4

0

Х3

Х2

5 Ціна

Х2

0

Х4

Х1

Х3


Тут Х1, Х2, Х3, Х4 - Фірми конкуренти;

- розробник цього програмного продукту

Х1 = 1 + 3 + 1 + 4 + 1 = 13б.;

Х2 = 2 + 2 + 5 + 1 + 4 = 11б.;

Х3 = 3 + 4 + 2 + 5 + 5 = 17б.;

Х4 = 5 + 1 + 3 + 2 + 3 = 15б.;

= 4 + 5 + 4 + 3 + 2 = 18б.

На підставі даних інформаційно-патентного пошуку результатів розробки розділу «Оцінка ринку збуту» (таблиця 3.1) та даних таблиці 3.2 визначаємо, що головним конкурентом є фірма Х3, яка має найбільш сильну позицію серед фірм-конкурентів на ринку аналогів розробляємого програмного продукту.

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

Перелік показників вносимо в таблицю 3.3.

Таблиця 3.3 - Матриця рангів технічних та економічних показників

 Параметри

Од. вим.

Значення параметру

Вага параметру aj, bj

Одиничний параметричний показ., qj

 Одиничний параметричний індекс, Jт , Jе



Новий ПП, Pjн

Аналог ПП, Pjа




Технічні:

Функціональність

Шт

8

5

0,3

1,6

0,48

Продуктивність

С

23

24

0,4

1,04

0,416

Об’єм пам’яті

Мб

70

75

0,3

1,07

0,321

Всього




1

3,71

1,217

Економічні:

Грн

20971

18750

0,5

0,89

0,455

Собівартість

Грн

150

130

0,5

0,86

0,43

Всього




1

1,75

0,885


Таблиця розраховується таким чином:

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

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

Дані (стовпчик 5) - вага j- го параметру, визначаються експертним шляхом.

Для технічних параметрів (3.1)

; ,     (3.1)

Для економічних параметрів (3.2)

; ,     (3.2)

Одиничні параметричні показники gj по кожному j-му параметру (як технічних, так економічних) розраховують за наступними формулами.

Якщо (3.3)

,      (3.3)

Якщо (3.4)

,     (3.4)

де PHJ, Pja - величина j-го параметру нового виробу та виробу конкуруючого (аналога) відповідно

Розрахунок одиничних параметричних індексів іtjej (стовпчик 6) здійснюється наступним чином:

для технічних параметрів (3.5)

,     (3.5)

для економічних параметрів (3.6)

,     (3.6)

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

для технічних параметрів (3.7)

,   (3.7)

для економічних параметрів (3.8)

,   (3.8)

Розрахунок інтегрального показника відносної конкурентоспроможності (К) нового виробу по відношенню до виробу - конкурента (аналога) обчислюється за формулою (3.9)

,                 (3.9)

К = 1,217/0,885=1,42

якщо К > 1 - новий вибір перевищує вибір - конкурента;

К < 1 - поступається;

К = 1 - знаходиться на одному рівні.

К > 1, отже пропонує новий програмний продукт переважає програмний продукт конкурентів.

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

.4 Стратегія маркетингу

Для успішного впровадження програмного продукту на ринок та досягнення запланованого об’єму продаж необхідно щільно спланувати рекламну компанію, яка дала б можливість усім потенціальним користувачам дізнатись про існування розробленого мною програмного продукту. Так як коло потенціальних покупців може бути достатньо широке, то доцільно організувати рекламу програмного продукту в засобах масової інформації (радіо, телебачення), а також замовляти інші достатньо дорогі види реклами[4].

Але для початку рекламна компанія обмежиться розсилкою потенціальним клієнтам представницьких рекламно-інформаційних листів. У них буде міститься повна інформація по даному програмному продукту, що доволі зручно і вигідно. Також в листах вказується адреса, де можна придбати програмний продукт і внести свої пропозиції. Деяким користувачам разом з листом буде запропонований й сам програмний продукт або його демо-версія для візуального ознайомлення.

Таблиця 3.4. - Затрачений час на виготовлення ПП

Найменування операції

Час в нормах годин

1 Постановка задачі

15

2 Проектування

90

3 Розробка програми на ЕОМ

135

4 Налагодження та тестування програми

30

5 Впровадження

30

Всього:

300


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

Розрахуємо час роботи на машині

+ 90 = 105 годин.

Розрахуємо немашинний час

+30+30 = 295 годин.

Розрахуємо вартість машинного часу (електроенергія)

Велектр.ен. = машинний час* потужність машини* тариф,      (3.10)

Велектр.ен.= 195 годин * 0,05 КВтчас* 1,022 грн. = 10 грн.

Розрахуємо витрати на матеріали.

Таблиця 3.5 - Витрати на матеріали

Матеріали

Кількість, шт.

Ціна (грн.)

Вартість (грн.)

Упаковка паперу

1

20,00

20,00

Ручка

2

2,00

4,00

Олівець

2

6,00

12,00

Фарба для принтера



10,00

Усього:



46,00


Розрахуємо заробітну плату розробника сайту. Витрачений час на розробку сайту - 300 годин, тариф за годину роботи - 30 грн

годин * 30 грн. = 9000 грн.

Додаткова заробітна плата (20% від основної ЗП).

грн. * 0,2 = 1800 грн.

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

Таблиця 3.6 - Калькуляцію собівартості ПП

Найменування

Витрати

Матеріали

46

Електроенергія (на технічні потреби)

10

Основна заробітна плата

9000

Додаткова заробітна плата

1800

Відрахування на соціальні потреби

4104

Накладні витрати

5400

Виробнича собівартість

20360

Невиробничі витрати

611

Всього:

20971


Відрахування на соціальні потреби (38% від основної та додаткової заробітної плати)

(9000 грн. + 1800 грн.) * 0,38 = 4104 грн.

Накладні витрати (80% від ЗП)

(9000 грн. +1800 грн.) * 0,5 =5400 грн.

Невиробничі витрати (5% від виробничих)

грн. * 0,05 = 270 грн.

Собівартість програмного продукту

С/в = 20971 грн. + 270 = 21241 грн.

Прибуток (20% від С/в)

П= 21241 * 0,2 = 4249 грн.

Розрахуємо ціну програмного продукту

грн. + 4249 грн. = 25490 грн.

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

Таблиця 3.7 - Витрати на матеріали на 1 шт.

Матеріал

Кількість, шт.

Вартість за одиницю, грн.

Витрати, грн.

Диск

1

6

6

Коробка

1

7

7

Обгортка

1

5

5

Документація

1

13

13

Всього

31


Матеріальні витрати складають 31 грн.

Витрати на електроенергію

Вел. = 0,16 н/г * 0,2 КВт * 1,02 грн. = 0,03 грн.

Основна з/п

,16 н/г * 30 грн. = 4,8 грн.

Додаткова з/п

,8 грн. * 0,16 = 0,786 грн.

Соціальні відрахування

(4,8 грн. + 0,786 грн.) * 038 = 2,12 грн.

Накладні витати

(4,8 грн. + 0,786 грн.) * 0,5 = 2,9 грн.

Загальна сума складає

+ 0,03 + 4,8 + 0,786 + 2,12 + 2,9 + = 41,6 грн.

Невиробничі витрати

,6 грн. * 0,3 = 12,48 грн.

Повна собівартість

,6 грн. + 12,48 грн. = 54,08 грн.

Знайдемо мінімальну ціну одного тиражу

Цmin = С/в + 1,2 * П = 67,1 грн.

Знайдемо максимальну ціну програмного продукту

Цmax = 21241 грн. +18000 грн. + 4249 грн. = 43490 грн.

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

.5 Фінансовий план

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

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

Таблиця 3.8 - Доходів та витрати

Показники

Витрати до початку реалізації

1 рік

2 рік

Всього

Обсяг продаж ПП


450

400

850

Доходи від реалізації


67500

60000

127500

Постійні витрати





Матеріали

46



46

Електроенергія

10



10

Основа зарплата

9000



9000

Додаткова зарплата

1800



1800

Соціальні відрахування

4104



4104

Накладні витрати

5400



5400

Кредит

18000



18000

Відсоток за кредит



4140

4140

Всього постійних витрат

38360


4140

42500

Змінні витрати





Тиражування


18720

16640

35360

Реалізація


2500

2500

5000

Всього змінних витрат


21220

19140

40360

Всього витрат

38360

21220

23280

82860

Прибуток

-38360

46280

36720

44640

Податок на прибуток


7868

6243

14111

Чистий прибуток

-38360

38412

30477

30529


Будуємо графік беззбитковості та розраховуємо точку беззбитковості программного продукту за формулою (3.1)

,       (3.11)

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

Ц - ціна програмного продукту;

 - змінні витрати за одиницю продукції

= 414 шт.

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

Рисунок 3.1 - Графік беззбитковості

4. Охорона праці

.1 Загальні питання охорони праці

Завдяки досягненням сучасних технологій більшість канцелярської роботи в офісі здійснюється з використанням комп’ютерної техніки. Якщо згадати, що в середньому робочий день офісного працівника складає 7-8 годин (як передбачено нормами Кодексу законів про працю України) при п’яти або шестиденному робочому тижні, можна зробити висновок, наскільки багато часу доводиться проводити віч-на-віч з комп’ютером.

Перелік нормативно-правових актів, що так чи інакше регулюють питання щодо безпеки роботи працівників з використанням комп’ютерів, а також хто і в якому обсягу має відповідати за порушення даних вимог є досить широким. Так, обов’язки роботодавця щодо забезпечення працівникам комфортних та безпечних умов для здійснення роботи, а також права працівників на такі умови передбачено частиною 2 ст. 2 та ч. 1 ст. 21 КЗпП, а також ст. 13 Закону України «Про охорону праці»[5].

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

Більшість актів у даній сфері становлять акти підзаконного рівня, а саме, численні правила, інструкції, державні санітарні правила і норми (ДСанПІН)тощо, якими врегульовуються окремі моменти щодо власне конструкції електронно-обчислювальної техніки, особливостей облаштування приміщень для роботи з нею та низки інших подібних вимог.

4.2 Гігієна праці та виробнича санітарія

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

У виробничих приміщеннях на робочих місцях з ВДТ забезпечуються оптимальні значення параметрів мікроклімату: температури, відносної вологості й рухливості повітря ГОСТ 12.1.005-88, СН 4088-86.

Таблиця 4.1 - Параметри метеорологічних умов виробничого середовища

Параметр

Фактичне значення

Значення по  СН-245-71 чи державному стандарту

Висновок

Шум, дБ

55

38-86

В межах допустимих значень

Освітленість (загальна), Лк

450-460

300-500

В межах допустимих значень

Значення К.П.О., %

5

1,5-100

В межах допустимих значень

Загазованість (концентрація і вид газу), мг/м3

Азот 5

Азот 5

В межах допустимих значень


Аміак 10

Аміак 20



Озон 0,08

Озон 0,1-0,2



Свинець 0,12

Свинець 0,01


 Температура повітря, °С



В межах допустимих значень

взимку

21-23

21-24


влітку

24-25

22-25


Відносна вологість, %

40-50

40-60

В межах допустимих значень

Швидкість руху повітря, м/с

0,1-0,13

0,1-0,2

В межах допустимих значень


Як джерела світла для штучного освітлення застосовуються переважно люмінесцентні лампи типу ЛБ. У разі влаштування відбитого освітлення у виробничих та адміністративно-громадських приміщеннях допускається застосування металогалогенних ламп потужністю 250 Вт. Допускається застосування ламп розжарювання у світильниках місцевого освітлення.

Рівні звукового тиску в октавних смугах частот, рівні звуку та еквівалентні рівні звуку на робочих місцях, обладнаних ВДТ, відповідають вимогам  СН 3223-85, ГОСТ 12.1.003-83.

Інтенсивність потоків інфрачервоного випромінювання не перевищують допустимих значень, відповідно до ДСН 3.3.6.042-99.

Інтенсивність потоків ультрафіолетового випромінювання не перевищують допустимих значень, відповідно до СН 4557-88.

Потужність експозиційної дози рентгенівського випромінювання на відстані 0,05 м від екрана та корпуса відеотермінала при будь-яких положеннях регулювальних пристроїв не повинна перевищувати 0,1 мбер/год (100 мкР/год).

.3 Організація робочого простору

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

Площа на одне робоче місце становить не менше ніж 6,0 м2, а об’єм - не менше ніж 20,0 м3, відстань між робочими столами - щонайменше 2,5 м у ряду і 1,2 м між рядами. Стіни приміщень потрібно фарбувати у пастельні тони з коефіцієнтом відбиття 0,5 - 0,6.

Обладнання і організація робочого місця працюючих з ПЕОМ мають забезпечувати відповідність конструкції всіх елементів робочого місця та їх взаємного, розташування ергономічним вимогам з урахуванням характеру і особливостей трудової діяльності (ГОСТ 12.2.032-78, ГОСТ 22.269-76,  ГОСТ 21.889-76)[6].

Конструкція робочого місця користувача ПЕОМ з ВДТ забезпечує підтримання оптимальної робочої пози.

Робочі місця з ВДТ розташовувані відносно світових прорізів, щоб природне світло падало збоку переважно зліва.

Площа на одне робоче місце становить не менше ніж 6,0 м2, а об’єм - не менше ніж 20,0 м3, відстань між робочими столами - щонайменше 2,5 м у ряду і 1,2 м між рядами. Стіни приміщень потрібно фарбувати у пастельні тони з коефіцієнтом відбиття 0,5 - 0,6.

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

Висота робочої поверхні робочого столу з ВДТ має регулюватися в межах 680...800 мм, а ширина і глибина - забезпечувати можливість виконання операцій у зоні досяжності моторного поля (рекомендовані розміри: 600...1400 мм, глибина - 800..1000 мм).

Робочий стіл має простір для ніг заввишки не менше ніж 600 мм, завширшки не менше ніж 500 мм, завглибшки (на рівні колін) не менше ніж 450 мм, на рівні простягнутої ноги - ніж 650 мм.

Робочий стілець є підйомно-поворотним, регульованим за висотою, з кутом і нахилу сидіння та спинки і за відстанню від спинки до переднього краю сидіння поверхня сидіння має бути плоскою, передній край - заокругленим. Регулювання за кожним із параметрів має здійснюватися незалежно, легко і надійно фіксуватися. Шаг регулювання елементів стільця має становити: для лінійних розмірів - 15...20 мм, для кутових 2...5°. Зусилля регулювання має не перевищувати 20 Н.

Висота поверхні сидіння регулюється в межах 400...500 мм, а ширина і глибина становити не менше ніж 400 мм. Кут нахилу сидіння - до 15° вперед і до 5° назад.

Висота спинки стільця має становити (300±20) мм, ширина - не менше ніж 380 мм, радіус кривизни горизонтальної площини - 400 мм. Кут нахилу спинки має регулюватися в межах 1...30° від вертикального положення. Відстань від спинки до переднього краю сидіння має регулюватися в межах 260...400 мм.

Робоче місце має бути обладнане підставкою для ніг завширшки не менше ніж 300 мм, завглибшки не менше ніж 400 мм, що регулюється за висотою в межах до 150 мм і за кутом нахилу опорної поверхні підставки до 20°. Підставка повинна мати рифлену поверхню і бортик по передньому краю заввишки 10 мм.

Екран ВДТ має розташовуватися на оптимальній відстані від очей користувача, що становить 600...700 мм, але не ближче ніж за 600 мм з урахуванням розміру літерно-цифрових знаків і символів.

Розташування екрана ВДТ має забезпечувати зручність зорового спостереження у вертикальній площині під кутом +30є до нормальної лінії погляду працюючого.

Клавіатуру слід розташовувати на поверхні столу на відстані 100...300 мм від краю, звернутого до працюючого. У конструкції клавіатури має передбачатися опорний пристрій (виготовлений із матеріалу з високим коефіцієнтом тертя, що перешкоджає мимовільному її зсуву), який дає змогу змінювати кут нахилу поверхні клавіатури у межах 5...15°. Висота середнього рядка клавіш має не перевищувати 30 мм. Поверхня клавіатури має бути матовою з коефіцієнтом відбиття 0,4.

Щоб уможливити вільне переміщення клавіатури на поверхні столу сучасні клавіатури з'єднуються із системним блоком гнучким кабелем, а деякі з них навіть не мають кабелю, у більшості клавіатур регулюється кут нахилу клавіш, а деякі мають розщеплення середньої (літерної) частини і особливу форму для природнішого положення пальців над клавішами. Перед клавіатурою встановлюють спеціальні подушечки або підпірки, на які оператори можуть спиратися, що запобігає перенапруженню м'язів і сухожиль. Форма комп’ютерної миші повинна відповідати анатомо-фізіологічним особливостям п’ясті руки.

.4 Електробезпека в приміщеннях з ЕОМ

При роботі з ПК застосовують апарати та обладнання, в яких використовується електроенергія, тому питання електробезпеки є актуальним. При експлуатації обладнання потрібно дотримуватися вимог і правил “правила охорони обчислювальних машин”, “Правила техніки і безпеки при експлуатації електроустановок”, затверджено наказом Держнаглядохоронпраці від 10 лютого 1999 року №21.

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

Для забезпечення безпеки електроспоживачів варто застосовувати до 42 В: у приміщеннях з підвищеною небезпекою 36В, в особливо небезпечних 12В.

Потрібно завжди пам’ятати, що небезпечного електроструму не існує, навіть при ураженні 12В, якщо напруга діє на безпосередньо важливі нервові вузли, керування якими в організмі людини здійснюється електричними сигналами дуже малих напруг.

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

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

застосуванням іонізації повітря нейтралізаторами статистичної електрики;

застосуванням у приміщенні з ВДТ підлоги з анти статистичними лінолеумом і проведенням вологого прибирання;

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

.5 Пожежна безпека

Залежно від особливостей виробничого процесу, крім загальних вимог пожежної безпеки, здійснюються спеціальні протипожежні заходи для окремих видів виробництв, технологічних процесів та промислових об'єктів. Для споруд та приміщень, в яких експлуатуються відеотермінали та ЕОМ такі заходи визначені правилами пожежної безпеки в Україні, ДНАОП 0.00-1.31-99 та іншими нормативними документами.

Будівлі і ті їх частини, в яких розташовуються ЕОМ, повинні бути не нижче 2 ступеня вогнестійкості. Над та під приміщеннями, де розташовуються ЕОМ, а також у суміжних з ними приміщеннях не дозволяється розташування приміщень категорій А і Б за вибухопожежною небезпекою. Приміщення категорії В слід відділяти від приміщень з ЕОМ протипожежними стінами.

Сховища інформації, приміщення для зберігання перфокарт, магнітних стрічок, пакетів магнітних дисків слід розміщати у відокремлених приміщеннях, обладнаних негорючими стелажами і шафами. Зберігати такі носії інформації на стелажах необхідно в металевих касетах. В приміщеннях ЕОМ слід зберігати лише ті носії інформації, які необхідні для поточної роботи.

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

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

У випадку необхідності проведення дрібного ремонту або технічного обслуговування ЕОМ безпосередньо в машинному залі та неможливості застосування негорючих миючих речовин дозволяється мати не більше 0,5 л легкозаймистої рідини у тарі, що не б'ється та щільно закривається.

У випадку пожежі треба використовувати план евакуації (рисунок 4.2).

Висновки

Під час дипломного проектування була створена логічна гра «Light Maze» з компонентами розвитку зорової пам’яті. Програма несе, насамперед, розважальний характер, але включає компоненти розвитку зорової пам’яті. Призначена для людей різних вікових категорію та може використовуватись студентами для розвитку зорової пам’яті у вільний від навчання час.

Програма реалізує усі поставлені задачі, а саме:

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

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

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

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

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

Були систематизовані знання з об’єктно-орієнтованого програмування та закріплені знання мови C#. Протягом написання програми були отримані навички з проектування та розробки програмного забезпечення, його налагодження та тестування в програмних середовищах Microsoft Visual Studio 2012 та MonoBehaviour, пройдені всі основні етапи розробки програми, починаючи з постановки задачі та закінчуючи тестуванням й налагодженням продукту. Були здобуті та закріплені теоретичні знання у сфері геймдізайну та балансування ігор, розвинуті навички роботи з платформою Unity3D. Були отримані навички по роботі з технічною літературою та оформленню проектної документації, розвинуто навики самостійної роботи.

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

Перелік посилань

1 Основы инженерии качества программных систем / Ф.И. Андон, Г.И. Коваль, Т.М. Коротун, В.Ю. Суслов - К: Академпериодика, 2002. - 502 с.

ГОСТ 7.1-84. Библиографическое описание документа. Общие требования и правила составления.

Касперски К. Техніка налагодження програм без вихідних текстів. БХВ-Петербург, 2005, 832 с.

Пивоваров К.В. Бізнес-планування. - М.: "Дашков і Ко", 2006 - 164 с.

Конституція України 254к/96-ВР від 1996.06.28 // Відомості Верховної Ради України, 1996, N 30 (23.07.96), ст. 141

Закон України "Про охорону праці" № 2694-XII. від 1992.10.14 // Відомості Верховної Ради України, 1992, N 49 (08.12.92), с. 668-701.

Додаток А

- Діаграми


Рисунок А.2 - Діаграма класів


Рисунок А.4 - Діаграма діяльності функції Start класу ChoiseLV_GM

Додаток Б

«Логічна гра «Light Maze»»

Вступ

У даному програмному документі наведено методику тестування комп’ютерної гри.

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

Об’єкт тестування

Об’єктом тестування являється логічна гра з компонентами розвитку зорової пам’яті “Light Maze”.

Мета тестування

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

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

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

Вимоги до програмного виробу

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

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

при натисканні на контролюючі клавіші arrows, player буде здійснювати рух в заданому напрямку по лабіринту;

генерація лабіринту алгоритмом Еллєра та запис його окремим компонентом в файл;

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

розташування старту та фінішу у будь-яких місцях даного рівня;

перемикання між сценами ПЗ, керуючи простим GUI контролюючий процес за допомогою миші;

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

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

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

Основні тестові документи:

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

тестовий набір (test suit), комбінація тестів, для перевірки певної частини програмного забезпечення, об'єднаної загальною функціональністю або цілями;

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

Засоби та порядок тестування

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

Якість <#"864462.files/image025.gif">

Рисунок А.2 - Гістограма середнього значення параметрів під час бета-тестування

Додаток Г

Вступ

Логічна гра “Light Maze” використовується на персональному комп'ютері або смартфоні. Дана програма несе одночасно розважальний та логічний характер. Гра включає компонент для розвитку зорової пам’яті.

Призначення програми

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

Умови виконання програми

Для коректної роботи гри необхідно забезпечити такі апаратні засоби: ОС з родини Windows, клавіатура та мишка будь-якої моделі сумісної с ОС або смартфон з ОС Android.

Виконання програми

В першу чергу потрібно встановити гру на комп’ютер, в будь-яку директорію. Для цього необхідно запустити файл setup-light maze.exe та слідуючи інструкціям встановити гру з необхідними налаштуваннями.

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

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

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

Після запуску гри з’явиться головне меню, що включає такі пункти:

грати - для подальшого вибору рівня;

розробники;

вихід.

Рисунок 3.1 - Діалогове вікно налаштувань гри

Рисунок 3.2 - Головне меню гри

По натисненню пункту меню «грати» з’являється 12 рівнів. Кожен пройдений рівень відкриває доступ для проходження наступного. Оцінка проходження рівня відображається графічно, наглядно для користувача.

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

Рисунок 3.3 - Меню вибору рівня

Рисунок 3.4 - Один з рівнів

Повідомлення оператору

У разі виникнення збою програми чи некоректної роботи необхідно виконати наступні дії:

повернутися в меню і натиснути «вихід»;

спробувати запустити гру знову.

Якщо знову виникне збій програми необхідно перевстановити гру на комп’ютер.

Похожие работы на - Логічна гра 'Light Maze'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!