Арканоид на Паскале
bsp; end;
inc(score,10);
ochki(score);
s2:='The end of game';
zastavka(s2);
closegraph;
end.
Текстсконструируемыхмодулей:
unit markel;
interface
uses crt,graph,mymouse,mark_zas;
var sverhu:string;
liv,numbering:byte;
const radius=7;
shir=15;
y1_dv=479-1;
y2_dv=479-shir;
type t_kubik=-10..640;
t_dx_dy=-1..1;
t_arr=array[1..494] of t_kubik;
kol_kubik=0..247;
procedure livs(var liv:byte;score:integer);
procedure perehod_level(const numbering:byte);
procedure planka_sharik(koeff:byte);
procedure musik;
procedure izchez_vv_niz(var dy:t_dx_dy;x,y,i:t_kubik;var
a:t_arr;var kol_kub:kol_kubik;var score:integer);
procedure bok_bok(var dx:t_dx_dy;x,y:t_kubik;var a:t_arr;var
kol_kub:kol_kubik;var score:integer);
procedure death;
procedure ugolki(var dx,dy:t_dx_dy;x,y:t_kubik;var a:t_arr;var
kol_kub:kol_kubik;var score:integer);
procedure pausing(var pause:word);
procedure zapis(const xs,ys:t_kubik;i:t_kubik;var a:t_arr);
procedure level(var a:t_arr;const numbering:byte;var
kol_kub:kol_kubik);
procedure left(const koeff:byte;var x1_dv,x2_dv:t_kubik);
procedure right(const koeff:byte;var x1_dv,x2_dv:t_kubik);
procedure dviguna_keyboard(const koeff:byte;var
x,x1_dv,x2_dv:t_kubik;var y:t_kubik);
procedure dviguna_mouse(const koeff:byte;var
x,x1_dv,x2_dv:t_kubik;var y:t_kubik);
procedure zar_nar(var x,y:t_kubik;const dx,dy:t_dx_dy);
function chem_play:boolean;
procedure razmer_planki(var koeff:byte);
procedure naverhu_liv(liv:byte);
procedure naverhu_number(numbering:byte);
procedure naverhu_kubiki(kol_kub:byte;var score:integer);
procedure naverhu_score(score:integer);
implementation
function chem_play:boolean;
var mask:boolean;
greenvalue,bluevalue:0..64;
i,j:-1..1;
begin
setcolor(blue);
settextstyle(4{GothicFont},horizdir,5);
settextjustify(1,1);
outtextxy(round(getmaxx / 3.3), round(getmaxy / 2.3),'Mouse');
setcolor(green);
outtextxy(round(getmaxx / 1.5), round(getmaxy / 2.3),'Keyboard');
i:=1;
j:=1;
greenvalue:=0;
bluevalue:=0;
while true do
begin
repeat
case mask of
true:begin
setRGBpalette(blue,0,0,bluevalue);
inc(bluevalue,i);
if (bluevalue = 63) or (bluevalue = 0) then
i:=-i;
end;
false:begin
setRGBpalette(green,0,greenvalue,0);
inc(greenvalue,j);
if (greenvalue = 63) or (greenvalue = 0) then
j:=-j;
end;
end;
until keypressed;
case readkey of
#75: mask:=true;
#77: mask:=false;
#13: begin chem_play:=mask; delay(5000); cleardevice; exit;
end;
#27: begin closegraph; halt; end;
end;
end;
end;
procedure ugolki(var dx,dy:t_dx_dy;x,y:t_kubik;var a:t_arr;var
kol_kub:kol_kubik;var score:integer);
procedure izchez(var dx,dy:t_dx_dy;var a:t_arr;var
kol_kub:kol_kubik;i:word);
begin
setcolor(0);
setfillstyle(1,0);
bar3d(a[i],a[i+1],a[i]+48,a[i+1]-20,0,false);
musik;
a[i]:=0;
a[i+1]:=0;
dx:=-dx;
dy:=-dy;
dec(kol_kub);
musik;
naverhu_kubiki(kol_kub,score);
exit;
end;
var i:1..496;
begin
i:=1;
while i<=493 do
begin
if x-radius+1=a[i]+48 then
if (y-radius+1=a[i+1])or((y-radius+1a[i+1]-
20))
or(y+radius-1=a[i+1]-20)or((y+radius-1a[i+1]-20))
| | скачать работу |
Арканоид на Паскале |