我在 Prolog 中使用列表时遇到问题。我正在实现一个 Wumpus World 示例,并且需要在每次用户移动期间移动 wumpus。wumpus 的移动是在列表中预定义的,我不知道如何弹出列表的头部来设置 wumpus 的位置。Wumpus 列表将是:[left,right,up,down,...,right]。这是我到目前为止所拥有的,这显然是错误的。
我的代码并不需要确切的代码,只需要一个列表示例以及如何从列表中设置方向/值以及如何删除列表中弹出的头部将是理想的。
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)).