ehh
i'm in coding a go game on pascal. this is the code as far
program IGOPascal;

uses
wincrt;

type
igo=0..3;

var
papan:array[1..15,1..15]of igo;
xt,yt:array[0..225]of integer;
tanda:array[1..4]of boolean;
a,b,x,y,i,j,pin:integer;

procedure cek_d1(xd:integer;yd:integer;pin:integer);
begin
case papan[xd,yd] of
0:exit;
1:cek_c(xd,yd,pin);
2:begin
tanda[j]:=true;
exit;
end;
end;

procedure cek_d2(xd:integer;yd:integer;pin:integer);
begin
case papan[xd,yd] of
0:exit;
2:cek_c(xd,yd,pin);
1:begin
tanda[j]:=true;
exit;
end;
end;
procedure cek_c(xc:integer;yc:integer;pin:integer);

begin
pin:=pin+1;
for j:=1 to 4 do
begin
case j of
2:begin
xt[pin]:=xc+1;
yt[pin]:=yc;
end;

1:begin
xt[pin]:=xc-1;
yt[pin]:=yc;
end;

4:begin
xt[pin]:=xc;
yt[pin]:=yc+1;
end;

3:begin
xt[pin]:=xc;
yt[pin]:=yc-1;
end;
end;
case papan[x,y] of
1:cek_d1(xt[0],xy[0]);
2:cek_d2(xt[0],xy[0]);
end;
end;
if tanda=true then
papan[xc,yc]:=3;
end;

procedure cek_b1(xb:integer;yb:integer);

begin
case papan[xb,yb] of
0:exit;
1:exit;
2:cek_c(xb,yb,0);
end;

procedure cek_b2(xb:integer;yb:integer);

begin
case papan[xb,yb] of
0:exit;
2:exit;
1:cek_c(xb,yb,0);
end;

procedure cek_igo(xa:integer;ya:integer);

begin
for i:=1 to 4 do
begin
case i of
1:begin
xt[0]:=xa+1;
yt[0]:=ya;
end;

2:begin
xt[0]:=xa-1;
yt[0]:=ya;
end;

3:begin
xt[0]:=xa;
yt[0]:=ya+1;
end;

4:begin
xt[0]:=xa;
yt[0]:=ya-1;
end;
end;
case papan[x,y] of
1:cek_b1(xt[0],xy[0]);
2:cek_b2(xt[0],xy[0]);
end;
end;
for i:=1 to 225 do
for j:=1 to 225 do
if papan[j,i]=3 then
papan[j,i]=0;

end;

begin
readln(x);
readln(y);
cek_igo(x,y);
end.

it use a multiple procedure
can someone help me?