summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--command.prolog48
-rw-r--r--main.prolog10
2 files changed, 34 insertions, 24 deletions
diff --git a/command.prolog b/command.prolog
index b8989f4..f897735 100644
--- a/command.prolog
+++ b/command.prolog
@@ -10,38 +10,38 @@
% functions for parsing a list of words into a recognised command
-getCommand(['quit'],C) :- C = [quit].
-getCommand(['exit'],C) :- C = [quit].
+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(['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(['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(['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(['take',X],C) :- C =.. [take,X].
+getCommand(['shoot',X],C) :- C =.. [shoot,X].
-getCommand(['l'],C) :- C = [look].
-getCommand(['look'],C) :- C = [look].
+getCommand(['l'],C) :- C =.. [look].
+getCommand(['look'],C) :- C =.. [look].
diff --git a/main.prolog b/main.prolog
index 1dcd4df..ef23f4f 100644
--- a/main.prolog
+++ b/main.prolog
@@ -9,16 +9,26 @@
play :-
init,
+ look,
playLoop.
playLoop :-
prompt(Line),
+ evalLine(Line).
+
+
+evalLine(Line) :-
getCommand(Line,Command),
Command,
playLoop.
+evalLine(_) :-
+ write('What?\n\n'),
+ playLoop.
+
+
quit :-
halt(0).