如果列表L中的任何成员与X不同,如何询问Prolog

时间:2014-04-12 01:05:03

标签: list prolog pacman

我正在做一个pacman Prolog + netologo游戏,我正在重复循环,因为我告诉pacman他不能靠近幽灵,但他也不能去反向他面对的时候,这是逃避鬼魂的唯一选择 所以,我想问Prolog是否有我的L列表中的任何成员(所有方向都没有重影的列表)与我的反方向不同,如果答案为否,我希望它失败,所以它不会进入重复循环,如果答案是肯定的,我希望它选择其中一个结果。

这是我现在的代码:

chooseNotDangerous(L,Pacman,Dir,Free,Decision) :-
    \+ member(Dir,L),
    inverse(Dir,Inv),
    member(Decision,L),
    front(Pacman,Decision,F),
    member(F,Free),
    repeat,
    randMember(Decision,[0,90,180,270]),
    Decision \== Dir,
    Decision \== Inv,!.

感谢您的帮助:)。

0 个答案:

没有答案