Будь умным!


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

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

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

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 25.11.2024

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. Основы конституционного права- следует ответ написать цифрами например 11 а затем продублировать письм
2. реферат на здобуття наукового ступеня кандидата архітектури Львів ~ 1999 Дисертаці
3. . Философия первоначально понималась как в любовь к мудрости 2
4. Детский дом школа
5. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата юридичних наук6
6. Психологическая сущность внимания и его свойства 1
7. Юриспруденция Авторский коллектив- Дюков Л
8. реферату- Військові мости римлян на УкраїніРозділ- Архітектура Військові мости римлян на Україні На трьох
9. Промышленные роботы в роботизированных технологических комплексах (РТК) механообработки
10. 479 гг. до н.э. 54. Живя В эпоху смуты и анархии удрученный всеобщей нищетой и страданиями народа Конфуций поня
11. докладываю что я курсант 6 курса 2 факультета рядовой Печальный Полллупокер Иванович прошёл повторный инстр
12. Понятие европейское право
13. Введение Общеизвестно что образование фондов денежных средств государства и их использование в процессе
14. ботанэ трава зелень.html
15.  НАУКА И МНОГООБРАЗИЕ ФОРМ ЗНАНИЯ [2
16. передний край криминалистической науки которым она непосредственно обращена к практике борьбы с преступно
17. Информация ' это единственный неубывающий ресурс общества
18. Поиск того, чего нет
19. РеставросЪ. Романтика с пользой для души и не только Мы едем туда где нас ждут Прикосновение к Ве
20. Курсова робота Імідж ділової людини ВСТУП Існує такий вислів- не читайте мені мораль Так от викла