ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Розробка ігрової програми
         

     

    Інформатика, програмування

    МІНІСТЕРСТВО ОСВІТИ Російської Федерації

    Таганрозький державний радіотехнічний університет

    Кафедра обчислювальної техніки


    _____________________________________________________________________

    Дистанційне навчання

    2000 - 2001 навчальний рік

    ЗВІТ

    про виконання практичних завдань за курсом

    ТЕХНОЛОГІЯ ПРОГРАМУВАННЯ

    Студента групи ВД - 49

    Каретіна Флоріана Вікторовича

    Завдання виконав ________________ _____________________ підпис студента дата виконання завдання

    Завдання перевірив ________________ _____________________ оцінка підписвикладача

    _______________________

    дата перевірки завдання

    Рецензія викладача

    ______________________________________________________________________< br>______________________________________________________________________< br>______________________________________________________________________< br>______________________________________________________________________< br>______________________________________________________________________

    Опис програми створеної за допомогою Turbo Visual.

    Починається програма з підключення бібліотек Turbo Visual:uses App, Objects, Menus, Drivers, Editors, Views;
    Основний блок програми складається з трьох команд:
    Begin

    MyApp.Init; (Підготувати роботу програми)

    MyApp.Run; (Виконати необхідні дії)

    MyApp.Done; (Завершити виконання програми) < br>End.
    Для створення власної рядка статусу вводимо наступний опис:type

    TMyApp = object (TApplication) (Створюємо об'єкт-нащадок від TApplication) procedure InitStatusLine; virtual; (перекриваємо старий метод
    InitStatusLine новим)
    Опис нового методу, за допомогою якого створюється рядок статусу:
    Procedure TMyApp.InitStatusLine;
    Var R: TRect; (зберігає кордону рядка статусу)
    Begin

    GetExtent (R); (встановлює R в координати всього екрану)

    RAY: = RBY-1; (пересуває вершину вище нижньої на 1 рядок)

    StatusLine: = New (PStatusLine, Init (R, (створює рядок статусу)

    NewStatusDef (0, $ FFFF, (встановлює діапазон контекстного Help)

    NewStatusKey ( '~ Alt - X ~ Exit ', kbAltX, cmQuit, (визначає елемент)

    NewStatusKey (' ~ Alt-F3 ~ Close ', kbAltF3, cmClose, (інший) nil)), (більше немає клавіш) nil)) ) (більше немає визначень)
    End;
    Формування меню:
    Опис в розділі типів:
    TMyApp = object (TApplication) (Створюємо об'єкт-нащадок від TApplication)procedure InitMenuBar; virtual; (перекриваємо старий метод InitMenuBarновим)
    Тіло процедури:procedure TMyApp.InitMenuBar;
    Var R: TRect;
    Begin

    GetExtent (R); (встановлює R в координати всього екрану)

    RBY: = RAY 1;

    MenuBar: = New (PMenuBar, Init (R, NewMenu ((створити смугу меню)

    NewSubMenu ( '~ F ~ ile', hcNoContext, NewMenu ((визначити меню)

    StdFileMenuItems (nil)), (стандратная функція визначенняелементів)

    (меню
    File)

    NewSubMenu ( '~ ~ W indow', hcNoContext, NewMenu ((визначити меню)

    StdWindowMenuItems (nil)), (стандратная функція визначенняелементів)

    (меню
    Window) nil) (більше немає підменю)

    )))); (кінець смуги)
    End;
    Створення вікон і маніпуляції з ними:
    Опис: procedure NewWindow; virtual; procedure HandleEvent (var Event: TEvent); virtual; end;

    PDemoWindow = ^ TDemoWindow; (тип покажчика для нового об'єктноготипу)

    TDemoWindow = object (TWindow) (визначення нового типу вікна) constructor Init (Bounds: TRect; WinTitle: String; WindowNo: Integer); end;

    PInterior = ^ TInterior ;

    TInterior = object (TScroller) constructor Init (var Bounds: TRect; HS, VS: PScrollBar); procedure Draw; virtual; procedure HandleEvent (var Event: TEvent); virtual; end;
    Опис тіла конструктора ініціалізації вікна:constructor TDemoWindow.Init (Bounds: TRect; WinTitle: String; WindowNo:
    Integer);var

    S: String [3];

    Interior: PInterior;

    HS, VS: PScrollBar;begin

    Str (WindowNo, S); (встановлює номер вікна в заколовке)

    TWindow.Init (Bounds, WinTitle + '' + S, wnNoNumber);

    GetClipRect (Bounds);

    Bounds.Grow (-1, -1); (інтер'єр розміщується всередині рамки вікна)

    VS: = StandardScrollBar (sbVertical + sbHandleKeyBoard); (дозвілпереміщення вертикального бігунка стрілками на клавіатурі)

    HS: = StandardScrollBar (sbHorizontal + sbHandleKeyBoard); (дозвілпереміщення горизонтального бігунка стрілками на клавіатурі)

    Interior: = New (PInterior, Init (Bounds, HS, VS ));

    Insert (Interior); (додає інтер'єр до вікна)end;
    Опис конструктора ініціалізації інтер'єру:constructor TInterior.Init (var Bounds: TRect; HS, VS: PScrollBar);begin

    TScroller.Init (Bounds, HS, VS);

    GrowMode: = gfGrowHiX + gfGrowHiY;end;
    Опис процедури промальовування інтер'єру вікна:procedure TInterior.Draw;begin

    TScroller.Draw; (Виклик стандартної промальовування)

    WriteStr (0,0, 'Текст у вікні', 1); (Виведення тексту у вікно) < p> TScroller.ShowCursor; (Показати курсор)end;
    Опис тіла процедури створення нового вікна:procedure TMyApp.NewWindow;var

    Window: PDemoWindow;

    R: TRect;
    Begin

    Inc (WinCount);

    R. Assign (0,0,26,7); (установка початкового розміру і позиції)

    R. Move (Random (58), Random (16)); (випадкове переміщення по екрану)

    Window: = New (PDemoWindow, Init (R, 'Demo Window', WinCount )); < p> DeskTop ^. Insert (Window); (вивести вікно на панель екрану)
    End;
    Опис тіла процедури обробки команд середовищаprocedure TMyApp.HandleEvent (var Event: TEvent);
    Begin

    TApplication.HandleEvent (Event); (діє як предок) if Event.What = evCommand Then

    Begin case Event.Command of (але відгукується на додатковікоманди) cmNew: NewWindow; (визначає дію для команди cmNew) else

    Exit;

    End;

    ClearEvent (Event); (очищає подія після обробки) end;
    End;
    Опис тіла процедури обробки команд у вікніprocedure TInterior.HandleEvent (var Event: TEvent);
    Begin

    TScroller.HandleEvent (Event); (діє як предок) case Event.What of (перевірка події) evKeyDown: (якщо натиснута клавіша)

    Begin

    Case Event.KeyCode of (перевірка: яка клавіша натиснута) kbLeft: (стрілка вліво) begin if x> 0 then (якщо координата по Х більше 0)

    Begin x: = x-1; (то зменшити її на 1)

    SetCursor (x, y); (встановити на нову координату курсор)

    End end; kbRight: (стрілка вправо) begin x: = x +1; (збільшити координату по Х на одиницю)

    SetCursor (x, y); (встановити на нову координату курсор) end; kbUp: (стрілка вгору) begin if y> 0 then (якщо координата по Y більше 0 )

    Begin y: = y-1; (то зменшити її на 1)

    SetCursor (x, y); (встановити на нову координату курсор)

    End end; kbDown: (стрілка вниз) begin y: = y +1; (збільшити координату по Y на 1)

    SetCursor (x, y); (встановити на нову координату курсор) end; end ;

    Case Event.ScanCode of (перевірка скан-коду клавіатури)

    57: (якщо пробіл) begin

    If GetState (sfCursorVis) Then (якщо курсор видно)

    TScroller.HideCursor (то приховати його)

    Else

    TScroller.ShowCursor; (інакше показати його) end; end; < p> End; end;
    End;

    Опис ігрової програми «Стрільба по мішені».

    Ігрова програма складається з трьох процедур (minv - зменшення кол-вапатронів, intro - заставка, go - кінець гри) і основного блоку програми.
    Процедура minv (зменшення кількості патронів).kv: = kv-1; (зменшення значення змінної kv (в основній програмі вонафігурує як кількість патронів))setfillstyle (1,9); (установка стилю заповнення фону)bar ((20-kv) * 10 +415,4, (20-kv) * 10 +425,12); (стирання одного патрона з екрана)
    Процедура intro; (Заставка)
    Виводить заставку гри.settextstyle (0,0,15); (установка стилю тексту)setcolor (12); (встановлення кольору)outtextxy (140,100, 'ТИР'); (висновок тексту)settextstyle (0,0,2);setcolor (10);outtextxy (130,290, 'ESC -');setcolor (14);outtextxy (220,290, 'Вихід з програми');settextstyle (0,0,1);tp: = 'Натисніть будь-яку кнопку ДЛЯ ПОЧАТКУ ГРИ';settextstyle (0,0,1);setcolor (11);outtextxy (320-trunc (length (tp) * 4), 340, tp); (висновок тексту з розрахунком зацентру)a: = readkey;if ord (a) = 27 then exi: = true; (якщо натиснута клавіша Esc - вийти з гри)setfillstyle (1,0);bar (100,30,600,350);
    Процедура go - виводить заставку кінця гриprocedure go; (Кінець гри)beginsettextstyle (0,0,5); (установка стилю для перегляду тексту)setcolor (2); (встановлення кольору)outtextxy (50,200, 'ВСЕ, догралися');settextstyle (0,0,2);readkey;
    UROV: = 1; MENU: = true; oko: = 0;end;
    Основне тіло програмиbegind: = vga; initgraph (d, r ,''); (ініціалізація графіки)setgraphmode (2); (установка графічного режиму)randomize; (виклик генератора випадкових чисел)urov: = 1; oko: = 0; mus: = true; sou: = true; menu: = true; (первісна установказмінних)repeat (початок основного циклу програми)
    (Створення інтерфейсу)cleardevice; (очістака екрана)setfillstyle (1,1); (установка стилю заповнення фону)bar (0,0,640,2); (малювання прямокутників навколо робочої області)bar (0,0,2,480);bar (0,480,640,478);bar (640,480,638,0);setfillstyle (1,9);bar (2,2,638,17);bar (2,2,5,478);bar (2,478,638,475);bar (638,2,635,478);setfillstyle (1,3);bar (5,17,635,19);bar (5,17,7,475);bar (5,475,635,473);bar (635,17,633,475);setfillstyle (9,14);setcolor (14); (встановлення кольору малювання)moveto (7,460); (переміщення графічного курсору у вказані координати)for i: = 1 to 62 do (малювання піску горбками)lineto (i * 10 +7,460 + random (10));lineto (633,460);line (7,473,633,473);line (7,473,7,460);line (633,473,633,460);floodfill (9,469,14); (заповнення стилем області, розташованої або всерединізамкнутого контуру, або поза ним)setlinestyle (0,0,1); (установка стилю ліній)setfillstyle (8,6); (установка стилю заповнення фону)bar (260,408,380,470);setfillstyle (1,1);setcolor (14);line (260,408,260,470);line (260,408,380,408);line (380,408,380,470);fillellipse (320,408,23,15); (креслення контуру еліпса поточним кольором ізаповнення обмеженою контуром ділянки екрана, поточним візерунком)setlinestyle (0,3,3);setcolor (11);line (320,391,320,376);fi: = pi; tzm: = 40; tzs: = 40;settextstyle (0,0,2);cou: = 0; kv: = 20; ov: = 1; ex: = 0;setfillstyle (1,15); setcolor (7);bar (250,6,310,12);setfillstyle (1,0);bar (17,2,220,17);setcolor (12);outtextxy (20,3, 'Рахунок:');setcolor (11);setfillstyle (1,11);for i: = 1 to kv do fillellipse (i * 10 +420,8,3,3); (малювання патронів)if menu then intro; (якщо menu = true, то викликати процедуру intro (заставкагри))menu: = false;if exi then goto 1; (якщо exi = true (вихід), то перейти на мітку 1)repeatif keypressed then a: = readkey;settextstyle (0,0,1);outtextxy (280,280, 'Натисніть ENTER');setcolor (random (16));settextstyle (0,0,2);str (urov, em);outtextxy (270,200, concat ( 'РІВЕНЬ', em)); (висновок тексту за допомогою процедуриконкатенації)str (urov * 1000, em);outtextxy (190,240, concat ( 'Наберіть', em, 'очок'));until ord (a) = 13; (вихід з циклу по клавіші Enter)setfillstyle (1,0);bar (180,200,500,300);gettime (q1, min, sec, q2); (одержання системного часу)mk: = min +1; (збільшення хвилин на 1)sk: = sec;if mk> = 60 then begin (якщо кількість хвилин більше 60,) hk: = q1 1; (ту кількість годин збільшити на 1) mk: = 0; (хвилини обнулити) end;repeatgettime (q1, min, sec, q2); (одержання системного часу)setfillstyle (1,1); (установка стилю заповнення)setcolor (4); (встановлення кольору малювання)if mk = min then rk: = 60-abs (sk-sec) else rk: = abs (sk-sec);bar (250,6,250 + abs (rk), 12);if not (bm) then begin gettime (q1, min, sec, q2); (одержання системного часу) po: = random (3); if sec + po> = 59 then begin tpm: = min +1; tps: = 0; end else begin tpm: = min; tps: = sec + po; end; end;xnp: = round (sin (fi) * 24 +320);ynp: = round (cos (fi) * 15 +406);xkp: = round (sin (fi) * 38 +320);ykp: = round (cos (fi) * 30 +406);setlinestyle (0,3,3);setcolor (11);line (xnp, ynp, xkp, ykp);ok: = false;if keypressed then begin a: = readkey; if a = chr (77) then begin fi: = fi-0.05; ok: = true; end; (Поворот дула вліво) if a = chr (75) then begin fi: = fi +0.05; ok: = true; end; (Повоорт дула вправо) if ord (a) = 27 then menu: = true; (Вихід в меню) if fi3 * pi/2 then fi: = 3 * pi/2; if a = '' then begin (Постріл) if (not (fire.v)) and (not (ok)) then begin minv; for d: = 1 to 100 do begin if sou thensound (random (200) +100); delay (1); end; nosound; fire.v: = true; fire.r: = 35; fire.si: = sin (fi) * 1.1; fire.co: = cos (fi); ok: = true; fire.xs: =- 10; fire.ys: =- 10; end; s: = s +1; end;end;if (kv = 0) and (not (fire.v)) then ex: = ex 1; if fire.v then begin (польоту снаряда) setfillstyle (1,0); setcolor (0); bar (fire.xs -4, fire.ys-4, fire.xs 4, fire.ys +4); xv: = round (fire.si * fire.r +320); yv: = round (fire.co * fire.r +406); fire.r: = fire.r 5; fire.xs: = xv; fire.ys: = yv; if (fire.xs = 622) or (fire.ys = tps) and not (mn) then begin bm: = true; mn: = true; xm: = random (560) +30; ym: = random (320) +30; vm: = random (2) +3; if vm + sec> = 59 then begin tzm: = min +1; tzs: = abs (vm + sec-60); end else begin tzm: = min; tzs: = vm + sec; end; repeat nch: = random (5) 1; mi: = 20 + nch * 5; (Розмір мішені) until nch = tzm) and (sec> = tzs) then begin bm: = false; mn: = false; setfillstyle (1,0); bar (xm, ym, xm + mi, ym + mi); xm: =- 1300; ym: =- 1300; end;if ok then begin setcolor (0); line (xnp, ynp, xkp, ykp);end;until (ord (a) = 27) or (ex = 1) or ((mk = min) and (sec> = sk));oko: = oko + cou;str (oko, em);bm: = false; mn: = false; fire.v: = false;if cou

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status