%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% puzzle with 9 cells and 8 tiles %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% cell(X):- interval(X,1,9). tile(X):- interval(X,1,2). %location 3 free tile(X):- interval(X,4,9). %%%% Topology of the chessboard near(1,2). near(1,4). near(2,1). near(2,3). near(2,5). near(3,2). near(3,6). near(4,1). near(4,5). near(4,7). near(5,2). near(5,4). near(5,6). near(5,8). near(6,3). near(6,5). near(6,9). near(7,4). near(7,8). near(8,5). near(8,7). near(8,9). near(9,6). near(9,8). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Action Theory %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fluent(at(X), 1,9) :- tile(X). fluent(free,1,9). action(move(X,Y)) :- cell(Y),tile(X). executable(move(X,Y),[at(X) eq Z, free eq Y]) :- tile(X),cell(Y),near(Z,Y). causes(move(X,Y),at(X) eq Y,[]) :- tile(X),cell(Y). causes(move(X,Y),free eq at(X)^(-1),[]):- tile(X),cell(Y). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% 20 random moves on Federica's toy %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %initially(at(1,3)). initially(at(2,6)). %initially(at(4,7)). initially(at(5,4)). initially(at(6,1)). %initially(at(7,9)). initially(at(8,2)). initially(at(9,8)). %initially(free(5)). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% 15 random moves on Federica's toy %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% initially(at(1) eq 2). initially(at(2) eq 3). initially(at(4) eq 7). initially(at(5) eq 4). initially(at(6) eq 1). initially(at(7) eq 5). initially(at(8) eq 8). initially(at(9) eq 9). initially(free eq 6). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% 10 random moves on Federica's toy %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %initially(at(1,1)). initially(at(2,3)). %initially(at(4,8)). initially(at(5,2)). initially(at(6,9)). %initially(at(7,4)). initially(at(8,6)). initially(at(9,7)). %initially(free(5)). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% goal(at(X) eq X) :- tile(X). goal(free eq 3). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%