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

     

     

     

     

     

         
     
    Створення гри
         

     

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

    Міністерство освіти РФ.

    ІжГТУ.

    Кафедра Радіотехніки.

    Курсова робота

    з інформатики. < p> Тема: "Створення гри".

    Перевірив:

    Старший викладач

    Сідоріна В.А.

    Виконав:

    Студент гр.2-29-1

    Скворцов Я.А.

    Іжевск.2003.

    Зміст

    Стор.

    Введення --------------------------------------- ----------------------

    ------------------- 3

    1 Постановка завдання ----------------------------------------- ---------

    ---------------- 4

    2 Алгоритми та блок-схеми ---- -----------------------------------------

    -- ---------- 5

    3 Програма на мові Pascal з коментарями ------------------------- -

    ------ 6

    4 Керівництво користувача для роботи в програмі --------------------

    --- 16

    Висновок -------------------------------- ---------------------------

    ---------------- -17

    Список використаної літератури -------------------------------------

    -------- 18

    ВСТУП:

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

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

    1 Постановка завдання.

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

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

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

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

    Звуковий супровід через системний динамік привертає користувача до отримання приємних відчуттів при використанні програми. б) Побудова алгоритму завдання.

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

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

    Створення програми складалося з трьох етапів: створення меню, створення основного тіла гри у вигляді окремої процедури без промальовування текстур і остаточна промальовування текстур. г) Оформлення пояснювальної записки та захист курсового проекту.

    2 Блок-схема.

    3 Програма на мові Pascal c коментарями.

    program jim; uses crt, graph; label 1,3; var a: char; b: integer; procedure beep; (Видача звуку) begin sound (300); delay (6000); nosound; delay (700); end; procedure zemlya; (промальовування нижній частині екрана) begin setcolor (3); line (0,55,640,55); line (0,479,0,430); line (0,430,639,430); line (639,430,639,479); line (639,479,0,479); setfillstyle ( 7,5); floodfill (10,470,3); end; procedure PVO; (Промальовування засоби ППО) begin setcolor (6); line (5,37,45,37); line (45,37,47,39); line (47,40,37,50); line (37,50,7,50); line (7,50,3,39); line (3,38,5,37); circle (15,43, 6); circle (30,43,6); circle (6,39,2); circle (44,39,2); setfillstyle (1,6); floodfill (41,43,6); floodfill (22, 49,6); floodfill (7,43,6); floodfill (10,39,6); setcolor (2); line (3,39,3,34); line (3,34,20,34); line (21,34,21,23); line (21,23,33,23); line (33,23,47,36); line (47,36,47,36); line (47,36, 3,36); line (36,26,29,26); line (29,27,30,30); line (31,31,42,31); setfillstyle (1,2); floodfill (26,32 , 2); setcolor (9); line (8,33,8,23); line (9,24,9,13); line (9,13,11,12); line (11,12,11, 9); line (11,12,13,13); line (13,13,13,24); line (14,23,14,33); line (8,28,3,33); line (3 , 33,19,33); line (19,33,14,28); setfillstyle (1,9); floodfill (11,28,9); line (21,24,24,24); line (21, 25,24,25); setcolor (4); line (21,26,25,26); line (21,27,25,27); setcolor (15); line (21,28,26,28); line (21,29,26,29);

    end; procedure NLO; (промальовування літаючої тарілки) var l: integer; begin randomize; l: = random (256); setcolor (l); line (9,8,7,8); line (7,9,5,9); line (5,10,3,10); line (3,11,1,11); line (1,11,1 , 13); line (2,14,4,14); line (3,15,5,15); line (5,16,8,16); line (7,17,10,17); line ( 10,18,16,18); line (16,19,35,19); line (35,18,41,18); line (41,17,44,17); line (44,16,46, 16); line (46,15,48,15); line (48,14,49,14); line (49,14,49,11); line (49,11,48,11); line (48 , 10,46,10); line (46,9,44,9); line (44,8,41,8); line (41,7,41,9); line (41,9,40,9 ); line (40,10,37,10); line (37,11,33,11); line (33,12,17,12); line (17,11,13,11); line (13, 10,10,10); line (10,9,9,8); setfillstyle (1, l); floodfill (24,15, l); putpixel (31,16,0); putpixel (42,12,0 ); putpixel (18,16,0); putpixel (7,13,0); setcolor (11); line (18,11,32,11); line (32,10,36,10); line (36 , 9,39,9); line (40,8,40,5); line (39,4,36,4); line (36,3,32,3); line (32,2,18,2 ); line (18,3,14,3); line (14,4,11,4); line (10,5,10,8); line (11,9,14,9); line (14, 10,18,10); setfillstyle (1,11); floodfill (25,7,11); end; procedure pulka; (Промальовування снаряда) begin setcolor (5); line (2,6,2,3); line (3,6,3,0); line (4,6,4,3); setcolor (13); line (3,8,3,7); setcolor (14); line (1,5,1, 7); line (2,7,2,9); putpixel (3,9,14); line (4,7,4,9); line (5,5,5,7); end; procedure gameover ( b, v: integer); (приписи при виграші однієї var u, o: integer; зі сторін) i: ^ integer; siz: word; begin siz: = imagesize (0,100,1,100); getmem (i, siz); getimage (0,100,1,100, i ^); if v> 500 then begin outtextxy (300,240, 'Y'); beep; outtextxy (308,240, 'o'); beep; outtextxy (316,240, 'u'); beep; outtextxy ( 324,240 ,'_'); beep; outtextxy (332,240, 'W'); beep; outtextxy (340,240, 'I'); beep; outtextxy (348,240, 'N'); beep; end; if b> 500 then begin outtextxy (300,240, 'G'); beep; outtextxy (308,240, 'a'); beep; outtextxy (316,240, 'm'); beep; outtextxy (324,240, 'e'); beep; outtextxy (332,240, '_ '); beep; outtextxy (340,240,' O '); beep; outtextxy (348,240,' v '); beep; outtextxy (356,240,' e '); beep; outtextxy (364,240,' r '); beep; delay (45000); outtextxy (330,260 ,':'); beep; outtextxy (338,260 ,'-'); beep; outtextxy (346,260 ,'>'); beep; end; delay (64500); delay (64500); delay (64500); for u: = 0 to 640 do for o: = 0 to 480 do begin putimage (u, o, i ^, copyput); end; end; procedure jim; (Безпосередньо гра) label 2,3; var i, j, x, y, m, n, v, b: integer; key: boolean; s, ss, s1, s2, s3: word; p, pp, p1, p2, p3: pointer; (рр-порожній квадрат; р-

    ППО ...; р1-пулька) begin i: = 9; j: = 2; initgraph (i, j ,'');

    3: ss: = imagesize (0,430,50,480); a: = 'y'; getmem (pp, ss); getimage (0,430,50,480, pp ^); s: = imagesize (0,0,50,50); getmem ( p, s);

    PVO; getimage (0,0,50,50, p ^); putimage (0,0, pp ^, copyput); s1: = imagesize (0,0,5 , 10); getmem (p1, s1); pulka; getimage (0,0,5,10, p1 ^); putimage (0,0, pp ^, copyput); s2: = imagesize (0,0,5, 10); (р2-маленький квадратик кульки) getmem (p2, s2); getimage (0,0,5,10, p2 ^); s3: = imagesize (0,0,50,20); getmem (p3, s3 );

    NLO; getimage (0,0,50,20, p3 ^); putimage (0,0, pp ^, copyput); zemlya; x: = 200; y: = 379; putimage (x, y, p ^, copyput); v: = 0; b: = 0; delay (45000); delay (45000); repeat (Початок самого процесу гри) for n: = 1 to 1770 do begin putimage (round (n/3), 60, p3 ^, copyput); if n> 1760 then begin putimage (round (n/3), 60, pp ^, copyput); sound (300); delay (100); nosound; end ; key: = keypressed; if key = false then goto 2; a: = readkey;

    if a = chr (77) then begin x: = x 3; if x> 580 then begin

    putimage (x, y, pp ^, copyput); x: = 10; end; putimage (x, y, p ^, copyput);

    end; if a = chr ( 75) then begin x: = x-3; if x500 then begin gameover (b, v); goto 3; end;

    if a = chr (113) then begin v: = 550; gameover ( b, v); goto 3; end; until a = chr (27); end; begin (Основна програма)

    1: clrscr; gotoxy (30,10); write ( 'Вступ'); gotoxy (30,11); write ( 'Постановка завдання'); gotoxy (30,12); write ( 'Математичні методи ...'); gotoxy (30,13); write (' Опис даних '); gotoxy ( 30,14); write ( 'Алгоритми та блок-схеми'); gotoxy (30,15); write ( 'ПРОГРАМА'); gotoxy (30,16); write ( 'Текстові приклади'); gotoxy (30,17 ); write ( 'Керівництво користувачу'); gotoxy (30,18); write ( 'Висновок'); gotoxy (30,19); write ( 'Список літератури'); (Це все менюшки) gotoxy (26,10) ; write ('>>>'); gotoxy (25,10); repeat a: = readkey; if a = chr (80) then begin (рух курсору вниз) b: = wherey; gotoxy (26, b); write ( ''); if b> = 19 then b: = 9; gotoxy (26, b +1); write ('>>>'); gotoxy (25, b +1); sound (3000); delay ( 1000); nosound; end; if a = chr (72) then begin (рух курсору вгору) b: = wherey; gotoxy (26, b); write ( ''); if b >>'); gotoxy (25, b-1); sound (4000); delay (1000); nosound; end; if a = chr (13) then begin (Опитування клавіші ENTER) b: = wherey; if b = 19 then begin (Список літератури) sound ( 3000); delay (1000); nosound; clrscr; gotoxy (30, b); write ( 'Книжка по Турбо-

    Паскалю'); repeat a: = readkey; until a = chr (13) ; sound (4000); delay (1000); nosound; goto 1; end; if b = 10 then begin (Вступ) sound (3000); delay (1000); nosound; clrscr; gotoxy (30, b); writeln ( 'Основною метою даного курсового проекту'); gotoxy (30, b +1); writeln ( 'є закріплення і демонстрація знань,'); gotoxy (30, b +2); writeln ( 'отриманих при вивченні курсу інформатики'); repeat a: = readkey; until a = chr (13); sound (4000); delay (1000); nosound; goto 1; end; if b = 11 then begin (Постановка завдання) sound (3000); delay (1000) ; nosound; clrscr; gotoxy (30, b); write ( 'зробити гру: Літалки-стрілялку'); repeat a: = readkey; until a = chr (13); sound (4000); delay (1000); nosound; goto 1; end; if b = 18 then begin (Висновок) sound (3000); delay (1000); nosound; clrscr; gotoxy (30, b); write ( 'Мені сподобалася моя прога :-)'); repeat a : = readkey; until a = chr (13); sound (4000); delay (1000); nosound; goto 1; end; if b = 17 then begin (керівництво користувачеві) sound (3000); delay (1000); nosound ; clrscr; gotoxy (30, b); write ( 'Якщо Ви в цій проге нічого не поміняєте'); gotoxy (30, b +1); write ( 'вона буде працювати

    ВІЧНО ... '); repeat a: = readkey; until a = chr (13); sound (4000); delay (1000); nosound; goto 1; end; if b = 12 then begin (математичні методи) sound (3000); delay (1000); nosound; clrscr; gotoxy (30, b); write ( 'Завдання сама по собі не математична,'); gotoxy (30, b +1); write ( 'значить і математичних методів ніяких немає'); repeat a: = readkey; until a = chr (13); sound (4000); delay (1000); nosound; goto 1; end; if b = 13 then begin (Опис даних) sound (3000); delay (1000); nosound; clrscr; gotoxy (30, b); write ( 'Даних немає ...'); repeat a: = readkey; until a = chr (13); sound (4000); delay (1000); nosound; goto 1 ; end; if b = 14 then begin (Алгорітм.блок-схема) sound (3000); delay (1000); nosound; clrscr; gotoxy (30, b); write ( 'Дивись

    Пояснітелную записку '); repeat a: = readkey; until a = chr (13); sound (4000); delay (1000); nosound; goto 1; end; if b = 16 then begin (Текстові приклади) sound (3000); delay (1000); nosound; clrscr; gotoxy (30, b); write ( 'Текстових прикладів в мене теж немає'); repeat a: = readkey; until a = chr (13); sound (4000); delay (1000) ; nosound; goto 1; end; if b = 15 then begin sound (3000); delay (1000); nosound; jim; closegraph; goto 1; end; end; until a = chr (27); end.

    4 Керівництво користувача для роботи в програмі.

    При запуску програми з'являється меню, що пропонує широкий вибір пунктів.

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

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

    Суть гри полягає в збиванні літаючих тарілок засобом ППО.

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

    Гравець програє у разі досягнення числа не збитих тарілок правого краю екрана.

    Гравець виграє в разі досягнення числа збитих тарілок правого краю екрана.

    Після програшу або виграшу гра повторюється.

    Висновок.

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

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

    Необхідно, щоб в тій папці, де лежить ця програма, знаходився файл egavga . bgi. Цей файл є в багатьох версіях ТР в папці bin, він відповідає за ініціалізацію графіки.

    Список використаної літератури.

    1 Меженний О.А. «Turbo Pascal-вчіться програмувати»; Москва-

    С. Петербург-Київ; «Діалектика»; 2001; 448с.

    2 Бабушкін І.А.; «Практикум з ТР» -навчальний посібник з курсів ІХТ;

    Москва, 1998.

    3 http://www.freepascal.org;

    4 http://www. geocities.com/~ franzglaser/tp.htm;

    5 http://www.garbo.uwasa.fi/pc/turboobj.html;


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

     

     

     

     

     

     

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