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