Рефераты. Игра "Vertolet"

setfillstyle(9,7);

case t of

right : a:=a+5;left : a:=a-5;up : d:=d-5;down : d:=d+5;

's' : begin  d:=d+15; a:=a; end;

'w' : begin  d:=d-15; a:=a; end;

'`' : begin read(cod);   if cod='money' then begin  schet:=schet+2000; cod:=''; t:='y'; end;   end;

']' : begin read(cod1);   if cod1='bonus' then begin  plus:=plus-1000; cod1:='';  t:='y';end;   end;

end;

if z>(yr*2) then z:=z-yr else begin z:=640;zz:=(460-random(355)) end;

if v>(yr*2) then v:=v-yr else begin v:=640;vv:=(460-random(355)) end;

if k>(yr*2) then k:=k-yr else begin k:=640;kk:=(460-random(355)) end;

if l>(yr*2) then l:=l-yr else begin l:=640;ll:=(460-random(355)) end;

if i>(yr*2) then i:=i-yr else begin i:=640;ii:=(460-random(355)) end;


 if a<6 then a:=6   ;

 if d<niz+1 then d:=niz+1  ;

 if a>594 then a:=594   ;

 if d>verx-1 then d:=verx-1   ;

if sd=true then begin sound(500); delay(100); nosound;  end;

inc(schet);

if ((schet mod 200)=0) and (yr<20) then begin

setcolor(0);

line(25+yr*2,101,25+yr*2,480);

yr:=yr+1;   end;

if (schet mod 500)=0 then begin

 plus:=plus-35; pl:=70-plus; setcolor(12);

outtextxy(50,35, och);

setcolor(red);

str(pl,och);  outtextxy(50,35, och);

  end;

setlinestyle(0,0,1);

if (schet mod 10)=0 then begin

setcolor(12);

outtextxy(560,35, och1);

setcolor(red);

  str(schet,och1);

  outtextxy(560,35, och1); end;

if (schet>500) and (level=1) then

begin

ll:=350; l:=680;lev('Level 2','2');level:=2;end;

if (schet>1500) and (level=2) then

begin

kk:=300; k:=780;lev('Level 3','3');level:=3;end;

if (schet>3000) and (level=3) then

begin

i:=980;ii:=400;lev('Level 4','4');level:=4;end;

if (schet>5000) and (level=4) then

begin

lev('Level 5','5');level:=5;end;

if (schet>7000) and (level=5) then

begin

lev('Level 6','6');

level:=6;end;

if (schet>10000) and (level=6) then

begin

lev('Level 7','7');level:=7;end;


if sd=false then delay(50);

setfillstyle(1,0);

 if sd=false then delay(10);

putimage(a-10,d-25,ver^,0);


{Level 1}

 if sd=false then delay(10);

putimage(v,vv,barer1^,0);

if (schet mod bonn)=0 then inc(aw);

if (aw mod 2)=0 then

putimage(v-50,vv+80,barer2^,0);

if sd=false then delay(10);

putimage(z,zz,barer^,0);

{Level 2}


 if sd=false then delay(10);

if level>1 then putimage(l,ll,barer1^,0);

{Level 3}


 if sd=false then delay(10);

if level>2 then putimage(k,kk,barer^,0);


setcolor(12);

line(25+yr*2,101,25+yr*2,480);

until Ord(t)=258;

freemem(ver,imagesize(a-10,d-25,a+53,d+40));

freemem(barer,imagesize(300,300,340,350));

freemem(barer1,imagesize(400,300,440,350));

closegraph;

Score(schet,nik);

end;

begin

end.


Модуль Menu

unit menus;

interface

uses crt,graph,games,options,help;

const left=#75;

right=#77;

down=#72;

up=#80;

procedure cartinka;

procedure  menu;

procedure key1(ch:char);

implementation

var ch:char;

    ka,kd,n,a,d,q,r,e,s:integer;

    text:string;

    sd:boolean;

    bor,men0,men1,men2:pointer;


procedure key1(ch:char);

begin

    if ord(ch)=80 then begin  if d=380 then

begin

 begin

 setcolor(red);

 rectangle(a+2,d+2,a+398,d+48);

 setcolor(3);

 end;

 d:=100;

 end;

   d:=d+70;

 if d<>170 then begin

 setcolor(red);

 rectangle(a+2,d+2-70,a+398,d+48-70);

 setcolor(3);

 end;

  end;

if ord(ch)=72 then begin  if d<240 then

begin

 begin

 setcolor(red);

 rectangle(a+2,d+2,a+398,d+48);

 setcolor(3);

 end;

 d:=450;

 end;

 d:=d-70;

 if d<>380 then begin

 setcolor(red);

 rectangle(a+2,d+2+70,a+398,d+48+70);

 setcolor(3); end;

 end;

setlinestyle(0,0,1);

end;


procedure cartinka;

begin

q:=detect; initgraph(q,r,'');

e:=GraphResult;

If e<>grok then

writeln(GraphErrorMsg(e))

else

begin

sd:=true;

a:=100;

d:=170;

setfillstyle(1,4);

bar(100,170,500,220);

getmem(bor,imagesize(100,170,500,220));

getimage(100,170,500,220,bor^);

setfillstyle(1,0);

setcolor(13);

settextstyle(1,0,9);

text:='VERTOLET';

cleardevice;

vert(30,20,4);

vert(550,20,4);

setcolor(13);

settextstyle(1,0,9);

outtextxy(100,5, text);

outtextxy(102,5, text);

outtextxy(104,5, text);

setbkcolor(0);

setcolor(7);

setfillstyle(1,red);

settextstyle(1,0,5);

putimage(100,170,bor^,xorput);

text:=' Play game ';

outtextxy(200,165, text);

outtextxy(202,165, text);

putimage(100,240,bor^,xorput);

text:=' Options ';

outtextxy(220,235, text);

outtextxy(222,235, text);

putimage(100,310,bor^,xorput);

text:=' Help ';

outtextxy(240,305, text);

outtextxy(242,3055, text);

putimage(100,380,bor^,xorput);

text:=' Exit ';

outtextxy(240,375, text);

outtextxy(242,375, text);

end;

end;



procedure menu;

var ch:char;

begin

repeat

cartinka;

getmem(men0,imagesize(10,10,620,170));

getimage(10,10,620,170,men0^);

getmem(men1,imagesize(10,170,550,230));

getimage(10,170,550,230,men1^);

getmem(men2,imagesize(10,230,550,460));

getimage(10,230,550,460,men2^);

repeat

cleardevice;

putimage(10,10,men0^,0);

putimage(10,170,men1^,0);

putimage(10,230,men2^,0);

repeat

setlinestyle(0,0,3);

setcolor(3);

rectangle(a+2,d+2,a+398,d+48);

setlinestyle(0,0,3);

setlinestyle(0,0,3);

setcolor(3);

ch:=readkey;

key1(ch);

until ord(ch)=13;

if d=240 then sd:=option;

if d=310 then begin closegraph; pravila;

begin

q:=detect; initgraph(q,r,'');

e:=GraphResult;

If e<>grok then

writeln(GraphErrorMsg(e))

else

begin

end;

end;

 end;

until (d=170) or (d=380);

freemem(men0,imagesize(10,10,620,170));freemem(men1,imagesize(10,170,550,230));

freemem(men2,imagesize(10,230,550,460));

if d =170 then begin if sd=false then game(false) else game(true);

end;

until d=380 ;

closegraph;

end;

begin

end.

Модуль Option

unit options;

interface

uses crt,graph;

function  option:boolean;

procedure key(ch:char);

procedure tex;

implementation

var ch:char;

    a,d:integer;

    text:string;

    opt:pointer;

procedure tex;

begin

setcolor(13);

settextstyle(1,0,9);

text:='S o u n d';

outtextxy(100,5, text);

outtextxy(102,5, text);

outtextxy(104,5, text);

setcolor(0);

text:='on';

setfillstyle(1,red);

settextstyle(1,0,5);

bar(100,170,500,220);

outtextxy(260,165, text);

text:='off';

setfillstyle(1,red);

settextstyle(1,0,5);

bar(100,240,500,290);

outtextxy(260,235, text);


end;


procedure key(ch:char);

begin

if ord(ch)=80 then begin  if d=240 then

begin

 begin

 setcolor(red);

 rectangle(a+2,d+2,a+398,d+48);

 setcolor(3);

 end;

 d:=100;

 end;

   d:=d+70;

 if d<>170 then begin

 setcolor(red);

 rectangle(a+2,d+2-70,a+398,d+48-70);

 setcolor(3);

 end;

  end;


if ord(ch)=72 then begin  if d<240 then

begin

 begin

 setcolor(red);

 rectangle(a+2,d+2,a+398,d+48);

 setcolor(3);

 end;

 d:=310;

 end;

 d:=d-70;

 if d<>240 then begin

 setcolor(red);

 rectangle(a+2,d+2+70,a+398,d+48+70);

 setcolor(3); end;

 end;


end;


function  option:boolean;

begin

a:=100;

d:=170;

cleardevice;

tex;

option:=false;

repeat

setlinestyle(0,0,3);

setcolor(3);

rectangle(a+2,d+2,a+398,d+48);

setlinestyle(0,0,3);

setcolor(3);

ch:=readkey;

key(ch);

setlinestyle(0,0,1);

until ord(ch)=13;

if d =170 then option:=true;

end;

begin

end.


Модуль Help

unit help;

interface

uses crt;

procedure pravila;

implementation

procedure pravila;

var ch:char;

begin

clrscr;

textcolor(red);


Writeln('                                     ПРАВИЛА ИГРЫ');

textcolor(Green);

Writeln('Вы управляете вертолетом "А-308" на  борту которого находятся  взрывчатые');

Write('вещества. Ваша цель перевести их в пункт назначения не врезавшись в препятствия. ');

Write('В начале игры у вас имеется 70 бонусов, с помощью которых вы можете пролететь');

Write('сквозь препятствие. Через каждые 500 метров вам начисляется 35 бонусов');




textcolor(red);

Writeln;

Writeln;Writeln;Writeln;

Writeln('                                     УПРАВЛЕНИЕ');

textcolor(Green);

Writeln('Управление вертолетом осуществляется с помошью клавишь стрелок.  ');

Write('При нажатии клавиши пробел активируется защитное поле(бонус) и при нажатии любой другой');

Write('клавиши выключается.');

Writeln('Также вертолет может резко набрать высоту {клавиша w } и снизиться {клавиша s}   ');

textcolor(Green);

ch:=readkey;

end;

end.

СПИСОК ЛИТЕРАТУРЫ

1. Фаронов В.В Турбо Паскаль 7.0. Начальный курс. Учебное пособие. – М: издательство «Нолидж», 1998.

2. Меженный О.А. Самоучитель Turbo Pascal. – М: издательство «Диалектика», 2004.

3. Николаев А.Б. Турбо Паскаль в примерах.- М:издательство «Просвещение», 2002.


Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.