私はプロローグの初心者で、netlogo とプロローグを使用して pacman を単独で動かそうとしています。これは私のコードの一部です:
walkfront(_,_,_,_,_,_,Pacman,DirP,Lab,Ghost,_,Pellet,_,_,Decision) :-
findall(Dir,
( member(Dir,[0,90,180,270]),
\+ ( member((G,false),Ghost), dangerous(Pacman,G,2,Dir,_) ) ),
L),
findall(Dir,(member(Dir,[0,90,180,270]),(member(P,Pellet))),T),
chooseNotDangerous(L,Pacman,DirP,Lab,Dir,T)
walkfront(_,_,_,_,_,_,Pacman,DirP,Lab,Ghost,_,Pellet,_,_,Decision)
この行には、netlogo から取得したすべての情報のリストが含まれています。Pacman は pacman の位置 (x,y)、DirP は pacman が向いている方向、Lab は迷路内の空きスペース、Ghost はその位置です。 Ghosts (x,y,eaten?), Pellet はペレットのすべての位置のリスト (x,y), Decision は pacman によって選択された出力です.
最初の findall は、ゴーストがなく、危険でないすべての方向 (Dir) を提供し、それらを L というリストに保存することに
なっています。
私の質問は、私のコードが何らかの理由で機能していないため、このfindallが正しいかどうかです.2番目のfindallが原因である可能性があります.
助けてくれてありがとう :)。