summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--command.prolog38
1 files changed, 37 insertions, 1 deletions
diff --git a/command.prolog b/command.prolog
index 4e8c5d7..b8989f4 100644
--- a/command.prolog
+++ b/command.prolog
@@ -3,9 +3,45 @@
:- module(command, [getCommand/2]).
+:- consult('parser.prolog').
+
+
% functions for parsing a list of words into a recognised command
-getCommand(L,C) :- C =.. L. % placeholder
+getCommand(['quit'],C) :- C = [quit].
+getCommand(['exit'],C) :- C = [quit].
+
+
+getCommand(['go',X],C) :- C = [move,X].
+getCommand(['move',X],C) :- C = [move,X].
+
+
+getCommand(['n'],C) :- C = [move,north].
+getCommand(['north'],C) :- C = [move,north].
+getCommand(['s'],C) :- C = [move,south].
+getCommand(['south'],C) :- C = [move,south].
+getCommand(['e'],C) :- C = [move,east].
+getCommand(['east'],C) :- C = [move,east].
+getCommand(['w'],C) :- C = [move,west].
+getCommand(['west'],C) :- C = [move,west].
+
+
+getCommand(['nw'],C) :- C = [move,northwest].
+getCommand(['northwest'],C) :- C = [move,northwest].
+getCommand(['ne'],C) :- C = [move,northeast].
+getCommand(['northeast'],C) :- C = [move,northeast].
+getCommand(['sw'],C) :- C = [move,southwest].
+getCommand(['southwest'],C) :- C = [move,southwest].
+getCommand(['se'],C) :- C = [move,southeast].
+getCommand(['southeast'],C) :- C = [move,southeast].
+
+
+getCommand(['take',X],C) :- C = [take,X].
+getCommand(['shoot',X],C) :- C = [shoot,X].
+
+
+getCommand(['l'],C) :- C = [look].
+getCommand(['look'],C) :- C = [look].