Zdravim,mam zajimavý problém,jedná se o to že mi v tomto programu časem dojde pole(sem sem dal 100 aby bylo rychle videt co to delá za chyby) a pascal se neak ukončí a ešte pred tim to dělá naky divný čáry. tohle je pouze kostra programu.nechtel sem to tady zahlcovat
Nevíte nekdo co tim????
program had;
uses ch_200,crt,graph;
const up=#72;
down=#80;
left=#75;
right=#77;
esc=#27;
var xpole,ypole:array[1..100] of integer;
GDriver,GMode,i,xHlava,yHlava,DelkaHada:integer;
klavesa:char;
procedure PohybHada;
begin
delay(500);
if keypressed then klavesa:=readkey;
if klavesa=esc then halt;
setcolor(green);
line(xHlava,yHlava,xpole[i],ypole[i]); {aktualne vykreslovana cara}
i:=i+1;
xpole[i]:=xHlava;
ypole[i]:=yHlava;
setcolor(black); {cerny had ktery jede za zelenym a "zere" mu ocas}
line(xpole[i-delkahada],ypole[i-delkahada],xpole[i-delkaHada-1],
ypole[i-delkaHada-1]); {v podstate si "pamatuje" kudy jel a tam mu zere
ocas}
end;
begin
initgraph(GDriver,GMode,'');
xHlava:=320;
yHlava:=240;
delkaHada:=10;
xpole[i]:=xHlava;
ypole[i]:=yHlava;
repeat
if keypressed then klavesa:=readkey;
if klavesa=left then repeat {doleva}
PohybHada;
xHlava:=xHlava-5;
until (klavesa=down) or (klavesa=up);
if klavesa=right then repeat {doprava}
PohybHada;
xHlava:=xHlava+5;
until (klavesa=down) or (klavesa=up);
if klavesa=up then repeat {nahoru}
PohybHada;
yHlava:=yHlava-5;
until (klavesa=left) or (klavesa=right);
if klavesa=down then repeat {dolu}
PohybHada;
yHlava:=yHlava+5;
until (klavesa=left) or (klavesa=right);
until klavesa=esc;
end.