Quer uma solução curta? Use prolog:
[code]
dentro_tabuleiro(X) :-
0 < X, X < 9.
pode_ir([X, Y], [X1,Y1]) :-
deltaxy(Dx, Dy); deltaxy(Dy, Dx),
X1 is X + Dx,
dentro_tabuleiro(X1),
Y1 is Y + Dy,
dentro_tabuleiro(Y1).
caminho_cavalo(I, F, Caminho) :-
caminho_cavalo(F, [I], Caminho).
caminho_cavalo1(X, [X|L], [X|L]).
caminho_cavalo(I, [E, Cam], Caminho) :-
pode_ir(E, E1),
not pertence(E1, Cam),
caminho_cavalo1(I, [E1, E|Cam], Caminho).
[/code][/quote]
Vini, não obtive lembranças muito boas vendo isso, rss. Tive prolog e principalmente em IA, não me interesso muito por ela não viu rs.
Foi só um comentário, vejo poucas pessoas com contato com esse linguagem de programação.
Abraços!