Розробка ігрової програми 'Морський бій'

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

Розробка ігрової програми 'Морський бій'

ВСТУП

У даному дипломному проекті піде річ про створення ігрової програми «Морський бій». Потрібно буде створити повноцінну, повністю працездатну програму, а також дослідити її та описати деякі її функції. Даний дипломний проект був розроблений в середовищі Delphi 7, що базується на мові програмування Object Pascal. На сучасному етапі розвитку комп’ютерних систем в світі розвинулася і поширилася велика кількість мов програмування, які призначені для різних областей людської діяльності. Визначальним моментом при виборі мови програмування додатків в більшості випадків являється досвід у використанні тієї чи іншої мови.

Delphi - є середовищем розробки програм, яке використовує багато передових ідей і концепцій, закладених в графічному інтерфейсі Windows. Як відомо, середовище розробки великою мірою визначає ефективність роботи програміста. У середовищі програмування Delphi є всі необхідні інструменти для того, щоб створювати повноцінні програми. Писати, компілювати і тестувати програму - все це можна робити, не виходячи з Delphi. Delphi простий і логічний. Він має надзвичайно зручний інтерфейс та чудову функціональність - саме тому Delphi і був обраний, як мова на якій і буде розроблятися гра «Морський бій».

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

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

.1      Розвиток комп’ютерних ігор

Комп'ютерні ігри - зовсім не новий винахід. Їх історія почалася з кінця 1970 років. Насправді усе почалося з моделі залізниці. Стів Рассел був одним з членів Клубу Моделей Залізних доріг Високої Технології в Технологічному інституті. Будучи хорошим програмістом, він влітку 1961 року працював у Статистичній лабораторії, коли його та його друзів виникла думка перенести «мильні» науково-фантастичні розповіді Е.Е.Сміта на комп'ютери. У 1962 року Стів розробив програму для PDP-1 в якій виконувалая симуляція управління залізничною станцією. Ця програма і вважається одним із основоположників комп’ютерних ігор. Ця ж таки машина PDP-1 тепер виставлена в комп'ютерному музеї Бостона в Массачусетському Технологічному інституті (Рис.1).

Рис.1

Останнім часом продажу програмного забезпечення збільшуються незначно, тоді як продажу ігрових програм зростають експоненціально. Ігри для платформи Windows становлять переважна більшість. Ігрова програмне забезпечення - це третя за величиною доходів галузь індустрії програмного забезпечення після текстових процесорів і електронних таблиць Донедавна середовище Windows використовувалася переважно як платформа до створення ігор, першоначально розроблених для Macintosh. Це відтворювалося з урахуванням пакета QuickTime фірми Apple. Нерідко використовувався пакет Video for Windows, він дозволяє відображати оцифроване відео. Потім з'явилися бібліотеки WinG і WinToon, з урахуванням яких фірма Sierra створила гру King's Quest VII. Це був перші спроби використовувати Windows як платформу для створення ігрових програм. Переваги такого підходу досить очевидні - єдиний інтерфейс, наявність стандартних драйверів для більшості мультимедійних пристроїв і можливість управління ними стандартними способами. Потім з'явилася нова версія - Windows 95, до складу якої було включено бібліотеку WinG (як підсистема GDI), і для розробниками відкрилися ширші можливості.Вказати точну цифру ігор дуже важко. Можна тільки приблизно оцінити число різних найменувань ігор, що є над ринком у час.

.2 Класифікація комп'ютерних ігор

Пригодницькі ігри. Ігри можуть бути чудовим засобом оповідання історії. Ці ігри є мультиплікаційною розповіддю, де можна побачити й контролювати основний персонаж на вельми детальній розповіді. Вони можуть бути про що завгодно, починаючи з жалісливих оповідань до технотриллерів, науково-фантастичних пригод, фантазій і оповідань, вкрай наповнених різними обманами і шахрайствами. Наприклад (Рис.2) «Splinter Cell».

 

Рис.2

Спортивні симулятори. Це можуть бути як гоночні симулятори, так і футбольні, баскетбольні та інші. Яскравим прикладом є «Need for Speed: Undergaund 2» (Рис.3).

Рис.3

Аркадні ігри. Це класичні «ігри дії» - все залежить від того, як швидко руки можуть натискати на джойстик. У з ці ігри можна гратися з допомогою клавіатури та миші, або джойстика. Знамениті «Танчики» є представником аркадних ігор (Рис.4)

Рис.4

Настольні ігри, солітер і салонні гри. Багато старих улюблених ігор з'явилося у комп'ютерному варіанті. Більше немає потрібно працювати пошуками партнера, щоб пограти у шахи (Рис.5).

 

Рис.5

Симулятор реальності («ігри у бога»). Ці ігри дозволяють створювати реальний світ із нічого. Це ігри, які дозволять керувти окремим персонажем, містом, країною і навіть світом. Наприклад: «Sims» (Рис. 6)

Рис.6

Стратегічні та військові симулятори. Тут можна прийняти участь у великих історичних подіях, прийняти командування німецькою армією при Ленінграді чи армією Наполеона при Ватерлоу. Тут можна перевірити себе як полководця та стратега використовуючи різноманітні військові хитрощі та ведучи логічні розрахунки Це військові стратегії минулого, сьогодення чи майбутнього. Наприклад «Command and Conquer» (Рис.7)

Рис.7

Ігри для дітей. Якщо є домашній комп'ютер, і ви хочете щоб діти навчилися його використовувати, то ці ігри допоможуть вам у цьому. Також це буде приємним проведенням часу для вашої дитини. Деякі з цих ігор змушують навіть дорослих весело провести годину-другу. Яскравим представником є «Как достать соседа» (Рис.8).

Рис.8

Ігри «On-line». Ця категорія ігор відома як «он-лайн» і включає у собі різноманітні ігри, як у великих коммерційних «он-лайн» мережах так і у багатьох локальних мережах типу «дошка оголошень» (bulletin board system - BBS). Для ігор «он-лайн», крім особистого комп'ютера, необхідні модем і кредитна картка. Приклад: «World Of Warkraft» (Рис.9)

Рис.9

комп’ютерний гра delphi програма

РОЗДІЛ 2: ПОСТАНОВКА ЗАВДАННЯ

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

Гра «Морський Бій» досить відома і популярна. Практично кожен із нас грав у цю гру в той чи інший період свого життя. Останніми роками в зв’язку з появою комп’ютерів та стрімким розвитком програмного забезпечення інтерес до неї значно підвищився - все старе знову в моді. Якщо набрати запит на пошук в інтернеті, то пошукова машина видасть кілька тисяч посилань. Тут і реклама гри, і якісні дослідження оптимальних стратегій ведення бою та інше. В даному дипломному проекті необхідно розробити ігрову програму «Морський бій», що включає ігрову панель, що складається з двох полів: людини і комп'ютера. На полі розставляються 10 кораблів різного класу. Чотири корабля площею в одну клітинку, три корабля площею дві клітинки, два корабля площею три клітинки, і тільки один корабель площею чотири клітинки. По черзі противникам дають можливість пострілу по чужому полю, результати якого відбиваються у ньому. Влучаючи в корабель дають можливість додаткового пострілу. Перемога присуджується гравцю, потопившому всі кораблі противника. Довідкова інформація містить ім’я автора роботи.

РОЗДІЛ 3: ОПИС КОМПОНЕНТІВ, ВИКОРИСТАНИХ ПРИ РЕАЛІЗАЦІЇ ПРАКТИЧНОЇ ЧАСТИНИ

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

.1 Компонент TMainMenu

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

) переміщення TMainMenu на форму,

) виклик Дизайнера Меню через властивість Items в інспекторі об'єктів,

) визначення пунктів меню в Дизайнері Меню (Рис. 10).

Рис.10

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

Щоб реалізувати об'єднання меню, в форми, меню яких приєднано до головного, необхідно встановити True властивість: property AutoMerge: Boolean.

У цьому меню він повинен залишатися «False», інакше головне меню буде невидимим. Об'єднання відбуватиметься автоматично при активізації нових форм чи серверів OLE. Крім автоматичного режиму, об'єднання меню можна виконати при виклику методу: procedure Merge(Menu: TMainMenu).

Прєднуване меню за необхідності, можливо легко відєднати викликом процедури: procedure Unmerge(Menu: TMainMenu).

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

Об'єднання меню відбувається за спеціальними правилами, в основі яких лежить використання групового індексу (властивості Group Index) кожного объекту TMenuItem.

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

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

До вікнон інтерфейсу MDI все сказане стосується лише під час запуску програми. Якщо у формах докладання з дискурсом fsMDIChild є свої основні меню, то ту форму автоматично зіллються з головним меню форми fsMDIForm незалежно від стану AutoMerge.

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

Є лише три методу TMainMenu підходять для роботи з меню OLE:

1.      procedure PopulateOle2Menu(SharedMenu: HMenu; Groups: array of Integer; var Widths: array of Longint);

2.      procedure GetOle2AcceleratorTable(var hAccel: THandle; var numAccels: Word; Groups: array of Integer) ;

.        procedure Set01e2MenuHandle(Handle: HMENU);

.2 Компонент TLabelEdit

служить для відображення та редагування тексту на екрані. Можна змінити шрифт і колір мітки, якщо двічі клацнути на властивість Font в Инспекторе Об'єктів. Очевидно, що це легко зробити і під час виконання програми, написавши всього один рядок коду.

Цей компонент доступний з модуля STDCTRLS, а також із Палітри компонентів Standard.

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

Властивості компонента наведені у табл.1:

Таблиця 1 «Властивості компонента TLabel»

Властивість

Опис

Містить рядок із виведеним текстом.

(Pb) property Alignment: TAlignment;

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

(Pb) property AutoSize: Boolean;

Що стосується True відбувається автоматичне приведення розмірів компонента до величини тексту і висоті шрифту.






Продовження табл.1


Рroperty ShowAccelChar: Boolean -

показує у TLabelEdit акселератор (символ, значенням якого стоїть знак амперсанда - '&'). Якщо він «False», амперсанд неможливо інтерпретувати. Що стосується True акселератор виділяється в рядку підкресленням і натискання клавіш <Аlt>+<символ> призводить до передачі фокусу вікна FocusControl (т.к. TLabel сам він не є віконним компонентом).FocusControl: TWinControl - Визначає віконний компонент, якому посилаються повідомлення про введення акселератора.Transparent: Boolean - Прозорість фону компонента. Якщо властивість встановлено в True, то при перемалюванні елемента управління виходить зафарбування клієнтської області. Якщо інакше - відбувається зафарбування пензлем bsSolid і Color. WordMrap: Boolean - Визначає можливість розриву слів у разі, якщо довжина виведеного тексту перевищує ширину компонента.

.3 Компонент TPanel

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

Рис.11

Цей компонент доступний з модуля EXTCTRLS, і викликається з сторінки Палітри компонентів Standard.

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

За зовнішнє оформлення панелі відповідають властивості:Bevel Inner: TPanelBevel;BevelOuter: TPanelBevel;= (bvNone, bvLowered, bvRaised) ;BevelWidth: TBevelWidth;= 1..Maxint;BorderWidth: TBorderWidth;= 0..Maxint ;

На межах панелі розміщуються дві спеціальні обмережуюючі рамки (bevels): Bevellnner і BevelOuter. За допомогою комбінації білого і сірого кольорів вони імітують тривимірність - випуклість (bvRaised) чи утоп-ленность (bvLowered). Обидві рамки мають ширину BevelWidth.

Зовнішня - BevelOuter - міститься за периметром панелі, друга - Bevellnner - всередині з відривом BorderWidth від нього. Обидві можуть бути невидимими (bvNone), випуклими чи втопленими.

Комбінуючи поєднання bvLowered/bvRaised, можна створити навколо панелі "рів" чи "вал".

Ілюзію тривимірності може підкреслити також стиль обрамлення компонента:BorderStyle: TBorderStyle;= bsNone .. bsSingle;

Значення bsSingle означає, що панель буде облямована чорної лінією одиничної товщини (за периметром, зовні від обох рамок).

Вирівнювання тексту заголовка панелі визначається з допомогою властивості:Alignment: TAlignment;

У обробнику події: property OnResize: TNotifyEvent передбачена реакція на зміну розмірів панелі.

.4 Компонент TBitBtn

- кнопка на кшталт TButton, проте, на ній можна розмістити картинку (Рис.12). TBitBtn має низку визначених типів (bkClose, bkOK та інших), під час виборів яких кнопка приймає відповідний вид. З іншого боку, натискання кнопки на модальном вікні (Form2.ShowModal) призводить до закриттю вікна з певним модальним результатом (Form2.ModalResult). Цей компонент доступний з модуля BUTTONS, і залишається сторінка Палітри компонентів Additional.

Рис.12

Ця кнопка, будучи нащадком TButton, може нести у собі піктограму і має ряд додаткових зручностей у використанні. У Delphi вже визначено стандартні види кнопок:Kind: TBitBtnKind;= (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bklgnore, bkAll);

Для кожної їх визначено ModalResult:: array[TBitBtnKind] of TModalResult =

(0, mrOk, mrCancel, 0, mrYes, mrNo, 0, mrAbort, mrRetry, mrlgnore, inrAll);

А такожн назва й малюнки до різних станів. Досить встановити значення властивості Kind, і кнопка відразу придбає потрібний вид. Кожна з видів кнопок при натисканні відразу робить певні дії. Так, bkHelp здійснює ініціалізацію системи з своїм (чи найближчим ненульовим батьківським) контекстом. Кнопка виду bkClose закриває форму, якій вона належить, викликаючи процедуру Close.

Кнопка буде віднесена до виду bkCustom, якщо вона:

1.      призначена Default, та заодно не належить безлічі [bkOk, bkYes];

2.      призначена Cancel, але з належить безлічі [bkCancel, bkNo];

.        в неї змінена піктограма;

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

За зовнішній вигляд цієї кнопки відповідають властивості, розглянуті нижче. Стиль зображення кнопок залежно від ОС задається властивістю:Style: TButtonStyle;= (bsAutoDetect, bsWin31, bsNew);

Стиль bsNew відповідає Windows 95. У кожному разі коректним буде застосування стилю bsAutoDetect, яка сама розпізнає версію системи. Піктограмма кнопки, текстом якої видно на поверхні, визначається властивістю:Glyph: TBitmap;

До сформування ефекту натискання картинка повинна трохи змінюватися залежно від стану; ще, окрема картинка, потрібна для неактивного стану (коли натискання не сприймається). У властивості Glyph мусить бути одна бітова карта, але вона може утримувати картинки відразу для кількох станів кнопки (максимум чотири). Вони інтерпретуються як відповідні нормальному (отжатому), забороненого (неактивному), нажатому і утопленному станам (останнє вживається лише для кнопок TSpeedButton). І тому картинки мають бути розташованими поспіль впритул за горизонталлю. Наприклад, при розмірі картинок 16х16 потрібна об'єднана бітова карта 64х16. Якщо кожна гілка картинок квадратна і ширина загальної картинки нацело ділиться на висоту, то, при присвоєння її властивості Glyph система зможе розпізнати їх і скоригувати кількість, обумовлений властивістю:NumGlyphs: TNumGlyphs ;= 1..4;

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

Три властивості визначають розташування тексту:Layout: TButtonLayout;

Спосіб вирівнювання піктограми щодо країв кнопки. Можливо одним з чотирьох способів:= (biGlyphLeft, biGlyphRight, biGlyphTop, biGlyphBottom);

Відстань від відповідного способу вирівнювання краю кнопки до пікто грами описується властивістю:Margin: Integer;

Проміжок між піктограмою і текстом дорівнює:Spacing: Integer;

Якщо властивості Margin, Spacing чи обидва не задано (за умовчанням рівні -1), значення цих проміжків вибираються системою. Кнопка також має метод Click й поліпшуючи властивості Caption, ModalResult, Default і Cancel. Статус Default отримують кнопки видів bkOk, bkYes, a Cancel - кнопки видів bkCancel, bkNo.

3.5 Компонент TImage

- відображає графічне зображення на формі (Рис.13). Сприймає формати BMP, ISO, WMF. Якщо картинку підключити під час створення дизайну програми, вона прикомпілюется до EXE файлу.

Рис.13

Цей компонент доступний з модуля EXTCTRLS і викликається сторінкою Палітри компонентів Additional.

Цей компонент служить надбудовою над класом TPicture і замикає всю ієрархію графічних об'єктів VCL. Він призначений для показу на формі зображення: бітовой карти (TBitmap), метафайла (TMetafile), значка (TIcon).Canvas: TCanvas;

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

Три наступні властивості визначають, як саме TРicture розташований у робочої області компонента:AutoSize: Boolean;

означає, що розміри компонента настроюється за величиною що міститься у ньому графічного об'єкта. Встановлювати їх у «True» потрібно перед завантаженням зображення з файла чи буфера обміну;Stretch: Boolean;

якщо ця властивість встановлено в «True», то зображення "натягується" на робочу область, за необхідності зменшуючи чи збільшуючи свої розміри. Якщо він встановлено в False, то виконує функцію така властивість;Center: Boolean;

якщо ця властивість встановлено в «True», зображення центруется на робочій області. Інакше - розташовується у її верхньому лівому кутку.

РОЗДІЛ 4: ОХОРОНА ПРАЦІ

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

Робоче місце програміста являє собою приміщення де розміщені персональні комп’ютери, які мають вплив на здоров’я людей, що знаходяться у цьому приміщенні. Площа робочого приміщення 66,64 м2 у якому розташовано 8 робочих місць,кожне робоче місце займає 8,33 м2, що відповідає санітарним нормам проектування приміщень. В приміщенні є 3 вікна площею 10,3 м2, одне розташоване навпроти дверей,є штучне освітлення. НПА 00.-128.10. «Правила охорони праці при експлуатації електронно-обчислювальних машин».

Перелік шкідливих чинників що діють на суб’єкта

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

·        Недостатня освітленість робочої зони

·        Підвищений рівень ураження електричним струмом

·        Підвищений або понижений рівень температури повітря

·        Підвищений рівень електромагнітних випромінювання

·        Підвищений рівень шум, вібрацій , ультразвуку

Штучне освітлення.

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

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

ДБН В.2.5.28-2006 «Природна та штучна освітленність».

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

Розмір приміщення - 11.9х5.6х3.2

Тип світильників - Відкр. ден. світла

Кількість ламп у світильнику - 8 шт.

Тип ламп - E14-288SW-1700 (white) (18 Вт)

Коефіцієнт запасу - 1.4

Поправочний коефіцієнт - 1.1

Довжина - 11.9 м

Ширина -5.6 м

Висота - 3.2 м

Коефіцієнти відбиття:

Стіни - 40 %

Стеля - 70 %

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

= E·s·k·z / з·n,(1.1)

де F - світловий потік однієї лампи (для лампи E14-288SW-1700 (white) потужністю 18 Вт, F=450 Лм );- площа приміщення:= 11,9 · 5,6 = 66,64 м2,(1.2)- коефіцієнт запасу, що враховує старіння ламп, запиленість та забруднення світильників; - поправочний коефіцієнт, що характеризує нерівномірність освітлення (відношення мінімальної освітленості до середньої горизонтальної), z = 1,1;

з - коефіцієнт використання світлового потоку освітлювальної установки у частках; - кількість ламп, n = 8.

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

і = а•b / (Нр• (а + b)), (1.3)

де а, b - відповідно ширина та довжина приміщення, м;

Нр - висота підвішування світильників над робочою поверхнею, м.

Нр = 3,2 - 0,8 = 2,4 м, де 0,8 - висота столу.

Для визначення коеффіцієнту використання світлового потоку освітлювальної установки з необхідно визначити індекс приміщення і:= 11,9•5,6/(2.4•(11,9+5,6)) = 1,59

З урахуванням коеффіціентів відбиття стін та стелі (стелі=70 %і стін=40%) визначаємо з=56%. Кількість ламп можна подати як добуто ккількості ламп у світильнику на кількість світильників (nл ·nc). Для визначення кількості світильників рівняння матиме вигляд:

с = E·S·k·z /(F·з·nл)(1.4)

Згідно нормативних актів значення освітленості на поверхні робочого столу в зоні розміщення документів має становити 300-500 лк. З вихідних даних маємо k=1.4; z=1.1; nл=8;с = 500 · 66,64 · 1,4 · 1,1/(450 · 0,56 ·8) = 25,4

світильників

Результат: отримаємо 25 світильників, це не порушує встановлених норм освітлення 300-500 лк., необхідних для забезпечення нормативних показників освітленості на робочих поверхнях у приміщеннях з робочими місцями, обладнаними комп'ютерною технікою.

Ураження електричним струмом.

ЕОМ з ВДТ і ПП, інше устаткування (апарати управління, контрольно-вимірювальні прилади,світильники),електропроводи та кабелі за виконанням і ступенем захисту мають відповідати класу зони за НПАОП 40.1-1.01-97 ( z0011-98 ),мати апаратуру захисту від струму короткого замикання та інших аварійних режимів. У приміщенні, де одночасно експлуатуються понад п'ять ЕОМзВДТіПП, на помітному та доступному місці встановили аварійний резервний вимикач,який може повністю вимкнути електричне живлення приміщення, крім освітлення. ЕОМ з ВДТ і повинні підключатися до електромережі тільки за допомогою справних штепсельних з'єднань і електророзеток заводського виготовлення. У штепсельних з'єднаннях та електророзетках, крім контактів фазового та нульового робочого провідників, установили спеціальні контакти для підключення нульового захисного провідника. Штепсельні з'єднання та електророзетки для напруги 12 В та 42 В за своєю конструкцією відрізняються від штепсельних з'єднань для напруги 127 В та 220 В.

Мікроклімат

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

Діючі санітарні норми ДСН 3.3.6.042-99 «Санітарні норми мікроклімату виробничих приміщень» установлюють конкретні оптимальні значення температури, відносній вологості й швидкості руху повітря в робочій зоні:

температура, - 22-24 узимку й 23-25 улітку градусів Цельсія;

відносна вологість, - 40-60 відсотків;

швидкість руху повітря,- не більше 0,1 метрів у секунду.

Мікроклімат покладається систематично контролювати шляхом виміру його параметрів і порівняння їх з нормами. Виміру проводять у декількох точках приміщення на висоті 1,3 - 1,5 м від підлоги й на відстані не ближче 1 м від джерел теплоти або зовнішніх стін. У даному приміщенні:температура, - 22 узимку й 24 улітку градусівЦельсія;відносна вологість, - 55 відсотків; швидкість руху повітря 0,085 метрів у секунду, що задовольняє санітарні норми ДСН 3.3.6.042-99.

У даному розділі розглянуті заходи, що виключають або що обмежують вплив на технічний персонал небезпечних і шкідливих виробничих чинників. Зроблений розрахунок освітленості в робочій зоні. Ми отримали 25 світильників,що є найкращим варіантом освітленості робочої зони та не порушує встановлених норм освітленості 300-500лк.Розглянувши питання мікроклімати встановили, що даному приміщенні:температура, - 22 узимку й 24 улітку градусівЦельсія;відносна вологість, - 55 відсотків; швидкість руху повітря 0,085 метрів у секунду, що не порушує санітарні норми . Розглянувши питання небезпеки ураження електричним струмом у приміщенні, де одночасно експлуатуються понад п'ять ЕОМзВДТіПП, на помітному та доступному місці встановили аварійний резервний вимикач, який може повністю вимкнути електричне живлення приміщення, крім освітлення. У штепсельних з'єднаннях та електророзетках,крім контактів фазового та нульового робочого провідників, установили спеціальні контакти для підключення нульового захисного провідника.

ВИСНОВОК:

Середовищне програмування Delphi, дозволяє створювати багато різних за своєю структурою та призначенням програм, від графічних редакторів до програм що ведуть найскладніші математичні розрахунки, від медіаплеєрів до ігор. В даній дипломній головною метою було відтворення гри «Морський бій» у вигляді комп’ютерної програми. У процесі виконання даної дипломної роботи було отримано ігровий програмний продукт, під назвою «Морський бій 1.3». Було здійснено дослідження компонентів програмного середовища Delphi, що були використані під час створення гри.

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

1.      Низький штучний інтелект, що робить малоймовірним перемогу комп'ютера;

2.      Працездатністьпрограми лише серед Windows;

Проте, крім недоліків, є й переваги цього програмного продукту:

1.      Можливість збереження ігрового прогресу.

2.      Програмний продукт невимогливий до системних ресурсів комп'ютера. Мінімальна конфігурація: процесор - не нижче Pentium, оперативна пам'ять - не нижче 16 Mb, операційна система - Windows 95 / 98/ Me / NT / 2000 / XP.

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

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

 

1.      Журнал Комп'ютер Пресс, N1, 1996

.        Дворак Дж. 350 ігор для IBM PC. -С-Пб.:Пергамент, 1994, -318с.

.        Фаронов В.В. Delphi 4. Навчальний курс. -М.: Нолидж, 1999. -447с.

.        Дарахвелидзе П.Г., Марков Е.П. Delphi - середовище візуального програмування. -СПб.:BHV-Санкт-Петербург, 1996. -352с.

.        Епанешников А., Епанешников У. Програмування серед Delphi 2.0. Навчальний посібник. В. 4-х частинах. Ч.1. Опис середовища. -М.:ДИАЛОГ-МИФИ, 1997. -235с.

.        Епанешников А., Епанешников У. Програмування серед Delphi 2.0. Навчальний посібник. В. 4-х частинах. Ч.2. Мова Object Pascal 9.0. -М.:ДИАЛОГ-МИФИ, 1997. -319с.

.        Фаронов В.В. Турбо Паскаль 7.0. Початковий курс. Навчальний посібник. -М.:Нолидж, 1997. -616с.

.        Фаронов В.В. Турбо Паскаль 7.0. Практика програмування. Навчальний посібник. -М.:Нолидж, 1997. -432с.

ДОДАТОК

В додатку вказаний код програми, алгоритм реалізації ігрового процесу та скріншоти з програми.

ДОДАТОК А

Алгоритм реалізації ігрового процесу програми:

)        При запуску програми автоматично запускається нова гра (Рис.14), де гравцю пропонується ввести своє ім’я та обрати стратегію комп’ютера-опонента (логічно-математичну або хаотичну).

Рис. 14

)        Далі обирається схема розташування кораблів на ігровому полі, у грі передбачена можливість автоматичного розташування кораблів (Рис.15).

Рис. 15

)        Після натиснення на кнопку «Играть» починається гра (Рис.16).

Рис. 16

)        Після того як один з опонентів знищує всі кораблі суперника на екрані з’являється вікно, яке оголошує про результат гри (Рис.17).

Рис. 17


Рис. 18

ДОДАТОК Б

Код програми

Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, Menus, StdCtrls, Buttons, XPMan, ExtDlgs, Unit3, Unit4, jpeg;= array[-1..10,-1..10]of integer;= array[0..9,0..9]of real;= class(TForm): TPanel;: TImage;: TImage;: TMainMenu;: TMenuItem;: TPanel;: TPanel;: TMenuItem;: TMenuItem;: TPanel;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TRadioGroup;: TBitBtn;: TBitBtn;: TPanel;: TLabel;: TCheckBox;: TRadioGroup;: TBitBtn;: TLabel;: TLabel;: TLabeledEdit;: TXPManifest;: TPanel;: TShape;

Додаток Б продовження: TShape;: TShape;: TShape;: TStaticText;: TStaticText;: TStaticText;: TBitBtn;: TMemo;: TOpenDialog;: TSaveDialog;: TRadioButton;: TRadioButton;: TRadioButton;: TRadioButton;: TRadioButton;: TPanel;: TShape;: TShape;: TRadioButton;: TRadioButton;: TRadioButton;: TImage;: TPanel;: TLabel;: TButton;: TButton;: TButton;: TButton;FormActivate(Sender: TObject);myFieldMouseDown(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);bbReClick(Sender: TObject);bbOKClick(Sender: TObject);bbOkSetClick(Sender: TObject);cFieldMouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);N8Click(Sender: TObject);N2Click(Sender: TObject);N9Click(Sender: TObject);AutoClick(Sender: TObject);

Додаток Б продовженняN6Click(Sender: TObject);N3Click(Sender: TObject);Button3Click(Sender: TObject);Button4Click(Sender: TObject);ShutThrough(myField:TImage;var f:boolean);i,j,k,l:integer;:=True;:=Random(10);:=Random(10);Free(l,k) and CanBe(l,k);(l,k);

//ShowMessage(IntToStr(A[l,k]));A[y,z]>0:=pp+1;:=kp+1;:=2;:=ds1+1;[y,z]:=-A[y,z];A[y,z]=1[1]:=Ds[1]-1;:=1;[y,z]:=-1;[y,z+1]:=-5;[y,z-1]:=-5;[y-1,z]:=-5;[y+1,z]:=-5;[y-1,z+1]:=-5;[y+1,z+1]:=-5;[y-1,z+1]:=-5;[y-1,z-1]:=-5;(y-1,z,myField);(y-1,z-1,myField);(y-1,z+1,myField)(y,z-1,myField);(y,z+1,myField);(y+1,z,myField);(y+1,z-1,myField);(y+1,z+1,myField);(y,z,205,38,38,myField);(y,z,238,180,34,myField);;[y,z]:=-5;(y,z,myField);:=False;;;;ShutAround(myField:TImage;var f:boolean;var i:integer);pf:boolean;

//ShowMessage(IntToStr(i));:=False;i of

:begin((y-1)>=0)and (C[y-1,z]=0):=True:=2;;

:begin((z+1)<=9)and (C[y,z+1]=0):=True:=3;;

:begin((y+1)<=9)and (C[y+1,z]=0):=True:=4;;

:begin((z-1)>=0)and (C[y,z-1]=0):=True:=1;;;pf;i of

:begin(A[y-1,z]>0):=pp+1;:=kp+1;:=True;:=ds1+1;[y-1,z]:=-A[y-1,z];(A[y-1,z]=2)[2]:=Ds[2]-1;[y-2,z]:=-5;[y-2,z-1]:=-5;[y-2,z+1]:=-5;[y-1,z-1]:=-5;[y-1,z+1]:=-5;[y,z-1]:=-5;[y,z+1]:=-5;[y+1,z]:=-5;[y+1,z-1]:=-5;[y+1,z+1]:=-5;:=1;(y-1,z,205,38,38,myField);:=3;(y-1,z,238,180,34,myField);;:=False;[y-1,z]:=-5;(y-1,z,myField);;;(A[y,z+1]>0):=pp+1;:=kp+1;:=True;:=ds1+1;[y,z+1]:=-A[y,z+1];(A[y,z+1]=2)[2]:=Ds[2]-1;[y,z+2]:=-5;[y-1,z+2]:=-5;[y+1,z+2]:=-5;[y-1,z+1]:=-5;[y+1,z+1]:=-5;[y-1,z]:=-5;[y+1,z]:=-5;[y,z-1]:=-5;[y-1,z-1]:=-5;[y+1,z-1]:=-5;:=1;(y,z+1,205,38,38,myField);:=3;(y,z+1,238,180,34,myField);;:=False;[y,z+1]:=-5;(y,z+1,myField);;;(A[y+1,z]>0):=pp+1;:=kp+1;:=True;:=ds1+1;[y+1,z]:=-A[y+1,z];(A[y+1,z]=2)[2]:=Ds[2]-1;[y+2,z]:=-5;[y+2,z-1]:=-5;[y+2,z+1]:=-5;[y+1,z-1]:=-5;[y+1,z+1]:=-5;[y,z-1]:=-5;[y,z+1]:=-5;[y-1,z]:=-5;[y-1,z-1]:=-5;[y-1,z+1]:=-5;:=1;(y+1,z,205,38,38,myField);:=3;(y+1,z,238,180,34,myField);;:=False;[y+1,z]:=-5;(y+1,z,myField);;;(A[y,z-1]>0):=pp+1;:=kp+1;:=True;:=ds1+1;[y,z-1]:=-A[y,z-1];(A[y,z-1]=2)[2]:=Ds[2]-1;[y,z-2]:=-5;[y-1,z-2]:=-5;[y+1,z-2]:=-5;[y-1,z-1]:=-5;[y+1,z-1]:=-5;[y-1,z]:=-5;[y+1,z]:=-5;[y,z+1]:=-5;[y-1,z+1]:=-5;[y+1,z+1]:=-5;:=1;(y,z-1,205,38,38,myField);:=3;(y,z-1,238,180,34,myField);;:=False;[y,z-1]:=-5;(y,z-1,myField);;;

Похожие работы на - Розробка ігрової програми 'Морський бій'

 

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