summaryrefslogtreecommitdiff
path: root/src/command.prolog
diff options
context:
space:
mode:
Diffstat (limited to 'src/command.prolog')
-rw-r--r--src/command.prolog47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/command.prolog b/src/command.prolog
new file mode 100644
index 0000000..f897735
--- /dev/null
+++ b/src/command.prolog
@@ -0,0 +1,47 @@
+
+
+:- module(command, [getCommand/2]).
+
+
+:- consult('parser.prolog').
+
+
+
+
+% functions for parsing a list of words into a recognised command
+
+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].
+