Алгоритм работы. Руководство пользователя. Исходные коды модулей. Ввод имени игрока. Прорисовка игрового поля. Создание Вертолета, двух видов Барьера и Бонуса. Запись в динамическую память изображений изменяющих свое положение на экране.
Аннотация к работе
Также в данном модуле определены следующие процедуры и функции: function game(sd:boolean):word; function og(a,d:integer):word; procedure GET; procedure ni; procedure start; procedure tex; procedure lev(text,text1:string); procedure vert(a,d:integer;s:byte); procedure score(kol:integer; nik:string); procedure ogon(a,d:integer; s:byte); 3. Option.pas- модуль с помшью которого можно включить или выключить звуковое сопровождение 4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ ПРАВИЛА ИГРЫ Правила этой игры настолько просты, что не потребуют от игрока ни малейшего напряжения при запоминании. ПРИЛОЖЕНИЯ ИСХОДНЫЕ КОДЫ ПРОЦЕДУР И ФУНКЦИЙ, ПРЕДСТАВЛЯЮЩИЕ НАИБОЛЬШИЙ ИНТЕРЕС function game(sd:boolean):word; const left=#75; right=#77; up=#72; down=#80; begin ni; fon:=0; plus:=0; yr:=3; schet:=0; a:=120; d:=240; verx:=460;niz:=125; kk:=300;ll:=350;z:=580;v:=880; l:=680; k:=780; i:=980; ii:=400; vv:=200;zz:=150; p:=0;pp:=640; level:=1; vert(a,d,4); randomize; get; och:=70; begin tex; start; bonn:=random(150) 300; end; repeat setcolor(0); if (plus(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 a594 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 (yr500) 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; ИСХОДНЫЕ КОДЫ МОДУЛЕЙ Модуль Game unit games; interface USES CRT,GRAPH; function game(sd:boolean):word; function og(a,d:integer):word; procedure GET; procedure ni; procedure start; procedure tex; procedure lev(text,text1:string); procedure vert(a,d:integer;s:byte); procedure score(kol:integer; nik:string); procedure ogon(a,d:integer; s:byte); implementation type mass=array[1..100] of word; Var sche: array[1..100] of integer ; nam: array[1..100] of string ; q,e,r,a,d,w,n,k,kk,l,ll,verx,niz,ste,z,zz,v,vv,p,pp,schet,yr,fon,plus,pl:integer; aw,bonn,xxx,xx,sss,ss,aa,zs,vs,ff,gg,fff,ggg,i,ii,level:integer; t:char; text,text1,cod,cod1:string[15]; nik,och,och1:string[7]; astn1:mass; b:boolean; ver,barer,barer1,barer2,barer3:pointer; procedure ogon(a,d:integer; s:byte); var k:array[1..200] of word; n,i:integer; begin for i:=1 to 5 do begin k[1]:=a;k[2]:=d; k[3]:=a 8;k[4]:=d-15;k[5]:=a 14;k[6]:=d-12; k[7]:=a 18;k[8]:=d-18;k[9]:=a 20;k[10]:=d-13;k[11]:=a 25;k[12]:=d-25; k[13]:=a 27;k[14]:=d-19;k[15]:=a 30; k[16]:=d-21;k[17]:=a 34;k[18]:=d-17; k[19]:=a 36;k[20]:=d-19;k[21]:=a 37;k[22]:=d-5;k[23]:=a 40;k[24]:=d-10; k[25]:=a 38;k[26]:=d 3;k[27]:=a 33;k[28]:=d 10;k[29]:=a 27;k[30]:=d 4; k[31]:=a 25;k[32]:=d 11;k[33]:=a 19;k[34]:=d 6;k[35]:=a 9;k[36]:=d 13; k[37]:=a;k[38]:=d; n:=19; setfillstyle(1,s); setcolor(s); fillpoly(n,k); delay(1500); setfillstyle(1,s 3); setcolor(s 3); fillpoly(n,k); delay(3000); setfillstyle(1,s 4); setcolor(s 4); fillpoly(n,k); delay(1500); setfillstyle(1,s 3); setcolor(s 3); fillpoly(n,k); end; end; procedure vert(a,d:integer;s:byte); var k:array[1..100] of word; n:integer; begin k[1]:=a;k[2]:=d;k[3]:=a 5;k[4]:=d;k[5]:=a 5;k[6]:=d-5;k[7]:=a;k[8]:=d-5;k[9]:=a 10;k[10]:=d-5; k[11]:=a 5;k[12]:=d-5;k[13]:=a 5;k[14]:=d;k[15]:=a 10; k[16]:=d;k[17]:=a 15;k[18]:=d 5; k[19]:=a 20;k[20]:=d 5;k[21]:=a 23;k[22]:=d 2;k[23]:=a 27;k[24]:=d;k[25]:=a 30;k[26]:=d; k[27]:=a 30;k[28]:=d-7;k[29]:=a 20;k[30]:=d-7;k[31]:=a 20;k[32]:=d-8;k[33]:=a 40;k[34]:=d-8; k[35]:=a 40;k[36]:=d-7;k[37]:=a 30;k[38]:=d-7;k[39]:=a 30;k[40]:=d;k[41]:=a 33;k[42]:=d 2; k[43]:=a 30;k[44]:=d;k[45]:=a 30;k[46]:=d 9;k[47]:=a 41;k[48]:=d 9;k[49]:=a 27;k[50]:=d 9; k[51]:=a 19;k[52]:=d 6;k[53]:=a-1;k[54]:=d;k[55]:=a;k[56]:=d 5;k[57]:=a 5;k[58]:=d 6; k[59]:=a 11;k[60]:=d 7;k[61]:=a 17;k[62]:=d 8;k[63]: