いくつかの事実を一度だけ主張したいのですが、まだ主張されていない場合は、次のことを確認します。
:- dynamic item/6.
init(Id, LastId, Depth) :-
ruut(X,Y,Color),
(item(X,Y,Color,Depth,Id,LastId) -> true;
assert(item(X,Y,Color,Depth,Id,LastId))),
fail.
init(_, _, _).
重要なのは、まだアサートされていない場合にのみアサートすることです。しかし、エラーが発生しています。
ERROR: my_pgm:initsialiseeri_seisund/3: Undefined procedure: my_pgm:item/6
私が間違っていることは何ですか?noobの質問で申し訳ありませんが、私はプロローグに本当に慣れていません!