% | 1 | 2 | 3 | % | 4 | 5 | 6 | % | 7 | 8 | 9 | knight(1,6). knight(1,8). knight(2,7). knight(2,9). knight(3,4). knight(3,8). knight(4,3). knight(4,9). knight(6,1). knight(6,7). knight(8,1). knight(8,3). knight(7,2). knight(7,6). knight(9,2). knight(9,4). move_user(X,Y) :- retractall(visited(Z)), asserta(visited(X)), asserta(visited(Y)), move(X,Y). move(X,Y) :- knight(X,Y). move(X,Y) :- knight(X,Z), not(visited(Z)), asserta(visited(Z)), print(Z),nl, move(Z,Y).