diff options
-rw-r--r-- | command.prolog | 38 |
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]. |