Розробка ігрової програми "Морський бій"
Поняття та класифікація комп’ютерних ігор. Відтворення гри "Морський бій" у вигляді комп’ютерної програми. Компоненти програмного середовища Delphi, що були використані під час її створення. Алгоритм реалізації ігрового процесу та скріншоти з програми.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | украинский |
Дата добавления | 12.07.2013 |
Размер файла | 418,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ВСТУП
У даному дипломному проекті піде річ про створення ігрової програми «Морський бій». Потрібно буде створити повноцінну, повністю працездатну програму, а також дослідити її та описати деякі її функції. Даний дипломний проект був розроблений в середовищі Delphi 7, що базується на мові програмування Object Pascal. На сучасному етапі розвитку комп'ютерних систем в світі розвинулася і поширилася велика кількість мов програмування, які призначені для різних областей людської діяльності. Визначальним моментом при виборі мови програмування додатків в більшості випадків являється досвід у використанні тієї чи іншої мови.
Delphi - є середовищем розробки програм, яке використовує багато передових ідей і концепцій, закладених в графічному інтерфейсі Windows. Як відомо, середовище розробки великою мірою визначає ефективність роботи програміста. У середовищі програмування Delphi є всі необхідні інструменти для того, щоб створювати повноцінні програми. Писати, компілювати і тестувати програму - все це можна робити, не виходячи з Delphi. Delphi простий і логічний. Він має надзвичайно зручний інтерфейс та чудову функціональність - саме тому Delphi і був обраний, як мова на якій і буде розроблятися гра «Морський бій».
РОЗДІЛ 1: ПОНЯТТЯ ТА КЛАСИФІКАЦІЯ КОМП'ЮТЕРНИХ ІГОР
Комп'ютерна гра - це гра, в ігровому процесі якої гравець використовує інтерфейс користувача щоб отримати зворотню інформацію з відео пристрою.
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), і для розробниками відкрилися ширші можливості.Вказати точну цифру ігор дуже важко. Можна тільки приблизно оцінити число різних найменувань ігор, що є над ринком у час.
1.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, далі буде наведено опис основних компонентів, використаних при виконанні дипломного проекту.
3.1 Компонент TMainMenu
TMainMenu (Рис.10) дозволяє помістити головне меню у програмі. При переміщенні TMainMenu на форму це відбувається, як просто іконка. Іконки такого типу називають невидимим компонентом, оскільки вони невидимі під-час виконання програми. Створення меню включає три кроку:
1) переміщення TMainMenu на форму,
2) виклик Дизайнера Меню через властивість Items в інспекторі об'єктів,
3) визначення пунктів меню в Дизайнері Меню (Рис. 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) ;
3. procedure Set01e2MenuHandle(Handle: HMENU);
3.2 Компонент TLabelEdit
TLabelEdit служить для відображення та редагування тексту на екрані. Можна змінити шрифт і колір мітки, якщо двічі клацнути на властивість Font в Инспекторе Об'єктів. Очевидно, що це легко зробити і під час виконання програми, написавши всього один рядок коду.
Цей компонент доступний з модуля STDCTRLS, а також із Палітри компонентів Standard.
Компонентом є текст, який можна міняти в ході виконання програми. За допомогою цього компонента на робочій поверхні форми можна відобразити інформацію, зробити пояснення і показати назви інших компонентів, а також змінити їх. Але воно має і іншу важливу функцію -- так як у складі тексту TLabelEdit є символи-акселератори, інформація про них при натисканні може передаватися від TLabelEdit іншому елементу управління.
Властивості компонента наведені у табл.1:
Таблиця 1 «Властивості компонента TLabel»
Властивість |
Опис |
|
(Pb) property Caption: TCaption; TCaption = string[255]; |
Містить рядок із виведеним текстом. |
|
(Pb) property Alignment: TAlignment; |
Встановлює правило вирівнювання тексту -- по правому, лівому краю чи з центру клієнтської області. |
|
(Pb) property AutoSize: Boolean; |
Що стосується True відбувається автоматичне приведення розмірів компонента до величини тексту і висоті шрифту. |
|
Продовження табл.1 |
Рroperty ShowAccelChar: Boolean -
показує у TLabelEdit акселератор (символ, значенням якого стоїть знак амперсанда -- '&'). Якщо він «False», амперсанд неможливо інтерпретувати. Що стосується True акселератор виділяється в рядку підкресленням і натискання клавіш <Аlt>+<символ> призводить до передачі фокусу вікна FocusControl (т.к. TLabel сам він не є віконним компонентом).
property FocusControl: TWinControl - Визначає віконний компонент, якому посилаються повідомлення про введення акселератора.
property Transparent: Boolean - Прозорість фону компонента. Якщо властивість встановлено в True, то при перемалюванні елемента управління виходить зафарбування клієнтської області. Якщо інакше -- відбувається зафарбування пензлем bsSolid і Color.
property WordMrap: Boolean - Визначає можливість розриву слів у разі, якщо довжина виведеного тексту перевищує ширину компонента.
3.3 Компонент TPanel
TPanel - управляючий елемент, схожий на TGroupBox, що використовують у декоративних цілях. Щоб використовувати TPanel (Рис.11), просто помістіть його на форму і далі перемістіть на нього інші компоненти. Тепер при переміщенні TPanel пересуватимуться й інші компоненти. TPanel застосовується також до створення панелі інструментів і вікна статусу.
Рис.11
Цей компонент доступний з модуля EXTCTRLS, і викликається з сторінки Палітри компонентів Standard.
Цей компонент -- є несучою конструкцією розміщувати інші елементи управління. На відміну від простої рамки (TBevel) панель сама є віконним елементом управління і батьком всім розміщених у ньому компонентів. Часто її використовують із створення панелей інструментів.
За зовнішнє оформлення панелі відповідають властивості:
property Bevel Inner: TPanelBevel;
property BevelOuter: TPanelBevel;
TPanelBevel = (bvNone, bvLowered, bvRaised) ;
property BevelWidth: TBevelWidth;
TBevelWidth = 1..Maxint;
property BorderWidth: TBorderWidth;
TBorderWidth = 0..Maxint ;
На межах панелі розміщуються дві спеціальні обмережуюючі рамки (bevels): Bevellnner і BevelOuter. За допомогою комбінації білого і сірого кольорів вони імітують тривимірність -- випуклість (bvRaised) чи утоп-ленность (bvLowered). Обидві рамки мають ширину BevelWidth.
Зовнішня -- BevelOuter -- міститься за периметром панелі, друга -- Bevellnner -- всередині з відривом BorderWidth від нього. Обидві можуть бути невидимими (bvNone), випуклими чи втопленими.
Комбінуючи поєднання bvLowered/bvRaised, можна створити навколо панелі "рів" чи "вал".
Ілюзію тривимірності може підкреслити також стиль обрамлення компонента:
property BorderStyle: TBorderStyle;
TBorderStyle = bsNone .. bsSingle;
Значення bsSingle означає, що панель буде облямована чорної лінією одиничної товщини (за периметром, зовні від обох рамок).
Вирівнювання тексту заголовка панелі визначається з допомогою властивості:
property Alignment: TAlignment;
У обробнику події: property OnResize: TNotifyEvent передбачена реакція на зміну розмірів панелі.
3.4 Компонент TBitBtn
TBitBtn - кнопка на кшталт TButton, проте, на ній можна розмістити картинку (Рис.12). TBitBtn має низку визначених типів (bkClose, bkOK та інших), під час виборів яких кнопка приймає відповідний вид. З іншого боку, натискання кнопки на модальном вікні (Form2.ShowModal) призводить до закриттю вікна з певним модальним результатом (Form2.ModalResult). Цей компонент доступний з модуля BUTTONS, і залишається сторінка Палітри компонентів Additional.
Рис.12
Ця кнопка, будучи нащадком TButton, може нести у собі піктограму і має ряд додаткових зручностей у використанні. У Delphi вже визначено стандартні види кнопок:
property Kind: TBitBtnKind;
TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bklgnore, bkAll);
Для кожної їх визначено ModalResult:
BitBtnModalResults: 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];
3. в неї змінена піктограма;
4. модальний результат досягнуто, але не відповідає певному при цьому жодному виду кнопок.
За зовнішній вигляд цієї кнопки відповідають властивості, розглянуті нижче. Стиль зображення кнопок залежно від ОС задається властивістю:
property Style: TButtonStyle;
TButtonStyle = (bsAutoDetect, bsWin31, bsNew);
Стиль bsNew відповідає Windows 95. У кожному разі коректним буде застосування стилю bsAutoDetect, яка сама розпізнає версію системи. Піктограмма кнопки, текстом якої видно на поверхні, визначається властивістю:
property Glyph: TBitmap;
До сформування ефекту натискання картинка повинна трохи змінюватися залежно від стану; ще, окрема картинка, потрібна для неактивного стану (коли натискання не сприймається). У властивості Glyph мусить бути одна бітова карта, але вона може утримувати картинки відразу для кількох станів кнопки (максимум чотири). Вони інтерпретуються як відповідні нормальному (отжатому), забороненого (неактивному), нажатому і утопленному станам (останнє вживається лише для кнопок TSpeedButton). І тому картинки мають бути розташованими поспіль впритул за горизонталлю. Наприклад, при розмірі картинок 16х16 потрібна об'єднана бітова карта 64х16. Якщо кожна гілка картинок квадратна і ширина загальної картинки нацело ділиться на висоту, то, при присвоєння її властивості Glyph система зможе розпізнати їх і скоригувати кількість, обумовлений властивістю:
property NumGlyphs: TNumGlyphs ;
TNumGlyphs = 1..4;
При відмальовці залежно стану з великої бітовой карти буде використано потрібна частина.
Три властивості визначають розташування тексту:
property Layout: TButtonLayout;
Спосіб вирівнювання піктограми щодо країв кнопки. Можливо одним з чотирьох способів:
TButtonLayout = (biGlyphLeft, biGlyphRight, biGlyphTop, biGlyphBottom);
Відстань від відповідного способу вирівнювання краю кнопки до пікто грами описується властивістю:
property Margin: Integer;
Проміжок між піктограмою і текстом дорівнює:
property Spacing: Integer;
Якщо властивості Margin, Spacing чи обидва не задано (за умовчанням рівні -1), значення цих проміжків вибираються системою. Кнопка також має метод Click й поліпшуючи властивості Caption, ModalResult, Default і Cancel. Статус Default отримують кнопки видів bkOk, bkYes, a Cancel -- кнопки видів bkCancel, bkNo.
3.5 Компонент TImage
TImage - відображає графічне зображення на формі (Рис.13). Сприймає формати BMP, ISO, WMF. Якщо картинку підключити під час створення дизайну програми, вона прикомпілюется до EXE файлу.
Рис.13
Цей компонент доступний з модуля EXTCTRLS і викликається сторінкою Палітри компонентів Additional.
Цей компонент служить надбудовою над класом TPicture і замикає всю ієрархію графічних об'єктів VCL. Він призначений для показу на формі зображення: бітовой карти (TBitmap), метафайла (TMetafile), значка (TIcon).
property Canvas: TCanvas;
Якщо тут інше, то спроба звернення до властивості викликає виняткову ситуацію EInvalidOperation, оскільки малювати на метафайлі чи значку не можна.
Три наступні властивості визначають, як саме TРicture розташований у робочої області компонента:
property AutoSize: Boolean;
-- означає, що розміри компонента настроюється за величиною що міститься у ньому графічного об'єкта. Встановлювати їх у «True» потрібно перед завантаженням зображення з файла чи буфера обміну;
property Stretch: Boolean;
-- якщо ця властивість встановлено в «True», то зображення "натягується" на робочу область, за необхідності зменшуючи чи збільшуючи свої розміри. Якщо він встановлено в False, то виконує функцію така властивість;
property 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 %
Розрахуємо освітленість виробничого приміщення методом коефіцієнта використання світлового потоку. Цей метод дозволяє визначити світловий потік, створений лампами, і розрахувати освітленість в робочому приміщенні або за даним рівнем освітленості - потрібну кількість світильників. Основне рівняння методу:
F = E·s·k·z / з·n,(1.1)
де F - світловий потік однієї лампи (для лампи E14-288SW-1700 (white) потужністю 18 Вт, F=450 Лм );
S - площа приміщення:
S = 11,9 · 5,6 = 66,64 м2,(1.2)
k - коефіцієнт запасу, що враховує старіння ламп, запиленість та забруднення світильників;
z - поправочний коефіцієнт, що характеризує нерівномірність освітлення (відношення мінімальної освітленості до середньої горизонтальної), z = 1,1;
з - коефіцієнт використання світлового потоку освітлювальної установки у частках;
n - кількість ламп, n = 8.
Коефіцієнт використання світлового потоку освітлювальної установки у певному приміщенні визначається з урахуванням відбивних властивостей поверхонь приміщення та індекса приміщення. Індекс приміщення визначається за формулою:
і = а*b / (Нр* (а + b)), (1.3)
де а, b - відповідно ширина та довжина приміщення, м;
Нр - висота підвішування світильників над робочою поверхнею, м.
Нр = 3,2 - 0,8 = 2,4 м, де 0,8 - висота столу.
Для визначення коеффіцієнту використання світлового потоку освітлювальної установки з необхідно визначити індекс приміщення і:
i = 11,9*5,6/(2.4*(11,9+5,6)) = 1,59
З урахуванням коеффіціентів відбиття стін та стелі (стелі=70 %і стін=40%) визначаємо з=56%. Кількість ламп можна подати як добуто ккількості ламп у світильнику на кількість світильників (nл ·nc). Для визначення кількості світильників рівняння матиме вигляд:
nс = E·S·k·z /(F·з·nл)(1.4)
Згідно нормативних актів значення освітленості на поверхні робочого столу в зоні розміщення документів має становити 300-500 лк. З вихідних даних маємо k=1.4; z=1.1; nл=8;
nс = 500 · 66,64 · 1,4 · 1,1/(450 · 0,56 ·8) = 25,4
25 світильників
Результат: отримаємо 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
2. Дворак Дж. 350 ігор для IBM PC. -С-Пб.:Пергамент, 1994, -318с.
3. Фаронов В.В. Delphi 4. Навчальний курс. -М.: Нолидж, 1999. -447с.
4. Дарахвелидзе П.Г., Марков Е.П. Delphi - середовище візуального програмування. -СПб.:BHV-Санкт-Петербург, 1996. -352с.
5. Епанешников А., Епанешников У. Програмування серед Delphi 2.0. Навчальний посібник. В. 4-х частинах. Ч.1. Опис середовища. -М.:ДИАЛОГ-МИФИ, 1997. -235с.
6. Епанешников А., Епанешников У. Програмування серед Delphi 2.0. Навчальний посібник. В. 4-х частинах. Ч.2. Мова Object Pascal 9.0. -М.:ДИАЛОГ-МИФИ, 1997. -319с.
7. Фаронов В.В. Турбо Паскаль 7.0. Початковий курс. Навчальний посібник. -М.:Нолидж, 1997. -616с.
8. Фаронов В.В. Турбо Паскаль 7.0. Практика програмування. Навчальний посібник. -М.:Нолидж, 1997. -432с.
ДОДАТОК
В додатку вказаний код програми, алгоритм реалізації ігрового процесу та скріншоти з програми.
ДОДАТОК А
Алгоритм реалізації ігрового процесу програми:
1) При запуску програми автоматично запускається нова гра (Рис.14), де гравцю пропонується ввести своє ім'я та обрати стратегію комп'ютера-опонента (логічно-математичну або хаотичну).
Рис. 14
2) Далі обирається схема розташування кораблів на ігровому полі, у грі передбачена можливість автоматичного розташування кораблів (Рис.15).
Рис. 15
3) Після натиснення на кнопку «Играть» починається гра (Рис.16).
Рис. 16
4) Після того як один з опонентів знищує всі кораблі суперника на екрані з'являється вікно, яке оголошує про результат гри (Рис.17).
Рис. 17
5) Також у грі доступна довідка, яка викликається кнопкою «помощь» (Рис.18)
Рис. 18
ДОДАТОК Б
Код програми
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus, StdCtrls, Buttons, XPMan, ExtDlgs, Unit3, Unit4, jpeg;
type
mas = array[-1..10,-1..10]of integer;
rmas = array[0..9,0..9]of real;
TfmBattle = class(TForm)
pnFields: TPanel;
myField: TImage;
cField: TImage;
MainMenu1: TMainMenu;
N1: TMenuItem;
Panel1: TPanel;
Panel2: TPanel;
N2: TMenuItem;
N3: TMenuItem;
Panel3: TPanel;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
Label1: TLabel;
RadioGroup1: TRadioGroup;
bbOK: TBitBtn;
bbRe: TBitBtn;
pnSet: TPanel;
Label2: TLabel;
cbF: TCheckBox;
RadioGroup2: TRadioGroup;
bbOkSet: TBitBtn;
lbName: TLabel;
Label3: TLabel;
leName: TLabeledEdit;
XPManifest1: TXPManifest;
pnLegend: TPanel;
Shape3: TShape;
Додаток Б продовження
Shape4: TShape;
Shape5: TShape;
Shape6: TShape;
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
Auto: TBitBtn;
Memo1: TMemo;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
rbF: TRadioButton;
rbS: TRadioButton;
rb3: TRadioButton;
rb2: TRadioButton;
rb1: TRadioButton;
Panel4: TPanel;
Shape1: TShape;
Shape2: TShape;
rbV: TRadioButton;
rbG: TRadioButton;
rb4: TRadioButton;
Image1: TImage;
pnMes: TPanel;
lbMes: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure FormActivate(Sender: TObject);
procedure myFieldMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure bbReClick(Sender: TObject);
procedure bbOKClick(Sender: TObject);
procedure bbOkSetClick(Sender: TObject);
procedure cFieldMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure N8Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure AutoClick(Sender: TObject);
Додаток Б продовження
procedure N6Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure ShutThrough(myField:TImage;var f:boolean);
var i,j,k,l:integer;
begin
f:=True;
Repeat
l:=Random(10);
k:=Random(10);
until Free(l,k) and CanBe(l,k);
ShutStat(l,k);
//ShowMessage(IntToStr(A[l,k]));
begin
if A[y,z]>0
then
begin
pp:=pp+1;
kp:=kp+1;
state:=2;
ds1:=ds1+1;
C[y,z]:=-A[y,z];
if A[y,z]=1
then
begin
Ds[1]:=Ds[1]-1;
state:=1;
C[y,z]:=-1;
C[y,z+1]:=-5;
C[y,z-1]:=-5;
C[y-1,z]:=-5;
C[y+1,z]:=-5;
C[y-1,z+1]:=-5;
C[y+1,z+1]:=-5;
C[y-1,z+1]:=-5;
C[y-1,z-1]:=-5;
PaintOut(y-1,z,myField);
PaintOut(y-1,z-1,myField);
PaintOut(y-1,z+1,myField)
PaintOut(y,z-1,myField);
PaintOut(y,z+1,myField);
PaintOut(y+1,z,myField);
PaintOut(y+1,z-1,myField);
PaintOut(y+1,z+1,myField);
PaintIn(y,z,205,38,38,myField);
end
else
begin
PaintIn(y,z,238,180,34,myField);
end;
end
else
begin
C[y,z]:=-5;
PaintOut(y,z,myField);
f:=False;
end;
end;
end;
procedure ShutAround(myField:TImage;var f:boolean;var i:integer);
var pf:boolean;
begin
//ShowMessage(IntToStr(i));
pf:=False;
Repeat
Case i of
1:begin
if ((y-1)>=0)and (C[y-1,z]=0)
then
pf:=True
else
i:=2;
end;
2:begin
if ((z+1)<=9)and (C[y,z+1]=0)
then
pf:=True
else
i:=3;
end;
3:begin
if ((y+1)<=9)and (C[y+1,z]=0)
then
pf:=True
else
i:=4;
end;
4:begin
if ((z-1)>=0)and (C[y,z-1]=0)
then
pf:=True
else
i:=1;
end;
end;
until pf;
Case i of
1:begin
If (A[y-1,z]>0)
Then
begin
pp:=pp+1;
kp:=kp+1;
f:=True;
ds1:=ds1+1;
C[y-1,z]:=-A[y-1,z];
if (A[y-1,z]=2)
then
begin
Ds[2]:=Ds[2]-1;
C[y-2,z]:=-5;
C[y-2,z-1]:=-5;
C[y-2,z+1]:=-5;
C[y-1,z-1]:=-5;
C[y-1,z+1]:=-5;
C[y,z-1]:=-5;
C[y,z+1]:=-5;
C[y+1,z]:=-5;
C[y+1,z-1]:=-5;
C[y+1,z+1]:=-5;
state:=1;
PaintIn(y-1,z,205,38,38,myField);
end
else
begin
state:=3;
PaintIn(y-1,z,238,180,34,myField);
end;
end
else
begin
f:=False;
C[y-1,z]:=-5;
PaintOut(y-1,z,myField);
end;
end;
begin
If (A[y,z+1]>0)
Then
begin
pp:=pp+1;
kp:=kp+1;
f:=True;
ds1:=ds1+1;
C[y,z+1]:=-A[y,z+1];
if (A[y,z+1]=2)
then
begin
Ds[2]:=Ds[2]-1;
C[y,z+2]:=-5;
C[y-1,z+2]:=-5;
C[y+1,z+2]:=-5;
C[y-1,z+1]:=-5;
C[y+1,z+1]:=-5;
C[y-1,z]:=-5;
C[y+1,z]:=-5;
C[y,z-1]:=-5;
C[y-1,z-1]:=-5;
C[y+1,z-1]:=-5;
state:=1;
PaintIn(y,z+1,205,38,38,myField);
end
else
begin
state:=3;
PaintIn(y,z+1,238,180,34,myField);
end;
end
else
begin
f:=False;
C[y,z+1]:=-5;
PaintOut(y,z+1,myField);
end;
end;
begin
If (A[y+1,z]>0)
then
begin
pp:=pp+1;
kp:=kp+1;
f:=True;
ds1:=ds1+1;
C[y+1,z]:=-A[y+1,z];
if (A[y+1,z]=2)
then
begin
Ds[2]:=Ds[2]-1;
C[y+2,z]:=-5;
C[y+2,z-1]:=-5;
C[y+2,z+1]:=-5;
C[y+1,z-1]:=-5;
C[y+1,z+1]:=-5;
C[y,z-1]:=-5;
C[y,z+1]:=-5;
C[y-1,z]:=-5;
C[y-1,z-1]:=-5;
C[y-1,z+1]:=-5;
state:=1;
PaintIn(y+1,z,205,38,38,myField);
end
else
begin
state:=3;
PaintIn(y+1,z,238,180,34,myField);
end;
end
else
begin
f:=False;
C[y+1,z]:=-5;
PaintOut(y+1,z,myField);
end;
end;
begin
If (A[y,z-1]>0)
then
begin
pp:=pp+1;
kp:=kp+1;
f:=True;
ds1:=ds1+1;
C[y,z-1]:=-A[y,z-1];
if (A[y,z-1]=2)
then
begin
Ds[2]:=Ds[2]-1;
C[y,z-2]:=-5;
C[y-1,z-2]:=-5;
C[y+1,z-2]:=-5;
C[y-1,z-1]:=-5;
C[y+1,z-1]:=-5;
C[y-1,z]:=-5;
C[y+1,z]:=-5;
C[y,z+1]:=-5;
C[y-1,z+1]:=-5;
C[y+1,z+1]:=-5;
state:=1;
PaintIn(y,z-1,205,38,38,myField);
Else
begin
state:=3;
PaintIn(y,z-1,238,180,34,myField);
end;
end
else
begin
f:=False;
C[y,z-1]:=-5;
PaintOut(y,z-1,myField);
end;
end;
Размещено на Allbest.ru
Подобные документы
Інструменти середовища C++Builder, які були використані в програмі. Робота з файлами, їх відкриття, відображення та закриття. Розробка основних функцій для реалізації програми. Тестування програмного забезпечення. Блок-схема та алгоритм програми.
курсовая работа [924,3 K], добавлен 14.01.2014Історія розвитку Delphi (Object Pascal). Інтегроване середовище розробки Delphi. Ознайомлення з історією створення і використання логічної гри "Пазли". Реалізування ігрової комп’ютерної програми "Конструктор пазлів" в середовищі програмування Delphi 7.
курсовая работа [2,2 M], добавлен 10.11.2015Створення програми для роботи з веб-камерою з автоматичним визначенням встановленої камери на комп'ютері. Характеристика апаратної конфігурації програми. Опис мови і середовища програмування. Розробка алгоритму, інструкції для програміста та користувача.
курсовая работа [1,2 M], добавлен 26.07.2013Програми, які виводять на екран характеристики комп'ютера. Розробка програми "Монітор використання ресурсів комп’ютера" на мові програмування ASM-86. Алгоритм програми та її реалізація. Системні вимоги, інструкція для користувача, лістинг програми.
курсовая работа [22,2 K], добавлен 08.08.2009Огляд та класифікація комп'ютерних ігор. Алгоритм розташування кораблів на ігровому полі. Виконання алгоритму гри комп'ютера з використанням методу випадкових чисел. Стратегія гри комп'ютера. Обґрунтування вибору середовища програмної реалізації.
курсовая работа [616,5 K], добавлен 26.01.2023Функції комп'ютерної програми-органайзера, пов'язані із забезпеченням роботи календаря, записної книжки, менеджера контактів (адресно-телефонної книги), годинника, калькулятора. Програмна модель, розробка інтерфейсу і тестування програми, інсталяція.
курсовая работа [932,8 K], добавлен 03.06.2010Позначення і назва програми, забезпечення, необхідне для її функціонування. Опис логічної структури, алгоритм, структура. Типи комп'ютерів і пристроїв, що використовуються при роботі програми. Формат, описання та спосіб кодування вхідних і вихідних даних.
курсовая работа [163,6 K], добавлен 01.04.2016Характеристика програмної взаємодії людини з комп'ютером. Визначення функціональних та експлуатаційних потреб при голосовому управлінні. Реалізація програмного забезпечення. Розробка тестів та тестування системи. Аналіз ефективності даної програми.
курсовая работа [2,8 M], добавлен 15.10.2014Загальна характеристика навчально-наукового комп'ютерного центру. Державні норми влаштування і обладнання кабінетів комп'ютерної техніки. Створення довідкової бази про факультет комп’ютерних систем для приймальної комісії у вигляді сайту для абітурієнтів.
отчет по практике [72,0 K], добавлен 07.07.2010Використання комп'ютерних технологій та програмного забезпечення. Загальні відомості про середовище візуального програмування Delphi 7. Аналітичний огляд програм, які вирішують задачі методом Крамера або методом Гауса. Розробка програми "Лічильник задач".
курсовая работа [2,7 M], добавлен 10.04.2014