Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Реферат Пояснювальна записка аркушів додаток малюнка джерела

Работа добавлена на сайт samzan.net:


26

PAGE  3


Реферат

Пояснювальна записка: ___ аркушів, ___ додаток, ___ малюнка,___ джерела.

Об'єкт розробки - комп'ютерна гра «Pacman».

Ціль роботи – розробити комп’ютерну гру «Pacman». Більш докладно вивчити можливості мови програмування Object Pascal та середовища розробки Borland Delphi а також технології об’єктно-орієнтованого програмування; відробити основні етапи створення програм: постановку задачі, вибір методу рішення, розробка алгоритму, складання програми, занесення програми у пам’ять комп'ютера, налагодження програми і її тестування.

Загальна частина містить відомості про об'єкт розробки.

У спеціальній частині приводяться етапи написання програми для ЕОМ.


ЗМІСТ

[1] Реферат

[2]
ЗМІСТ

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

[4] РОЗРОБКА ГРИ «Pacman»

[5] 1.1 Постановка задачі

[6] 1.2 Ціль розробки програми

[7] НАПИСАННЯ ГРИ «PACMAN»

[8] 2.1 Структура програми

[9] 2.1.1 Модулі

[10] 2.2 Робота з програмою

[11] 2.3 Екранні форми

[12] ЛІТЕРАТУРА

[13]                                                 ДОДАТОК А

[14] ЛІСТИНГ ПРОГРАМИ


ВСТУП

Object Pascal — об'єктно-орієнтований нащадок мови програмування Pascal, відоміший як основна мова програмування середовища Delphi.

Компанія Borland використовувала назву «Object Pascal» для мови програмування у перших версіях RAD Delphi, проте пізніше назвала її «мовою програмування Delphi».

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

Саму розробку програми можна поділити на дві частини: візуальну та алгоритмічну.

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

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

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

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

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

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

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

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

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

учбових цілей.

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

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

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

вико

ристання.

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

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

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

     


  

                                 1 ЗАГАЛЬНА ЧАСТИНА

РОЗРОБКА ГРИ «Pacman»

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

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

1.2 Ціль розробки програми

Більш докладно вивчити можливості мови програмування Object Pascal та середовища розробки Borland Delphi а також технології об’єктно-орієнтованого програмування.

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


2 СПЕЦІАЛЬНА ЧАСТИНА

НАПИСАННЯ ГРИ «PACMAN»

2.1 Структура програми

2.1.1 Модулі

Програма використовує наступні модулі:

Модуль UNIT1 в якому описані об’єкти (їх властивості та методи) що розташовані на головній формі програми.

Об’єкти:

fon: TImage;

Компонент який виводить графічні об’єкти на головну форму програми.

sb: TStatusBar;

Виводить на екран кількість життів, кількість з’їдених крапок, кількість залишившихся  крапок що знаходиться на панелі.

N2: TMenuItem;

Початок гри.

N3: TMenuItem;

Вихід з гри.

N4: TMenuItem;

Пункт з інформацією

MainMenu1: TMainMenu;

Головне меню програми.

Timer1: TTimer;

Компонент за яким проходить гра

procedure FormCreate(Sender: TObject);

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

procedure N2Click(Sender: TObject);

Процедура початку гри.

procedure Timer1Timer(Sender: TObject);

Процедура за якою виконується гра.

procedure FormClose(Sender: TObject; var Action: TCloseAction);

Процедура яка виконує роль очищення екрану.

procedure N3Click(Sender: TObject);

Процедура завершення гри.

            


procedure move;

Процедура руху привида.

procedure ris;

Процедура малювання поля

f: text;

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

x,y: integer;

Координати знаходження пакмена

score1: integer;

Кількість залишившихся крапок

live: integer;

Кількість життів

pole: array[1..17,1..17] of byte;

Координати поля

ss: integer = 1;

Анімація пакмана

pic,pic1,pic2,pic3,pic4,kadr:tbitmap;

Графічне зображення області, в яку пакман буде виведено .

Структура класу TPacman:

            

Структура поля ghost

x,y:integer;

Координати привидів

DX,DY: integer;

Переміщення привидів

 


2.2 Робота з програмою

Для роботи з програмою потрібний комп'ютер і програма Borland Delphi. Робота починається із запуску файлу Project1.exe засобами програми. При запуску програми з'являється вікно не запущеної гри, наведеної на малюнку 2.1, яку у меню «Гра» потрібно запустити натиснувши «нова гра». Вихід можна здійснити за допомогою натискання «Вихід» у меню «Гра». Вибрав пункт меню «?» - можливо отримати інформацію про розробника програми або про її правила. Вибрав пункт меню «Гра» - користувач повинен обрати «Нова гра». Після вибору цього параметру ми бачимо вікно програми початку гри. Натиская клавіши «←», «→», «↑» або «↓»,ми маємо можливість керувати пакманом.

2.3 Екранні форми

Вікно не запущеної гри зображене на (Рис2.1). Вікно у випадку виграшу зображено на (Рис.2.2). Вікно у випадку програшу зображено на (Рис.2.3).На (Рис.2.4) ми бачимо вікно програми з інформацією.

2.1 Вікно початку гри

2.2 Вікно у випадку виграшу

2.3 Вікно у випадку програшу

Рис.2.4 Вікно програми з інформацією про програму


ВИСНОВКИ

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

Курсова робота являє собою програму, написану мовою Object Pascal з використанням принципів об’єктно-орієнтованого програмування. При розробці програми були створені нові класи об’єктів зі своїми властивостями та методами.

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


ЛІТЕРАТУРА

  1.  Т. Бадд  «Обєктно-ориєнтоване програмування».


                                                ДОДАТОК А

ЛІСТИНГ ПРОГРАМИ

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, Menus, ExtCtrls, ComCtrls;

type

 TPacman = class(TForm)

   fon: TImage;

   MainMenu1: TMainMenu;

   N2: TMenuItem;

   N3: TMenuItem;

   N4: TMenuItem;

   Timer1: TTimer;

   sb: TStatusBar;

   procedure FormCreate(Sender: TObject);

   procedure N2Click(Sender: TObject);

   procedure Timer1Timer(Sender: TObject);

   procedure FormClose(Sender: TObject; var Action: TCloseAction);

   procedure N4Click(Sender: TObject);

   procedure N3Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

type ghost = record

x,y:integer;

DX,DY: integer;

end;

var

 Pacman: TPacman;

 f: text;

 i,j: integer;

 x,y: integer;

 score1: integer;

 live: integer;

 pole: array[1..17,1..17] of byte;

 score: integer;

 ss: integer = 1;

 pic,pic1,pic2,pic3,pic4,kadr:tbitmap;

 ghosts:array[1..4] of ghost;

implementation

{$R *.dfm}

procedure move;

var hi,hj,hx,hy:integer;

begin

 for i:=1 to 4 do

 begin

 if random(40)=12 then

 begin

             ghosts[i].dx:=random(3)-1;

         if  ghosts[i].dx=0 then  ghosts[i].dy:=random(3)-1 else ghosts[i].dy:=0;

 end;

     case pole[ghosts[i].y+ghosts[i].dy,ghosts[i].x+ghosts[i].dx]of

      0: begin

           pole[ghosts[i].y,ghosts[i].x]:=0;

           pole [ghosts[i].y+ghosts[i].dy,ghosts[i].x+ghosts[i].dx]:=4;

           ghosts[i].x:=ghosts[i].x+ghosts[i].dx;

           ghosts[i].y:=ghosts[i].y+ghosts[i].dy;

         end;

      3: begin

           pole[ghosts[i].y,ghosts[i].x]:=3;

           pole [ghosts[i].y+ghosts[i].dy,ghosts[i].x+ghosts[i].dx]:=4;

           ghosts[i].x:=ghosts[i].x+ghosts[i].dx;

           ghosts[i].y:=ghosts[i].y+ghosts[i].dy;

         end;

         2: begin

           pole[ghosts[i].y,ghosts[i].x]:=0;

           pole [ghosts[i].y+ghosts[i].dy,ghosts[i].x+ghosts[i].dx]:=4;

           ghosts[i].x:=ghosts[i].x+ghosts[i].dx;

           ghosts[i].y:=ghosts[i].y+ghosts[i].dy;

           x:=2; y:=2;

           live:=live-1;

         end;

      1: begin

           ghosts[i].dx:=-ghosts[i].dx;

           ghosts[i].dy:=-ghosts[i].dy;

           pole[ghosts[i].y,ghosts[i].x]:=0;

           pole [ghosts[i].y+ghosts[i].dy,ghosts[i].x+ghosts[i].dx]:=4;

           ghosts[i].x:=ghosts[i].x+ghosts[i].dx;

           ghosts[i].y:=ghosts[i].y+ghosts[i].dy;

         end;

      end;

 end;

end;

procedure ris;

begin

for i:=1 to 17 do

 for j:=1 to 17 do

   case pole[i,j] of

   0: Pacman.fon.Canvas.Draw(j*32,i*32,pic2);

   1: Pacman.fon.Canvas.Draw(j*32,i*32,pic);

   2: Pacman.fon.Canvas.Draw(j*32,i*32,kadr);

   3: Pacman.fon.Canvas.Draw(j*32,i*32,pic3);

   4: Pacman.fon.Canvas.Draw(j*32,i*32,pic4);

    end;

end;

procedure newgame;

var s: string;

n: integer;

begin

x:=2; y:=2;

score1:=200;

score:=0;

live:=4;

AssignFile(f, 'level.txt');

Reset(f);

n:=1;

for i:=1 to 17 do

  begin

     readln(f,s);

     for j:=1 to 17 do

     begin

        pole[i,j]:=strtoint(copy(s,j,1));

         if pole[i,j]=4 then

         begin

         ghosts[n].y:=i;

         ghosts[n].x:=j;

         ghosts[n].dx:=random(3)-1;

         if  ghosts[n].dx=0 then  ghosts[n].dy:=random(3)-1 else ghosts[n].dy:=0;

         inc(n);

         end;

     end;

  end;

  ris;

  close(f);

end;

procedure TPacman.FormCreate(Sender: TObject);

begin

score1:=200;

score:=0;

sb.Panels[5].Text:=inttostr(135);

sb.Panels[3].Text:=inttostr(0);

sb.Panels[1].Text:=inttostr(live);

pic:=tbitmap.Create;

pic.LoadFromFile('sprite.bmp');

pic1:=tbitmap.Create;

pic1.LoadFromFile('sprite1.bmp');

pic2:=tbitmap.Create;

pic2.LoadFromFile('sprite2.bmp');

pic3:=tbitmap.Create;

pic3.LoadFromFile('sprite3.bmp');

pic4:=tbitmap.Create;

pic4.LoadFromFile('mmm.bmp');

kadr:=tbitmap.Create;

kadr.LoadFromFile('1.bmp');

newgame;

end;

procedure TPacman.N2Click(Sender: TObject);

begin

 newgame;

 timer1.Enabled:=true;

end;

procedure TPacman.Timer1Timer(Sender: TObject);

var x1,y1: integer;

x2,y2: integer;

begin

begin

inc(ss);

case ss of

1: kadr.LoadFromFile('1.bmp');

2: kadr.LoadFromFile('2.bmp');

3: kadr.LoadFromFile('3.bmp');

4: kadr.LoadFromFile('4.bmp');

5: kadr.LoadFromFile('1.bmp');

6: kadr.LoadFromFile('5.bmp');

7: kadr.LoadFromFile('6.bmp');

8: kadr.LoadFromFile('7.bmp');

9: kadr.LoadFromFile('8.bmp');

10:kadr.LoadFromFile('5.bmp');

end;

if ss = 5 then ss:=0;

if ss = 10 then ss:=6;

x1:=0; y1:=0;

if getkeystate(vk_left)<0 then

begin

ss:=5;

x1:=-1;

y1:=0;

end;

if getkeystate(vk_right)<0 then

begin

 ss:=1;

x1:=1;

y1:=0;

end;

if getkeystate(vk_up)<0 then

begin

y1:=-1;

x1:=0;

end;

if getkeystate(vk_down)<0 then

begin

y1:=1;

x1:=0;

end;

case pole[y+y1,x+x1] of

0: begin

  pole[y,x]:=0;

  pole [y+y1,x+x1]:=2;

  x:=x+x1;y:=y+y1;

end;

3:

begin

  pole[y,x]:=0;

  pole [y+y1,x+x1]:=2;

  x:=x+x1;y:=y+y1;

  score:=score+5;

  score1:=score1-5;

   sb.Panels[3].Text:=inttostr(score);

   sb.Panels[5].Text:=inttostr(score1);

   if score1=0 then

   begin

   timer1.Enabled:=false;

   ShowMessage('             Вы победили            '#13'             Поздравляю     ');

   end;

  end;

   4:

begin

pole[y,x]:=0;

 pole [y+y1,x+x1]:=4;

 x:=2; y:=2;

 live:=live-1;

end;

    end

end;

sb.Panels[1].Text:=inttostr(live);

if live=0 then

 begin

   timer1.Enabled:=false;

 ShowMessage('              Вас съели            ');

   end;

move;

ris;

end;

procedure TPacman.FormClose(Sender: TObject; var Action: TCloseAction);

begin

pic.Free;

pic1.Free;

pic2.Free;

pic4.Free;

end;

procedure TPacman.N4Click(Sender: TObject);

begin

 showmessage('курсова робота з об''''єктно орієнтованого програмування'+#10+#13+'   виконала ст.гр ПЗ-10/9-1Д Авчарова Анжеліка');

 end;

procedure TPacman.N3Click(Sender: TObject);

begin

Close;

end;

end.




1. реферат дисертації на здобуття наукового ступеня кандидата педагогічних наук Науковий кері
2. Об оказании друг другу помощи и поддержки в войне а также пункты о не заключении сепаратного мира
3. на тему Активные методы во внеклассной работе по иностранному языку на старшей ступени полной средней школы
4. Організація і проведення занять з атлетизму у загальноосвітній школі
5. Реферат Найближчі та віддалені результати коронарного стентування у хворих на стабільну стенокардію
6. Хочу также сказать спасибо членам коллектива фирмы INJOY в частности Линде Эггерс моей помощнице по админис
7. 11 дней Маршрут- Варшава Берлин Париж 3 Люксембург Прага Даты заездов- 27
8. все они достаточно просторны и расположены на втором этаже дома
9. Тема 1. Основні напрямки економічної теорії 1
10. Учение о физиологии.html
11. темах Контрольная работа по дисциплине Автоматизированное управлени.html
12. Права человека и процессы глобализации современного мира
13. Договор поручение.html
14. тематического моделирования и методы основанные на психологических приемах работы в группах
15. тема ценностей современного учителя; ~ обозначить психологическую основу к современному Портрету учите
16.  Почти полным двоичным деревом будем называть двоичное дерево для которого существует такое целое число h
17.  Эрективная фаза ~ фаза возбуждения длится несколько минут больной возбуждён много говорит беспокоен пул
18. политология утвердился за общественной наукой изучающей всю область политических отношений устройство и
19. Красноярский государственный аграрный университет Институт прикладной биотехнологии и ветеринарной ме
20. О месте и роли философии в обществе.html