9 звено у змейки, а выходит только 5.
Где ошибка

Код
uses crt;
const xmax=8;
ymax=8;
var ch:char;
i,j,first,last:byte;
n:integer;
x:array[0..xmax] of byte;
y:array[0..ymax] of byte;
begin
clrscr;
i:=1;
j:=1;
n:=0;
while ch<>#27 do
begin
inc(n);
gotoxy(i,j);
write('*');
ch:=readkey;
first:=n mod (xmax+1);
if first<xmax then last:=first+1
else last:=0;
case first of
0: begin x[0]:=i; y[0]:=j; end;
1: begin x[1]:=i; y[1]:=j; end;
2: begin x[2]:=i; y[2]:=j; end;
3: begin x[3]:=i; y[3]:=j; end;
4: begin x[4]:=i; y[4]:=j; end;
5: begin x[5]:=i; y[5]:=j; end;
6: begin x[6]:=i; y[6]:=j; end;
7: begin x[7]:=i; y[7]:=j; end;
8: begin x[8]:=i; y[8]:=j; end;
end;
if n>=(xmax+1) then
begin
gotoxy(x[last],y[last]);
write(' ');
end;
if (ch=#77) and (i<80) then inc(i); {right}
if (ch=#75) and (i>1) then dec(i); {left}
if (ch=#80) and (j<25) then inc(j); {up}
if (ch=#72) and (j>1) then dec(j); {down}
end;
end.