0
我只想once-断言一些事实,如果他们还没有被断言,所以我做一个检查:意外未定义程序
:- 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问题,但我对prolog真的很陌生!
还有什么其他化合物代码?你是否在'ruut()'中初始化'X'和'Y'的值?你可以做一个'(\ + item(...) - > assert(...)),而不是通过else语句。 – Rubens
似乎工作...你知道你每个鲁特/ 3都断言一个物品/ 6吗? – CapelliC
是的,我知道 –