九洞有8个钉子.开始时,左边的四个红色钉子和右边的四个蓝色钉子,以及它们之间的一个空洞.谜题是将所有红色向右移动,将蓝色钉向左移动(在另一个相反方向).这些是合法的举措:
这是我写的,但它不起作用
% Form of board, b for blue, r for red, o for empty.
% [ [r,r,r,r], [o], [b,b,b,b] ]
% jumps
linjmp([x, x, o | T], [o, o, x | T]).
linjmp([o, x, x | T], [x, o, o | T]).
linjmp([H|T1], [H|T2]) :- linjmp(T1,T2).
% Series of legal boards.
series(From, To, [From, To]) :- jump(From, To).
series(From, To, [From, By | Rest])
:- jump(From, By),
series(By, To, [By | Rest]).
% Print a series …
Run Code Online (Sandbox Code Playgroud)