Розробка комп'ютерної гри "Міста"

Аналіз предметної області, опис проекту бази даних, моделей майбутнього програмного забезпечення гри для персонального комп'ютера "Міста". Функціональні можливості програмного забезпечення, які необхідно реалізувати. Інтерфейс програмного забезпечення.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 02.06.2016
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Державний вищий навчальний заклад

"Чернівецький політехнічний коледж"

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

КУРСОВИЙ ПРОЕКТ

з навчальної дисципліни "Об'єктно-орієнтоване програмування"

на тему: Розробка комп'ютерної гри "Міста"

Студента IV курсу 541 групи

спеціальність 5.05010301

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

Собка А.О.

Керівник Гуменна Т.М.

м. Чернівці - 2016 рік

Зміст

  • Вступ
  • 1. Технічний проект
  • 1.1 Опис предметної області
  • 1.2 Аналогічні програмні продукти
  • 1.2.1 Гра "Міста" на Google Play
  • 1.2.2 Гра "Міста" на App Store
  • 1.3 Специфікація вимог
  • 1.3.1 Загальні відомості
  • 1.3.2 Виклик та завантаження
  • 1.3.3 Вхідні та вихідні дані
  • 1.3.4 Функціональні можливості програмного забезпечення, які необхідно реалізувати
  • 1.4 Моделі програмного забезпечення
  • 1.4.1 Функціональна модель
  • 1.4.2 Концептуальна модель
  • 1.5 Моделювання бази даних
  • 2. Робочий проект
  • 2.1 Інструкція програміста
  • 2.1.1 Опис класів програмного забезпечення
  • 2.1.2 Зв'язок із базою даних
  • 2.1.3 Інтерфейс програмного забезпечення
  • 2.2 Інструкція гравця
  • 3. Охорона праці та техніка безпеки
  • Висновок
  • Перелік джерел
  • Додатки

Вступ

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

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

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

Тема є актуальною, оскільки люди дуже люблять інтелектуальні ігри, а аналоги гри "Міста" створені тільки для смартфонів з операційною системою IOS та Android, комп'ютерної версії не існує.

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

Розділ 1 "Технічний проект" містить аналіз предметної області, опис проектування бази даних та опис моделей майбутнього програмного забезпечення.

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

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

1. Технічний проект

1.1 Опис предметної області

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

Види комп'ютерних ігор:

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

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

– Настільна гра - електронні реалізації настільних ігор. Серед них існують як реалізації класичних ігор (шахи, преферанс), так і специфічних як Magic: The Gathering.

– Головоломки (інтелектуальна гра) - вимагають від гравця вирішення логічних завдань, передбачення можливих ситуацій. Приклади: Тетріс, Angry Birds.

– Games with a Purpose - програми, за допомогою яких люди використовують свої знання для вирішення проблем (передусім у наукових дослідженнях), при цьому граючись. Такі ігри є різновидом людино-орієнтованого методу комп'ютерного моделювання. Приклади: Дарвін, C Robots.

Для виконання завдання курсового проекту було обрано гру з жанру "Інтелектуальна гра".

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

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

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

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

1.2 Аналогічні програмні продукти

1.2.1 Гра "Міста" на Google Play

Простий додаток для ОС Android. Після запуску додатку з'являється стартове вікно для вибору міст (всі або певної країни). Якщо натиснути на "Выбрать" з'являється вікно вибору країн, міста яких будуть використовуватись. Після натиску на кнопку "Начать игру" відкривається вікно самого ігрового процесу (рисунок 1).

комп'ютерна гра програмний інтерфейс

Рисунок 1 - Аналог на Google Play

Переваги:

– простий і зручний інтерфейс;

– при виборі назви міста показується країна, в якій розташоване це місто;

– після запису міста поряд показується його країна.

Недоліки:

– невелика база даних міст (через це і такий невеликий рейтинг);

– російськомовний інтерфейс.

1.2.2 Гра "Міста" на App Store

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

Після запуску додатку з'являється стартове вікно (рисунок 2). Після натиску на кнопку "Новая игра", з'являється вікно параметрів, де можна вибрати параметри гри (з комп'ютером або удвох).

Рисунок 2 - Стартове вікно

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

Рисунок 3 - Вікно гри

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

Переваги:

– гарне оформлення;

– зручний інтерфейс;

– можливість вибору режиму гри;

– велика база даних міст.

Основним недоліком є те, що додаток розроблений для мобільних телефонів (комп'ютерної версії не існує).

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

1.3 Специфікація вимог

1.3.1 Загальні відомості

Назва програмного продукту "Міста".

Програмне забезпечення реалізоване мовою С++.

Для повного функціонування програми необхідно:

– операційна система версії не нижче Windows 2000;

– середовище програмування С++ Builder;

– СКБД Microsoft Office Access.

1.3.2 Виклик та завантаження

Для запуску програми необхідно відкрити файл Project1. exe. Після чого з'являється стартове вікно.

1.3.3 Вхідні та вихідні дані

До вхідних даних належать імена гравців та назви міст.

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

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

Основними вихідними даними являються повідомлення про помилки:

– некоректність введеної назви міста;

– закінчення часу для ходу;

– неспівпадання останньої букви першого слова та першої букви другого слова;

– оголошення переможця, при завершенні гри.

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

– додавання назви міста в базу;

– вилучення назви міста з бази;

– зміна імен гравців;

– функція перевірки наявності міста в базі;

– функція перевірки на повторюваність міста;

– функція перевірки на ідентичність букв міст для продовження гри.

1.4 Моделі програмного забезпечення

1.4.1 Функціональна модель

Функціональна модель системи IDEF0 (Icam DEFinition) будується на основі функціональної діаграми. Функціональна модель представляє собою основні дії, які виконуватиме програмний продукт (рисунок 4).

Рисунок 4 - Функціональна модель

Основні дії програмного продукту:

– ввід міста з клавіатури;

– пошук міста в базі даних за назвою;

– пошук останньої букви введеної назви міста;

– перевірка на коректність введених назв міст;

– наступний хід.

1.4.2 Концептуальна модель

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

Рисунок 5 - Діаграма прецедентів

Актори - гравець, комп'ютер або ще один гравець.

Варіанти використання:

– введення назви міста;

– зміна імені гравця;

– закінчити хід;

– закінчити гру;

– пошук та перевірка назв міст на коректність введення.

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

1.5 Моделювання бази даних

Фізична модель даних складається з одної таблиці, її структура зображена на рисунку 3.

Таблиця "Sities" містить інформацію про назви міст (рисунок 6).

Рисунок 6 - Структура таблиці "Sities"

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

2. Робочий проект

При виконанні поставленого завдання було спроектовано декілька класів - основу об'єктно-орієнтованого програмування. Було спроектовано декілька форм та data-модуль для реалізації програмного продукту.

2.1 Інструкція програміста

2.1.1 Опис класів програмного забезпечення

Для реалізації поставленої задачі було спроектовано класи, які зображено на діаграмі класів (рисунок 7).

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

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

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

class Player

{ protecred:

virtual void Game () =0;

};

Метод класу virtual void Game () - метод, видимий лише в межах ієрархії. Даний клас спроектований для керуванням процесу гри.

Клас Sities - похідний від класу Player. Даний клас призначений для роботи з базою даних міст.

class Sities: public Player

{char SITY [30];

protected:

void addSities ();

};

Методи класу:

– void AddSity () - метод, призначений для занесення назви міст з бази даних.

Клас Bred - похідний від класу Sities. Даний клас містить набір методів для перевірки на коректність введених назв міст під час процесу гри.

class Bred

{

private:

char a,b;

public:

void find ();

void find2 ();

int Search (AnsiString t);

};

Методи класу:

– void find () - метод, призначений для перевірки на співпадіння букв та повторення назв для гравця 1;

– void find2 () - метод, призначений для перевірки на співпадіння букв та повторення назв для гравця 2;

– void Search () - метод, призначений для перевірки на співпадіння букв та повторення назв для комп'ютера.

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

2.1.2 Зв'язок із базою даних

З точки зору С++, data-модуль являється статичним класом і всі члени класу доступні при вказуванні імені модуля навіть без створення екземпляра класу.

При розробці програмного продукту було використано стандартний Data-модуль (рисунок 8).

Рисунок 8 - Форма з'єднання з базою даних

Форма містить наступні елементи: ADOConnection1 - підключення до бази даних з VBScrip. Функція "Use Connection String" дозволяє задати шлях до бази. Якщо шлях заданий правильно, програма видасть повідомлення що перевірка з'єднання успішна; DataSource1 - повертає або задає джерело даних, дані якого відображає ADOQuery1; ADOQuery1 - компонент роботи з запитами БД. ADOQuery1 з'єднується з ADOConnection1 за допомогою параметру Connectiont. DataSource в свою чергу з'єднується з ADOQuery1за допомогою параметру DataSet.

2.1.3 Інтерфейс програмного забезпечення

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

Форма "Вибір суперника" - головна форма, на якій розташовані елементи вибору режиму гри (рисунок 9).

Рисунок 9 - Форма "Виберіть суперника"

Форма містить такі компоненти:

– SpeedButton1 - кнопка для переходу на ігрову форму;

– RadioButton1 - кнопка для вибору одного з параметрів.

– Label1 - компонент містить текстову інформацію”;

– Image - для відображення графічних елементів;

– SpeedButton2 - кнопка для виклику функції виходу з програми.

Форма "Ім'я" призначена для зміни підпису гравців як на початку гри, так і під час гри (рисунок 10).

Рисунок 10 - Форми "Ім'я"

Форма містить наступні компоненти:

– Edit - поле для вводу інформації;

– Label - компонент містить текстову інформацію;

– Button1 - кнопка, при натиску якої відбувається певна подія;

Форма "Нове місто" призначена для редагування списку міст у базі даних (рисунок 11).

Рисунок 11 - Конструктор форми "Нове місто"

Форма містить наступні компоненти:

– Label1 - містить текстову інформацію;

– Edit1 - поле для вводу інформації;

– Button1 - кнопка, при натиску якої відбувається певна подія;

Форма "Міста" призначена для основного ігрового процесу. На формі розташовані всі можливості роботи з програмою (рисунок 12).

Рисунок 12 - Конструктор форми "Міста"

Форма містить наступні компоненти:

– Memo1 - поле для виводу результату;

– Timer1 - лічильник;

– Label1 - містить текстову інформацію.

– Button1 - виконання методу void find ();

– Edit1 - поле вводу тексту;

– Button2 - виконання методу void find2 ()

– Button3->OnClick: функція початку/кінці гри;

– Image - компонент містить малюнок;

– StringGrid1 - вивід результатів ходів гравців;

– MainMenu1 - організація меню;

– N1 - виклик пункту меню початку гри;

– N2 - виклик пункту меню завершення гри;

– N3 - виклик пункту меню виходу з програми;

– N4 - виклик пункту меню зміни підпису гравця1;

– N5 - виклик пункту меню зміни підпису гравця2;

– N6 - виклик пункту меню добавлення міста;

– N7 - виклик пункту меню вилучення міста;

– N8 - виклик пункту меню виводу вікна допомоги.

Форма "Допомога" призначена для виводу інформації про програму (рисунок 13).

Рисунок 13 - Форма "Допомога"

Форма містить наступні компоненти:

– Image1 - рисунок фону;

– SpeedButton1 - кнопка повернення на головну форму;

– Label1 - текстова інформація.

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

2.2 Інструкція гравця

Для початку роботи з комп'ютерною грою потрібно запустити файл Project1. exe. Після чого відкривається стартове вікно (рисунок 14).

Рисунок 14 - Вікно "Виберіть суперника"

В даному вікні користувач повинен вибрати режим гри:

– гра з іншим гравцем;

– гра з комп'ютером.

При виборі "Гравець 2" з'явиться вікно для редагування імен гравців (рисунок 15). В процесі гри це також можна зробити за допомогою розділу "Гравець" головного меню.

Рисунок 15 - Вікно "Ім'я"

Після введення імен гравців відкривається головне вікно гри (рисунок 16)

Рисунок 16 - Вікно "Міста"

Щоб розпочати гру, необхідно натиснути на кнопку "Почати" у центрі екрану. Після цього починається відлік часу (на ввід назви міста надається одна хвилина). Для завершення ходу необхідно натиснути на кнопку "Кінець ходу". Якщо введене місто повністю підходить, хід переходить до апонента. В іншому випадку система видасть відповідне повідомлення (рисунок 17).

а) б) в)

Рисунок 17 - Вікно помилки: а - якщо введене місто не існує, або не зареєстровано, б - якщо остання і перша буква не схожі, в - якщо час вийшов

Керувати процесом гри також можливо за допомогою головного меню (рисунок 18).

Рисунок 18 - Вкладки головного меню

Для виходу з програми необхідно натиснути на кнопку "Вихід" головного меню (рисунок 18), або натиснувши на червоний хрестик.

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

3. Охорона праці та техніка безпеки

Охорона праці - це система правових соціально-економічних, організаційно-технічних та санітарно-гігієнічних і лікувально-профілактичних заходів і засобів, спрямованих на забезпечення здоров'я і працездатності людини в процесі праці (ст.1 Закону України "Про охорону праці").

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

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

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

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

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

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

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

Державна політика у галузі охорони праці згідно ст.4 Закону базується на принципах:

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

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

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

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

Одним з основних принципів державної політики в галузі охорони праці є навчання працівників, населення України з питань охорони праці. Ця робота регламентується Законом України "Про охорону праці" (ст.18).

Онови реалізації в Україні системи безперервного навчання з питань охорони праці визначаються в НПАОП 0.00-4.12-05 "Типове положення про порядок проведення навчання і перевірки знань з питань охорони праці".

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

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

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

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

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

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

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

На даний час нормативними документами, що регламентують параметри мікроклімату виробничих приміщень є ДСН 3.3.6 042-99 та ГОСТ 12.1.005-88, згідно яким нормативними параметрами мікроклімату робочих місць є:

– температура - 18-23 С;

– вологість - 40-60 %;

– швидкість руху повітря - 0,2-0,5 м за сек.

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

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

Пожежі поділяються на 5 класів:

I кл. - горіння твердих речовин;

II кл. - горіння рідин;

III кл. - горіння газів;

IV кл. - горіння металів;

V кл. - горіння електропристроїв.

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

а) людський фактор:

– необережне поводження з вогнем;

– дитячі пустощі з вогнем;

– нічне опалення;

– несправності електромережі.

б) природній фактор:

– атмосферна електрика;

– теплове, хімічне та мікробіологічне самозагорання.

Небезпечними факторами пожежі є:

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

– токсичні продукти горіння;

– понижена концентрація кисню в зоні горіння;

– дим;

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

– паніка людей при пожежі.

Для правильного планування та успішного проведення заходів пожежної безпеки вагоме значення має оцінка об'єктів щодо їх вибухопожежонебезпеки. Умови виникнення та поширення пожежі в будівлях та приміщеннях залежить від кількості та вибухонебезпечних властивостей речовин і матеріалів, що в них знаходяться, а також особливістю технологічних процесів розміщених в них виробництв. Відповідно до норм технологічного проектування (ОНТП 24-86) та наказу МНС №833 від 03.12.2007р. За вибухопожежною та пожежною небезпекою приміщення та будівлі поділяються на п'ять категорій: А, Б, В, Г, Д.

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

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

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

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

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

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

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

– обмеження розмірів та поширення пожежі;

– обмеження розвитку пожежі;

– забезпечення безпечної експлуатації людей та майна;

– створення умов для успішного гасіння пожежі.

Забезпечення ефективності цих напрямків протипожежного захисту здійснюється за рахунок підвищення вогнестійкості будівельних конструкцій; згідно з ДСТУ БВ.1.1-4-98 "Будівельні конструкції. Методи випробувань на вогнестійкість"; влаштування протипожежних перешкод, протипожежних стін, забезпечення протипожежних розривів та евакуаційних виходів під час проектування будівель та споруд.

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

- охолодженням горючих речовин або зони горіння;

- ізоляцією горючих речовин або окисника від зони горіння;

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

- хімічним гальмуванням реакції горіння.

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

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

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

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

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

Висновок

Під час виконання курсового проекту було розроблено комп'ютерну гру "Міста". У ході виконання завдання було проведено ґрунтовний аналіз інтелектуальних міні-ігр і алгоритми гри. На основі даних, отриманих у процесі аналізу, було спроектовано ієрархію класів

Програмний продукт, розроблений мовою С++ у середовищі програмування RADStudio C++ Builder, дав змогу детальніше ознайомитись з цією мовою програмування.

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

Перелік джерел

1. Бекаревич Ю, Пушкіна Н. Самоучитель Microsoft Access 2013. - Санкт-Петербург: БХВ-Петербург, 2014 - 464с.

2. Стефан Р. Девіс С++ Для чайников 2003. - Вильямс 2014 - 489с.

3. Фиайли К. SQL. Руководство по изучению языка. - Москва: ДМК Пресс, 2010 - 454с.

4. Новые возможности EhLib 6.2 - EhLib Team. Редакция: 1.62, 2013 - 12с.

5. Библиотека компонент EhLib 6. Руководство разработчика - EhLib Team. Редакция: 1.62, 2013 - 160с.

Додатки

Додаток А

Лістинг програмного коду

A.1 Unit1. cpp

// ---------------------------------------------------------------------------

#include <vcl. h>

#pragma hdrstop

include "Unit1. h"

#include "Unit3. h"

#include "Unit2. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"

TForm1 *Form1;

// ---------------------------------------------------------------------------

__fastcall TForm1:: TForm1 (TComponent* Owner): TForm (Owner) {}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: SpeedButton1Click (TObject *Sender)

{ if (RadioButton1->Checked==true)

{

Form3->Visible=true;

Form3->Button2->Visible=true;

Form3->Button1->Visible=true;

Form3->Button3->Visible=false;

}

if (RadioButton2->Checked==true)

{

Form2->Edit2->Visible=true;

Form2->Edit2->Enabled=false;

Form2->Edit1->Visible=true;

Form3->Button3->Visible=true;

Form3->Button2->Visible=true;

Form3->Button2->Enabled=false;

Form3->Button1->Visible=false;

Form3->Visible=true;

}

Form1->Visible=false;

}

// ---------------------------------------------------------------------------

void __fastcall TForm1:: RadioButton1Click (TObject *Sender)

{ SpeedButton1->Enabled=true; }

// ---------------------------------------------------------------------------

void __fastcall TForm1:: RadioButton2Click (TObject *Sender)

{ SpeedButton1->Enabled=true; }

// ---------------------------------------------------------------------------

void __fastcall TForm1:: SpeedButton2Click (TObject *Sender)

{

ShowMessage ("До побачення");

Form1->Close ();

}

// ---------------------------------------------------------------------------

A.2 Unit2. cpp

// ---------------------------------------------------------------------------

#include <vcl. h>

#pragma hdrstop

#include "Unit2. h"

#include "Unit1. h"

#include "Unit3. h"

#include "Unit4. h"

#include "Data. h"

#include "File1. h"

#include <stdio. h>

#include <ctype. h>

#include <String. h>

#include "Unit5. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"

TForm2 *Form2;

AnsiString f;

AnsiString k;

Bred G;

int i=0,x;

void Bred:: find ()

{ static bool trigger;

char a, b;

if (Form2->Edit2->Text! ="")

{

a = Form2->Edit2->Text [Form2->Edit2->Text. Length ()];

b = Form2->Edit1->Text [1];

a= char (int (a) - 32);

if (a! =b)

{if (x==1)

{

ShowMessage ("Ви програли. Переміг "+Form2->Label4->Caption+"!");

Form2->Button3->Caption="Почати";

Form2->Timer1->Enabled=false;

for (int ii=0; ii<i; ii++)

{ Form2->StringGrid1->Cells [0] [ii] ="";

Form2->StringGrid1->Cells [1] [ii] ="";

}

Form2->StringGrid1->RowCount=1;

Form2->Button1->Enabled=false;

Form2->Edit1->Enabled=false;

} else

ShowMessage ("Букви не сходяться. ");

x--;

Form2->Label5->Caption=IntToStr (x);

Abort ();

}

}

}

void Bred:: find2 ()

{ static bool trigger;

char a, b;

a = Form2->Edit1->Text [Form2->Edit1->Text. Length ()];

b = Form2->Edit2->Text [1];

a= char (int (a) - 32);

if (a! =b)

{if (x==1)

{

ShowMessage ("Ви програли. Переміг "+Form2->Label3->Caption+"!");

Form2->Button3->Caption="Почати";

Form2->Timer1->Enabled=false;

for (int ii=0; ii<i; ii++)

{ Form2->StringGrid1->Cells [0] [ii] ="";

Form2->StringGrid1->Cells [1] [ii] ="";

}

Form2->StringGrid1->RowCount=1;

Form2->Button2->Enabled=false;

Form2->Edit2->Enabled=false;

} else

ShowMessage ("Букви не сходяться. ");

x--;

Form2->Label6->Caption=IntToStr (x);

Abort ();

}

}

int Bred:: Search (AnsiString t)

{

for (int m=0; m<Form2->StringGrid1->RowCount; m++)

if (CompareText (Form2->StringGrid1->Cells [0] [m],t) ==0 || CompareText (Form2->StringGrid1->Cells [1] [m],t) ==0)

return 0;

return 1;

}

TStringList *s=new TStringList;

// ---------------------------------------------------------------------------

__fastcall TForm2:: TForm2 (TComponent* Owner): TForm (Owner)

{ Timer1->Enabled = false;

Timer1->Interval = 1000;

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: Timer1Timer (TObject *Sender)

{

Timer1->Tag--;

Label1->Caption = Timer1->Tag;

if (Timer1->Tag == 0)

{

Timer1->Enabled = false;

ShowMessage ("Гра закінчена");

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: Button1Click (TObject *Sender)

{ x=StrToInt (Label5->Caption);

DataModule4->ADOQuery1->Active = false;

DataModule4->ADOQuery1->SQL->Clear ();

DataModule4->ADOQuery1->SQL->Add ("SELECT COUNT (*) AS b FROM Sities WHERE name ='"+Edit1->Text+"'");

DataModule4->ADOQuery1->Open ();

if (Edit1->Text=="") ShowMessage ("Ви не ввели місто!");

else

if (DataModule4->ADOQuery1->FieldByName ("b") - >AsInteger==0)

{ if (x==1) {

ShowMessage ("Ви програли. Переміг "+Label4->Caption+"!");

Button3->Caption="Почати";

Timer1->Enabled=false;

for (int ii=0; ii<i; ii++)

{ StringGrid1->Cells [0] [ii] ="";

StringGrid1->Cells [1] [ii] ="";

}

StringGrid1->RowCount=1;

Button1->Enabled=false;

Edit1->Enabled=false;

} else

ShowMessage ("Такого немає");

x--;

Label5->Caption=IntToStr (x);

}

else

{ G. find ();

if (G. Search (Edit1->Text))

{

Timer1->Tag = 60;

Timer1->Enabled = true;

f=Edit1->Text;

StringGrid1->Cells [0] [i] =f;

Edit2->Text="";

Edit1->Enabled=false;

Button1->Enabled=false;

Edit2->Enabled=true;

Button2->Enabled=true;

ShowMessage ("Хід гравця "+Label3->Caption);

} else ShowMessage ("Таке місто вже було!");

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: Button2Click (TObject *Sender)

{ x=StrToInt (Label6->Caption);

DataModule4->ADOQuery1->Active = false;

DataModule4->ADOQuery1->SQL->Clear ();

DataModule4->ADOQuery1->SQL->Add ("SELECT COUNT (*) AS b FROM Sities WHERE name ='"+Edit2->Text+"'");

DataModule4->ADOQuery1->Open ();

if (Edit2->Text=="") ShowMessage ("Ви не ввели місто!");

else

if (DataModule4->ADOQuery1->FieldByName ("b") - >AsInteger==0)

{if (x==1)

{

ShowMessage ("Ви програли. Переміг "+Label3->Caption+"!");

Button3->Caption="Почати";

Timer1->Enabled=false;

for (int ii=0; ii<i; ii++)

{ StringGrid1->Cells [0] [ii] ="";

StringGrid1->Cells [1] [ii] ="";

}

StringGrid1->RowCount=1;

Button2->Enabled=false;

Edit2->Enabled=false;

} else

ShowMessage ("Такого немає");

x--;

Label6->Caption=IntToStr (x);

}

else

{ G. find2 ();

if (G. Search (Edit2->Text))

{

Timer1->Tag = 60;

Timer1->Enabled = true;

k=Edit2->Text;

Edit1->Text="";

StringGrid1->Cells [1] [i] =k;

Edit2->Enabled=false;

Button2->Enabled=false;

Edit1->Enabled=true;

Button1->Enabled=true;

ShowMessage ("Хід гравця "+Label3->Caption);

i++;

StringGrid1->RowCount=i+1;

}

else ShowMessage ("Таке місто вже було!");

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: Button3Click (TObject *Sender)

{

Edit1->Text="";

Edit2->Text="";

Timer1->Tag = 60;

Timer1->Enabled = true;

if (Button3->Caption=="Почати")

{ i=0;

Button3->Caption="Закінчити";

Button1->Enabled=true;

Edit1->Enabled=true;

Label5->Caption="5";

Label6->Caption="5";

ShowMessage ("Хід гравця "+Label3->Caption); }

else

if (Button3->Caption=="Закінчити")

{ Timer1->Enabled=false;

ShowMessage ("Кінець гри");

for (int ii=0; ii<i; ii++)

{ StringGrid1->Cells [0] [ii] ="";

StringGrid1->Cells [1] [ii] ="";

}

StringGrid1->RowCount=1;

Edit1->Enabled=false;

Button1->Enabled=false;

Button3->Caption="Почати";

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: N11Click (TObject *Sender)

{

Form3->Visible=true;

Form3->Edit1->Text="";

Form3->Button1->Visible=true;

Form3->Button2->Visible=false;

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: N21Click (TObject *Sender)

{

Form3->Visible=true;

Form3->Edit1->Text="";

Form3->Button2->Visible=true;

Form3->Button1->Visible=false;

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: N5Click (TObject *Sender)

{ Form1->Close (); }

// ---------------------------------------------------------------------------

void __fastcall TForm2:: N8Click (TObject *Sender)

{

Form4->Visible=true;

Form4->Button1->Visible=true;

Form4->Button2->Visible=false;

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: N9Click (TObject *Sender)

{

Form4->Visible=true;

Form4->Button2->Visible=true;

Form4->Button1->Visible=false;

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: N12Click (TObject *Sender)

{

Form2->Visible=false;

Form5->Visible=true;

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: Button4Click (TObject *Sender)

{ x=StrToInt (Label5->Caption);

DataModule4->ADOQuery1->Active = false;

DataModule4->ADOQuery1->SQL->Clear ();

DataModule4->ADOQuery1->SQL->Add ("SELECT COUNT (*) AS b FROM Sities WHERE name ='"+Edit1->Text+"'");

DataModule4->ADOQuery1->Open ();

if (Edit1->Text=="") ShowMessage ("Ви не ввели місто!");

else

if (DataModule4->ADOQuery1->FieldByName ("b") - >AsInteger==0)

{ if (x==1) {

ShowMessage ("Ви програли. Переміг "+Label4->Caption+"!");

Button3->Caption="Почати";

Timer1->Enabled=false;

for (int ii=0; ii<i; ii++)

{ StringGrid1->Cells [0] [ii] ="";

StringGrid1->Cells [1] [ii] ="";

}

StringGrid1->RowCount=1;

Button1->Enabled=false;

Edit1->Enabled=false;

} else

ShowMessage ("Такого немає");

x--;

Label5->Caption=IntToStr (x);

}

else

{ if (G. Search (Edit1->Text))

{ G. find ();

Timer1->Tag = 60;

Timer1->Enabled = true;

k=Edit1->Text;

StringGrid1->Cells [0] [i] =k;

ShowMessage ("Хід комп'ютера");

randomize ();

DataModule4->ADOQuery1->Close ();

DataModule4->ADOQuery1->SQL->Clear ();

DataModule4->ADOQuery1->SQL->Add ("SELECT TOP 1 *From Sities where name Like: p ORDER BY Rnd ([id])");

DataModule4->ADOQuery1->Parameters->ParamByName ("p") - >Value = AnsiString (Edit1->Text [Edit1->Text. Length ()]) + AnsiString ("%");

DataModule4->ADOQuery1->Open ();

String dnm = DataModule4->ADOQuery1->FieldByName ("name") - >AsString;

StringGrid1->Cells [1] [i] =dnm;

Edit2->Text=dnm;

i++;

StringGrid1->RowCount=i+1;

Edit1->Text="";

Edit1->Enabled=true;

Button1->Enabled=true;

} else ShowMessage ("Таке місто вже було!");

}

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: N2Click (TObject *Sender)

{

Button3->Caption="Закінчити";

Button1->Enabled=true;

Edit1->Enabled=true;

Label5->Caption="5";

Label6->Caption="5";

ShowMessage ("Хід гравця "+Label3->Caption);

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: N3Click (TObject *Sender)

{

Timer1->Enabled=false;

ShowMessage ("Кінець гри");

for (int ii=0; ii<i; ii++)

{ StringGrid1->Cells [0] [ii] ="";

StringGrid1->Cells [1] [ii] ="";

}

StringGrid1->RowCount=1;

Button3->Caption="Почати";

}

// ---------------------------------------------------------------------------

void __fastcall TForm2:: N4Click (TObject *Sender)

{

Form2->Visible=false;

Form1->Visible=true;

}

// ---------------------------------------------------------------------------

A.3 Unit3. cpp

#include <vcl. h>

#pragma hdrstop

#include "Unit3. h"

#include "Unit2. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"

TForm3 *Form3;

// ---------------------------------------------------------------------------

__fastcall TForm3:: TForm3 (TComponent* Owner): TForm (Owner) { }

// ---------------------------------------------------------------------------

void __fastcall TForm3:: Button1Click (TObject *Sender)

{

Form2->Label4->Caption=Edit1->Text;

Form3->Visible=false;

Label1->Caption="Гравець 1";

Form2->Visible=true;

Edit1->Text="";

Form3->Visible=false;

}

// ---------------------------------------------------------------------------

void __fastcall TForm3:: Button2Click (TObject *Sender)

{

Label1->Caption="Гравець 2";

Form2->Label3->Caption=Edit1->Text;

Button2->Visible=false;

Button1->Visible=true;

Edit1->Text="";

}

// ---------------------------------------------------------------------------

void __fastcall TForm3:: Button3Click (TObject *Sender)

{

Form2->Label3->Caption=Edit1->Text;

Form2->Visible=true;

Form2->Button1->Visible=false;

Form2->Button2->Visible=false;

Form2->Button4->Visible=true;

Edit1->Text="";

Form2->Label4->Caption="Комп'ютер";

Form3->Visible=false;

}

// ---------------------------------------------------------------------------

A.4 Unit4. cpp

// ---------------------------------------------------------------------------

#include <vcl. h>

#pragma hdrstop

#include "Data. h"

#include "Unit4. h"

#include "Unit2. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"

TForm4 *Form4;

// ---------------------------------------------------------------------------

__fastcall TForm4:: TForm4 (TComponent* Owner): TForm (Owner) { }

// ---------------------------------------------------------------------------

void __fastcall TForm4:: Button2Click (TObject *Sender)

{

// DataModule4->ADOQuery1->Close ();

// DataModule4->ADOQuery1->SQL->Clear ();

// DataModule4->ADOQuery1->SQL->Add ("INSERT into Sities (name) values (: par1)");

// DataModule4->ADOQuery1->ParamByName ("par1") - >AsString=Edit1->Text;

// DataModule4->ADOQuery1->Open ();

}

// ---------------------------------------------------------------------------

A.5 Unit5. cpp

// ---------------------------------------------------------------------------

#include <vcl. h>

#pragma hdrstop

#include "Unit5. h"

#include "Unit2. h"

// ---------------------------------------------------------------------------

#pragma package (smart_init)

#pragma resource "*. dfm"

TForm5 *Form5;

// ---------------------------------------------------------------------------

__fastcall TForm5:: TForm5 (TComponent* Owner): TForm (Owner) { }

// ---------------------------------------------------------------------------

void __fastcall TForm5:: SpeedButton1Click (TObject *Sender)

{

Form5->Visible=false;

Form2->Visible=true;

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.