我有这个代码。我正在尝试计算我可以创造的最长的多米诺骨牌链我从未有超过16块石头。我使用阵列多米诺骨牌'整数来存储nubmers在石头上。当我尝试运行这个程序时,我在第25行遇到了SIGSEGV异常(我正在使用Lazarus IDE v1.4.4)。调用程序可能有些问题。谢谢你的帮助。
var n,maxDelka:integer;
type dominoType = array[1..16,1..2] of integer;
var domino:dominoType;
procedure NactiDomino;
var i:integer;
begin
read(n);
for i:=1 to n do begin
read(domino[i][1]);
read(domino[i][2]);
end;
end;
procedure VynulujDomino;
var i:integer;
begin
for i:=1 to 16 do begin
domino[i][1]:= 0;
domino[i][2]:= 0;
end;
maxDelka:=0;
end;
procedure RetezezDomino(VDomino:dominoType);
var i,y :integer;
begin //------------------here was the exception---------------------------
for i:=1 to n do begin
for y:=1 to n do begin
if((VDomino[i][1]=VDomino[y][1])and(VDomino[i][1]<>-1))then begin VDomino[i][1]:= -1;VDomino[y][1]:= -1; RetezezDomino(VDomino); end
else if((VDomino[i][1]=VDomino[y][2])and(VDomino[i][1]<>-1))then begin VDomino[i][1]:= -1;VDomino[y][1]:= -1; RetezezDomino(VDomino); end
else if((VDomino[i][2]=VDomino[y][2])and(VDomino[i][2]<>-1))then begin VDomino[i][1]:= -1;VDomino[y][1]:= -1; RetezezDomino(VDomino); end;
end;
end;
inc(maxDelka);
end;
begin
VynulujDomino;
NactiDomino;
writeln(maxDelka);
RetezezDomino(domino);
writeln(maxDelka);
end.