vy mate ale profesorov ..... asi od vas chcu viac nez ste schopni .. lebo na te polia nepouzit cykly je poriadna ......
Kód: Vybrať všetko
program clovece;
uses graph,crt;
type figur=record
x,y:word;
je:boolean;
farba:byte;
end;
var gd,gm,x1,y1,x2,y2,r:integer;
z,c:figur;
kocka:char;
vyhra:boolean;
procedure plocha;
begin
rectangle(25,25,550,450);
end;
procedure domcek1;
begin
rectangle(35,35,105,105);
end;
procedure domcek2;
begin
rectangle(470,370,540,440);
end;
procedure kruh;
begin
setlinestyle(1,0,3);
setcolor(yellow);
circle(70,70,20);
end;
procedure kruh1;
begin
setlinestyle(1,0,3);
setcolor(red);
circle(505,405,20);
end;
procedure policka;
var a:byte;
begin
x1:=130;
y1:=140;
r:=20;
setlinestyle(1,0,3);
setcolor(green);
for a:=1 to 5 do begin
circle(x1+a*60,y1,r);
circle(x1+a*60,y1+195,r);
end;
for a:=1 to 3 do begin
circle(x1,y1+a*65,r);
circle(x1+300,y1+a*65,r);
end;
setcolor(green);
end;
procedure dom;
begin
x2:=130;
y2:=140;
r:=20;
setlinestyle(1,0,3);
setcolor(yellow);
circle(x2,y2,r);
setcolor(red);
circle(x2+300,y2+195,r);
end;
procedure hod(a:integer;var fig:figur);
label chyba;
var b,c:byte; x,y:word;
begin vyhra:=false; x:=fig.x;y:=fig.y;
setfillstyle(1,0);
floodfill(fig.x,fig.y,getpixel(fig.x+20,fig.y));
for b:=1 to a do begin
if(fig.x<430)and(fig.y=140)then inc(fig.x,60)else
if(fig.x=430)and(fig.y<335)then inc(fig.y,65) else
if(fig.x>130)and(fig.y=335)then dec(fig.x,60) else
if(fig.x=130)and(fig.y>140)then dec(fig.y,65);
if(b<a)and(fig.x=130)and(fig.y=140)and(fig.farba=14)then
begin fig.x:=x;fig.y:=y;vyhra:=true;goto chyba; end else
if(b<a)and(fig.x=430)and(fig.y=335)and(fig.farba=4)then
begin fig.x:=x;fig.y:=y;vyhra:=true;goto chyba; end;
end;
chyba:
setfillstyle(1,fig.farba);
c:=green;
if(fig.x=130)and(fig.y=140)then c:=yellow
else if(fig.x=430)and(fig.y=335)then c:=red;
if(fig.farba<>c)then floodfill(fig.x,fig.y,c);
end;
label zl,cr,konec;
BEGIN
detectgraph(gd,gm);
initgraph(gd,gm,'..\bgi');
clovece.plocha;
domcek1;
domcek2;
policka;
dom;
kruh;
kruh1;
z.x:=130;z.y:=140;z.farba:=yellow;
c.x:=430;c.y:=335;c.farba:=red;
while(ord(kocka)<>27)do begin
zl: setfillstyle(1,15);floodfill(70,70,14);
kocka:=readkey;
if z.je then clovece.hod(ord(kocka)-48,z);
if (kocka='6')and(not z.je) then z.je:=true;
if(kocka='6')and(not vyhra)then goto zl;
if(z.x=c.x)and(z.y=c.y)and(z.je) then
begin c.x:=430; c.y:=335; c.je:=false;end;
setfillstyle(1,0);floodfill(70,70,14);
if(z.x=130)and(z.y=140)and(z.je)then
begin cleardevice;outtext('vyyhraaa (zlten) ');goto konec;end;
cr: setfillstyle(1,15);floodfill(505,405,4);
kocka:=readkey;
if c.je then hod(ord(kocka)-48,c);
if(kocka='6')and(not c.je) then c.je:=true;
if(kocka='6')and(not vyhra)then goto cr;
if(z.x=c.x)and(z.y=c.y)and(c.je) then
begin z.x:=130; z.y:=140; z.je:=false;end;
setfillstyle(1,0);floodfill(505,405,4);
if(c.x=430)and(c.y=335)and(c.je)then
begin cleardevice;outtext('vyyhraaa (cerven) ');goto konec;end;
end;
konec:readkey;closegraph;END.