我遇到以下問題:桌子上有一些用立方體建造的塔。在Prolog中將立方體從位置A移動到位置
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的打印步驟,新的形勢。我的第一個問題是,如何告訴Prolog新形勢如何。我嘗試了一些清單,但直到現在我還沒有成功。
有沒有人有一個想法如何解決這個問題?
我想你可能需要陳述其他事實,可能像nextTo(a,b)? –
nextTo是什麼意思?左還是右?或以上? – Tobias
我在說如果你沒有額外的事實,你可能無法做出prolog打印你的新情況。我的意思是左和右,但如果這對你來說模棱兩可,請嘗試使用另一個標識符名稱。 –