diff options
Diffstat (limited to 'src/command.prolog')
-rw-r--r-- | src/command.prolog | 47 |
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]. + |