У меня следующая проблема: на столе есть несколько башен с кубиками.
a
b d
c e
------------------- <- table
Теперь я хочу переместить кубы в другую ситуацию, например, такую:
c e
a b d
-------------------
Программа Prolog должна распечатать шаги, чтобы добраться до этой ситуации, например: move cube a onto the table
и так далее. У меня первая ситуация, представленная в Прологе:
clean(t). % t is the table, you can always put things there
clean(X) :- \+ on(_,X). % X is the top element, if there is nothing above it
on(a,b). % a is on b
on(b,c). % b on c
on(d,e). % d on e
on(c,t). % c on the table
on(e,t). % and e on the table
Теперь моя проблема состоит в том, чтобы найти решение, которое заставит Prolog напечатать шаги к новой ситуации. Моя первая проблема, как сказать Прологу, как выглядит новая ситуация. Я пробовал это с некоторыми списками, но до сих пор не получилось.
У кого-нибудь есть идеи, как это решить?