From 88cf2f8c38dce3627e701ab897f08593c2748042 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 3 May 2016 21:55:25 -0700 Subject: [PATCH] make world-sexp work --- beautiful-racket/br/demo/txtadv/expander.rkt | 11 +++++++++++ beautiful-racket/br/demo/txtadv/world-sexp.rkt | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/beautiful-racket/br/demo/txtadv/expander.rkt b/beautiful-racket/br/demo/txtadv/expander.rkt index 2a1e02b..bb63d08 100644 --- a/beautiful-racket/br/demo/txtadv/expander.rkt +++ b/beautiful-racket/br/demo/txtadv/expander.rkt @@ -40,6 +40,7 @@ #'(define-verbs in-verbs _verb-item ...))) + (provide verb-item) (define-inverting #'(verb-item (_name0 _transitive0?) (_name _transitive?) ... _desc) #`[_name0 #,@(if (syntax->datum #'_transitive0?) #'(_) #'()) (= _name ...) _desc]) @@ -95,6 +96,16 @@ [#'(_ _sx) #'_sx]) +;; todo: consolidate the game-starters. +;; `start-game-at` works with s-exp language, +;; `start-section` works with text lang. +(provide start-game-at) +(define #'(start-game-at _where) + (inject-syntax ([#'in-verbs (shared-syntax 'in-verbs)]) + #'(init-game _where + in-verbs + everywhere-actions))) + (provide start-section) (define #'(start-section _heading _where) (inject-syntax ([#'in-verbs (shared-syntax 'in-verbs)]) diff --git a/beautiful-racket/br/demo/txtadv/world-sexp.rkt b/beautiful-racket/br/demo/txtadv/world-sexp.rkt index 6219097..38cd52f 100644 --- a/beautiful-racket/br/demo/txtadv/world-sexp.rkt +++ b/beautiful-racket/br/demo/txtadv/world-sexp.rkt @@ -3,7 +3,7 @@ ;; Verbs ---------------------------------------- ;; This declaration must be first: -(define-verbs all-verbs +(define-verbs in-verbs [north (= n) "go north"] [south (= s) "go south"] [east (= e) "go east"] @@ -97,4 +97,4 @@ ;; Starting place ---------------------------------- ;; The module must end with the starting place name: -meadow +(start-game-at meadow)