Prolog でリストを使用するのに問題があります。私は Wumpus World の例を実装しており、ユーザーが移動するたびに wumpus を動かす必要があります。wumpus の動きはリストで事前定義されており、wumpus の位置を設定するためにリストの先頭をポップする方法がわかりません。Wumpus リストは次のようになります: [左、右、上、下、...、右]。ここに私がこれまでに持っているものがありますが、これは明らかに間違っています。
私のコードに正確なコードは必要ありません。リストの例と、リストから方向/値を設定する方法と、ポップされたリストの先頭を削除する方法が理想的です。
wumpusPath([left,up,down,right,left,down]).
moveWumpus :-
wumpusDirection(wumpusPath),
wumpusLocation(X,Y),
newLocation(X,Y,wumpusDirection,X1,Y1),
worldSize(CheckX,CheckY),
X1 =< CheckX,
X1 > 0,
Y1 =< CheckY,
Y1 > 0,
!,
retract(wumpusLocation(X,Y)),
assert(wumpusLocation(X1,Y1)).