跳马问题:
在5*5格的棋盘上,有一个国际象棋的马,它可以朝8个方向跳,但不允许出界或跳到已跳过的格子上,要求求出跳遍整个棋盘后的不同的路径条数。
输出文件:jump.out,一行,路径条数。 

下面是我写的程序,可结果一直为0,请高手指点。

program t2;
const
dy :array[1..8] of -2..2=(-1,-2,-2,-1,1,2,2,1);
dx :array[1..8] of -2..2=(2,1,-1,-2,-2,-1,1,2);
type
where =array[1..2] of integer;
var
s :array[-5..10,-5..10] of boolean;
t,num :integer;
w :where;

procedure tiao(w :where;t :integer);
var
i :integer;
begin
s[w[1],w[2]] :=false;
inc(t);
if t =25 then inc(num) else
 for i :=1 to 8 do
   begin
   if s[w[1]+dx[i],w[2]+dy[i]]
   and (w[1]+dx[i]>0)
   and (w[2]+dy[i]>0)
   and (w[1]+dx[i] <6)
   and (w[2]+dy[i] <6) then
      begin
      w[1] :=w[1]+dx[i];w[2] :=w[2]+dy[i];
      tiao(w,t);
      w[1] :=w[1]-dx[i];w[2] :=w[2]-dy[i];
      s[w[1],w[2]] :=true;
      dec(t);
      end;
  end;
end;

begin
w[1] :=1;
w[2] :=1;
fillchar(s,sizeof(s),true);
tiao(w,t);
writeln(num);
end.