diff options
Diffstat (limited to 'agent.prolog')
-rw-r--r-- | agent.prolog | 41 |
1 files changed, 1 insertions, 40 deletions
diff --git a/agent.prolog b/agent.prolog index 8adbe3e..41167c4 100644 --- a/agent.prolog +++ b/agent.prolog @@ -2,6 +2,7 @@ :- module(agent, [init, look/0, move/1, take/1, shoot/1]). +:- consult('misc.prolog'). :- consult('parser.prolog'). :- consult('map.prolog'). @@ -275,43 +276,3 @@ hazardAt(X) :- current_predicate(wumpusAt/1), wumpusAt(X). hazardAt(X) :- current_predicate(pitAt/1), pitAt(X). hazardAt(X) :- current_predicate(batsAt/1), batsAt(X). - -intercalate([X|Y], Spacer, Result) :- - intercalate(Y, Spacer, Tail), - atom_concat(X, Spacer, Head), - atom_concat(Head, Tail, Result). -intercalate([X], _, Result) :- Result = X. - - -filter(List, Predicate, Result) :- - Test =.. [Predicate,X], - findall(X, Test, No), - subtract(List, No, Result). - - -head(X,[Y]) :- X = Y. -head(X,[Y|_]) :- X = Y. - - -tail(X,[]) :- X = []. -tail(X,[_]) :- X = []. -tail(X,[_|Y]) :- X = Y. - - -isConnected([]) :- true. -isConnected(X) :- - head(Y,X), - tail(Z,X), - connectTail([Y],Z). - -connectTail(_,[]) :- true. -connectTail([],_) :- false. -connectTail(Open,G) :- - head(X,Open), - tail(Y,Open), - findall(N, connects(X,N,_), Ns), - subtract(G,Ns,Gx), - subtract(G,Gx,Nx), - append(Y,Nx,Yx), - connectTail(Yx,Gx). - |