次の問題があります。キューブをテーブルに作成するタワーがいくつかあります。プロローグで位置Aから位置Bへのキューブの移動
a
b d
c e
------------------- <- table
今、私はこの1つのように、別の状況にキューブを移動したい:
c e
a b d
-------------------
のPrologプログラムは、例えば、このような状況を取得するための手順を印刷する必要がありますようにmove cube a onto the table
をし、 。私はPrologで表された第1の状況がある:
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に新しい状況の様子を伝える方法です。私はいくつかのリストでそれを試しましたが、私は今まで成功していませんでした。
これを解決する方法はありますか?
私は、他の事実、多分nextTo(a、b)のようなものを述べる必要があるかもしれないと思いますか? –
nextToとはどういう意味ですか?左か右?それとも? – Tobias
余計な事実がなければ、プロローグで新しい状況を印刷することができないかもしれないと言っていました。私は左右を意味していましたが、それがあいまいな場合は、別の識別子名を使用してみてください。 –