2024-05-13 04:31:13 +01:00
|
|
|
?(?-) (Utils)
|
|
|
|
|
2024-05-18 16:10:07 +01:00
|
|
|
<> (print ?x) (?(?: ?:) ?x)
|
2024-05-13 03:52:35 +01:00
|
|
|
|
2024-05-13 04:31:13 +01:00
|
|
|
?(?-) (Sight)
|
|
|
|
|
2024-05-20 05:04:06 +01:00
|
|
|
<> (print-sentence (?q ?r)) (?(?: ?:) ?q\s print-sentence ?r)
|
|
|
|
<> (print-sentence ()) (?(?: ?:) \n)
|
|
|
|
|
2024-05-19 18:26:58 +01:00
|
|
|
<> (print-list ?a ((:?x ?X) ((:?y ?Y) ((:?z ?Z) ?r)))) (print (You ?a a ?x, a ?y and a ?z.\n))
|
|
|
|
<> (print-list ?a ((:?x ?X) ((:?y ?Y) ()))) (print (You ?a a ?x and a ?y.\n))
|
|
|
|
<> (print-list ?a ((:?x ?X) ())) (print (You ?a a ?x.\n))
|
2024-05-19 18:43:46 +01:00
|
|
|
<> (print-list ?a ()) ()
|
2024-05-20 05:04:06 +01:00
|
|
|
<> print-prompt (?(?: ?:) (\n|\s))
|
2024-05-19 18:43:46 +01:00
|
|
|
|
2024-05-18 17:03:17 +01:00
|
|
|
<> (:?p ((sight > $ :?V ?C) ?r)) (
|
2024-05-18 17:35:58 +01:00
|
|
|
print (\nYou are a ?V in a ?p.\n)
|
2024-05-19 18:26:58 +01:00
|
|
|
print-list see ?r
|
|
|
|
print-list carry ?C
|
2024-05-20 05:04:06 +01:00
|
|
|
print-note
|
|
|
|
:?p print-prompt ((> $ :?V ?C) ?r)
|
2024-05-18 17:03:17 +01:00
|
|
|
)
|
2024-05-13 04:31:13 +01:00
|
|
|
|
2024-05-13 04:03:41 +01:00
|
|
|
?(?-) (Cleanup articles)
|
|
|
|
|
2024-05-20 05:04:06 +01:00
|
|
|
<> ((note ?q) remove-articles parse) ((note ?q) parse-special)
|
2024-05-20 00:12:32 +01:00
|
|
|
<> ((?x ?r) remove-articles) (clean ?r (?x ()))
|
|
|
|
|
|
|
|
<> (clean (the ?r) ?q) (clean ?r ?q)
|
|
|
|
<> (clean (a ?r) ?q) (clean ?r ?q)
|
|
|
|
<> (clean (an ?r) ?q) (clean ?r ?q)
|
|
|
|
|
|
|
|
<> (clean (?w ?r) ?q) (clean ?r (?w ?q))
|
|
|
|
<> (clean () ?q) (flip () ?q)
|
|
|
|
<> (flip ?q (?w ?r)) (flip (?w ?q) ?r)
|
|
|
|
<> (flip ?q ()) ?q
|
|
|
|
|
|
|
|
?(?-) (Join words)
|
|
|
|
|
|
|
|
<> ((?v (?a (?b ()))) parse) ((?v (?a\s?b ())) parse)
|
|
|
|
<> ((?v (?a (?b (in ?r)))) parse) ((?v (?a\s?b (in ?r))) parse)
|
2024-05-20 00:16:56 +01:00
|
|
|
<> ((?v (?a (in (?b (?c ()))))) parse) ((?v (?a (in (?b\s?c ())))) parse)
|
2024-05-13 04:03:41 +01:00
|
|
|
|
2024-05-17 18:56:15 +01:00
|
|
|
?(?-) (Physics)
|
|
|
|
|
2024-05-18 23:08:02 +01:00
|
|
|
<> ((-> ?q :?q ?c)) ((<- ?q :?q ?c))
|
|
|
|
<> ((-> ?q :?V ?C) ((:?v ?c) ?r)) ((:?V ?C) ((-> ?q :?v ?c) ?r))
|
|
|
|
<> ((-> ?q :?V ?C) ()) ((<- ?q :?V ?C) ())
|
2024-05-19 19:07:19 +01:00
|
|
|
<> ((:?V ?C) ((<- ?q :?q ?c) ?r)) ((<- ?q :?q ?c) ((:?V ?C) ?r))
|
2024-05-18 23:08:02 +01:00
|
|
|
<> ((:?V ?C) ((<- ?q :?v ?c) ?r)) ((<- ?q :?v ?c) ((:?V ?C) ?r))
|
2024-05-17 18:56:15 +01:00
|
|
|
|
2024-05-19 18:00:03 +01:00
|
|
|
?(?-) (Create)
|
2024-05-13 03:52:35 +01:00
|
|
|
|
2024-05-18 17:44:18 +01:00
|
|
|
<> (((create (?q ())) parse sight > $ :?V ?C) ?r) (
|
|
|
|
print (You created a ?q.\n)
|
|
|
|
(sight > $ :?V ?C) ((:?q ()) ?r)
|
|
|
|
)
|
2024-05-16 17:57:53 +01:00
|
|
|
|
2024-05-18 16:59:23 +01:00
|
|
|
?(?-) (Become)
|
|
|
|
|
2024-05-18 21:43:52 +01:00
|
|
|
<> (((become (?q ())) parse sight > $ :?V ?C) ()) (
|
|
|
|
print (You don't see any vessels.\n)
|
|
|
|
(sight > $ :?V ?C) ()
|
|
|
|
)
|
|
|
|
|
|
|
|
<> (((become (?q ())) parse sight > $ :?V ?C) ((:?v ?c) ?r)) (
|
2024-05-18 23:08:02 +01:00
|
|
|
((become ?q) wait :?V ?C) ((-> ?q :?v ?c) ?r)
|
2024-05-18 21:43:52 +01:00
|
|
|
)
|
|
|
|
|
2024-05-18 23:08:02 +01:00
|
|
|
<> (((become ?v) wait :?V ?C) ((<- ?v :?v ?c) ?r)) (
|
2024-05-19 18:26:58 +01:00
|
|
|
print (You became the ?v.\n)
|
2024-05-18 21:58:27 +01:00
|
|
|
(sight > $ :?v ?c) ((:?V ?C) ?r)
|
2024-05-18 16:59:23 +01:00
|
|
|
)
|
|
|
|
|
2024-05-18 23:08:02 +01:00
|
|
|
<> (((become ?q) wait :?V ?C) ((<- ?q :?v ?c) ?r)) (
|
2024-05-18 16:59:23 +01:00
|
|
|
print (You don't see a ?q.\n)
|
2024-05-18 21:58:27 +01:00
|
|
|
(sight > $ :?V ?C) ((:?v ?c) ?r)
|
2024-05-18 16:59:23 +01:00
|
|
|
)
|
|
|
|
|
2024-05-18 16:10:07 +01:00
|
|
|
?(?-) (Enter)
|
2024-05-16 17:57:53 +01:00
|
|
|
|
2024-05-18 22:05:54 +01:00
|
|
|
<> (((enter (?q ())) parse sight > $ :?V ?C) ()) (
|
|
|
|
print (You don't see any vessels.\n)
|
|
|
|
(sight > $ :?V ?C) ()
|
2024-05-18 16:10:07 +01:00
|
|
|
)
|
2024-05-18 16:49:42 +01:00
|
|
|
|
2024-05-18 22:05:54 +01:00
|
|
|
<> (((enter (?q ())) parse sight > $ :?V ?C) ((:?v ?c) ?r)) (
|
2024-05-18 23:08:02 +01:00
|
|
|
((enter ?q) wait :?V ?C) ((-> ?q :?v ?c) ?r)
|
2024-05-18 16:49:42 +01:00
|
|
|
)
|
|
|
|
|
2024-05-18 23:08:02 +01:00
|
|
|
<> (((enter ?v) wait :?V ?C) ((<- ?v :?v ?c) ?r)) (
|
2024-05-19 23:27:21 +01:00
|
|
|
print (You entered the ?v.\n)
|
2024-05-18 23:08:02 +01:00
|
|
|
((:?v ((sight > $ :?V ?C) ?c)) ?r)
|
2024-05-18 22:05:54 +01:00
|
|
|
)
|
|
|
|
|
2024-05-18 23:08:02 +01:00
|
|
|
<> (((enter ?q) wait :?V ?C) ((<- ?q :?v ?c) ?r)) (
|
2024-05-18 22:05:54 +01:00
|
|
|
print (You don't see a ?q.\n)
|
|
|
|
(sight > $ :?V ?C) ((:?v ?c) ?r)
|
2024-05-18 16:10:07 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
?(?-) (Leave)
|
|
|
|
|
|
|
|
<> (((:?p (((leave ()) parse sight > $ :?V ?C) ?r)) ?a)) (
|
|
|
|
print (You left the ?p.\n)
|
|
|
|
(sight > $ :?V ?C) ((:?p ?r) ?a)
|
|
|
|
)
|
|
|
|
|
|
|
|
<> ((leave ?q) parse) (
|
|
|
|
print (You cannot leave.\n)
|
|
|
|
)
|
2024-05-16 17:57:53 +01:00
|
|
|
|
2024-05-17 19:37:43 +01:00
|
|
|
?(?-) (Take)
|
|
|
|
|
2024-05-18 22:12:15 +01:00
|
|
|
<> (((take (?q ())) parse sight > $ :?V ?C) ()) (
|
|
|
|
print (You don't see any vessels.\n)
|
|
|
|
(sight > $ :?V ?C) ()
|
2024-05-18 16:10:07 +01:00
|
|
|
)
|
2024-05-17 18:56:15 +01:00
|
|
|
|
2024-05-18 22:12:15 +01:00
|
|
|
<> (((take (?q ())) parse sight > $ :?V ?C) ((:?v ?c) ?r)) (
|
2024-05-18 23:08:02 +01:00
|
|
|
((take ?q) wait :?V ?C) ((-> ?q :?v ?c) ?r)
|
2024-05-18 16:10:07 +01:00
|
|
|
)
|
2024-05-17 19:37:43 +01:00
|
|
|
|
2024-05-18 23:08:02 +01:00
|
|
|
<> (((take ?v) wait :?V ?C) ((<- ?v :?v ?c) ?r)) (
|
2024-05-19 23:27:21 +01:00
|
|
|
print (You took the ?v.\n)
|
2024-05-18 23:08:02 +01:00
|
|
|
(sight > $ :?V ((:?v ?c) ?C)) ?r
|
2024-05-18 22:12:15 +01:00
|
|
|
)
|
|
|
|
|
2024-05-18 23:08:02 +01:00
|
|
|
<> (((take ?q) wait :?V ?C) ((<- ?q :?v ?c) ?r)) (
|
2024-05-18 22:12:15 +01:00
|
|
|
print (You don't see a ?q.\n)
|
|
|
|
(sight > $ :?V ?C) ((:?v ?c) ?r)
|
2024-05-18 16:10:07 +01:00
|
|
|
)
|
2024-05-17 18:56:15 +01:00
|
|
|
|
2024-05-17 19:37:43 +01:00
|
|
|
?(?-) (Drop)
|
2024-05-16 17:57:53 +01:00
|
|
|
|
2024-05-18 21:26:29 +01:00
|
|
|
<> (((drop (?q ())) parse sight > $ :?V ())) (
|
|
|
|
print (You don't carry any vessels.\n)
|
|
|
|
(sight > $ :?V ())
|
|
|
|
)
|
|
|
|
|
|
|
|
<> (((drop (?q ())) parse sight > $ :?V ((:?v ?c) ?C))) (
|
2024-05-19 00:01:54 +01:00
|
|
|
((drop ?q) wait :?V ((-> ?q :?v ?c) ?C))
|
2024-05-18 21:26:29 +01:00
|
|
|
)
|
|
|
|
|
2024-05-19 00:01:54 +01:00
|
|
|
<> (((drop ?v) wait :?V ((<- ?v :?v ?c) ?C)) ?r) (
|
2024-05-19 23:27:21 +01:00
|
|
|
print (You dropped the ?v.\n)
|
2024-05-18 23:08:02 +01:00
|
|
|
(sight > $ :?V ?C) ((:?v ?c) ?r)
|
2024-05-18 18:26:41 +01:00
|
|
|
)
|
|
|
|
|
2024-05-19 00:01:54 +01:00
|
|
|
<> (((drop ?q) wait :?V ((<- ?q :?v ?c) ?C)) ?r) (
|
2024-05-18 21:15:03 +01:00
|
|
|
print (You don't carry a ?q.\n)
|
2024-05-18 21:26:29 +01:00
|
|
|
(sight > $ :?V ((:?v ?c) ?C)) ?r
|
2024-05-18 18:26:41 +01:00
|
|
|
)
|
2024-05-17 02:31:37 +01:00
|
|
|
|
2024-05-19 18:43:46 +01:00
|
|
|
?(?-) (Move)
|
|
|
|
|
2024-05-19 19:44:37 +01:00
|
|
|
<> (((move ?a ?b) wait :?V ?C) ((<- ?a :?a ?c) ((:?b ?d) ?r))) (
|
|
|
|
print (You moved the ?a in the ?b.\n)
|
|
|
|
(sight > $ :?V ?C) ((:?b ((:?a ?c) ?d)) ?r)
|
|
|
|
)
|
|
|
|
|
2024-05-19 20:30:38 +01:00
|
|
|
<> (((move ?a ?b) wait :?V ?C) ((<- ?b :?b ?c) ?r)) (
|
|
|
|
((move ?a ?b) wait :?V ?C) ((-> ?a :?b ?c) ?r)
|
|
|
|
)
|
|
|
|
|
2024-05-19 19:59:46 +01:00
|
|
|
<> (((move ?a ?b) wait :?V ?C) ((<- ?b :?B ?c) ?r)) (
|
|
|
|
print (You don't see a ?b.\n)
|
|
|
|
(sight > $ :?V ?C) ((:?B ?c) ?r)
|
|
|
|
)
|
|
|
|
|
|
|
|
<> (((move ?a ?b) wait :?V ?C) ((<- ?a :?B ?c) ?r)) (
|
|
|
|
print (You don't see a ?a.\n)
|
|
|
|
(sight > $ :?V ?C) ((:?B ?c) ?r)
|
|
|
|
)
|
|
|
|
|
2024-05-20 00:12:32 +01:00
|
|
|
<> (((move (?a (in (?b ())))) parse sight > $ :?V ?C) ((:?v ?c) ?r)) (
|
2024-05-19 19:44:37 +01:00
|
|
|
((move ?a ?b) wait :?V ?C) ((-> ?b :?v ?c) ?r)
|
2024-05-19 19:07:19 +01:00
|
|
|
)
|
|
|
|
|
2024-05-18 17:03:17 +01:00
|
|
|
?(?-) (Transform)
|
|
|
|
|
2024-05-18 16:10:07 +01:00
|
|
|
<> ((transform (?q ())) parse sight > $ :?V) (
|
|
|
|
print (You transformed into a ?q.\n)
|
2024-05-18 17:44:18 +01:00
|
|
|
sight > $ :?q
|
|
|
|
)
|
2024-05-16 17:57:53 +01:00
|
|
|
|
2024-05-19 18:00:03 +01:00
|
|
|
?(?-) (Note)
|
2024-05-18 17:03:17 +01:00
|
|
|
|
2024-05-20 05:04:06 +01:00
|
|
|
<> (:?p (((note ?n) parse-special sight > $ :?V ?C) ?r)) (
|
|
|
|
>< (print-note :?p)
|
|
|
|
>< (print-note)
|
|
|
|
<> (print-note :?p) (print-sentence ?n :?p)
|
|
|
|
<> (print-note) ()
|
|
|
|
:?p ((sight > $ :?V ?C) ?r)
|
|
|
|
)
|
2024-05-13 03:52:35 +01:00
|
|
|
|
2024-05-18 17:03:17 +01:00
|
|
|
<> ((quit ?q) parse sight > $) (
|
|
|
|
?(?: ?:) (You fell asleep.\n)
|
|
|
|
)
|
2024-05-17 02:57:06 +01:00
|
|
|
|
2024-05-11 04:51:00 +01:00
|
|
|
?(?-) (Input loop)
|
|
|
|
|
2024-05-19 18:00:03 +01:00
|
|
|
<> (() parse) ()
|
|
|
|
<> ((?x ?q) parse) (print (Unknown action: ?x \n))
|
2024-05-11 04:51:00 +01:00
|
|
|
<> (() input) ()
|
2024-05-19 18:00:03 +01:00
|
|
|
<> (?x input) (
|
|
|
|
?(?: ?:) \n
|
2024-05-20 00:12:32 +01:00
|
|
|
?(?* ((?*))) ?x remove-articles parse
|
2024-05-19 18:00:03 +01:00
|
|
|
)
|
|
|
|
<> (?~ $ :?V) (
|
|
|
|
(?~) input sight > $ :?V
|
|
|
|
)
|
2024-05-11 04:51:00 +01:00
|
|
|
|
2024-05-19 18:00:03 +01:00
|
|
|
(:library ((sight > $ :ghost ()) ((:haunted\shouse ((:teapot ((:moth ()) ())) ())) ())))
|