Merge branch 'master' into actions-arithmetic 87/head
authorPeje Nilsson <peje66@gmail.com>
Fri, 16 Jun 2017 15:43:14 +0000 (17:43 +0200)
committerPeje Nilsson <peje66@gmail.com>
Fri, 16 Jun 2017 15:43:14 +0000 (17:43 +0200)
17 files changed:
actions.c
advent.h
init.c
main.c
misc.c
score.c
tests/Makefile
tests/breakmirror.chk [new file with mode: 0644]
tests/breakmirror.log [new file with mode: 0644]
tests/lockchain.chk
tests/lockchain.log
tests/logopt.chk [new file with mode: 0644]
tests/logopt.log [new file with mode: 0644]
tests/mazehint.chk
tests/mazehint.log
tests/weirdbird.chk
tests/weirdbird.log

index 8b4f938aa694f2afe91e9c1c1ccb3b66838a4514..80e24e04397afcb3482521151a977a511c882f27 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -48,7 +48,7 @@ static int attack(FILE *input, long verb, token_t obj)
            RSPEAK(spk);
            return GO_CLEAROBJ;
        }
-       DSTROY(BIRD);
+       DESTROY(BIRD);
        game.prop[BIRD]=0;
        spk=BIRD_DEAD;
     }
@@ -69,50 +69,50 @@ static int attack(FILE *input, long verb, token_t obj)
     if (obj == OGRE && d > 0) {
        RSPEAK(spk);
        RSPEAK(KNIFE_THROWN);
-       DSTROY(OGRE);
-       int k=0;
+       DESTROY(OGRE);
+       int dwarves=0;
        for (int i=1; i < PIRATE; i++) {
            if (game.dloc[i] == game.loc) {
-               ++k;
+               ++dwarves;
                game.dloc[i] = LOC_LONGWEST;
                game.dseen[i]=false;
            }
        }
-       spk=k == 2 ? OGRE_PANIC1 : OGRE_PANIC2;
+       spk=dwarves == 2 ? OGRE_PANIC1 : OGRE_PANIC2;
        RSPEAK(spk);
        return GO_CLEAROBJ;
     }
-
-    if (obj == BEAR)
+    else if (obj == BEAR)
        /* FIXME: Arithmetic on message numbers */
        spk = BEAR_HANDS+(game.prop[BEAR]+1)/2;
-    if (obj != DRAGON || game.prop[DRAGON] != 0) {
-       RSPEAK(spk);
-       return GO_CLEAROBJ;
-    }
-    /*  Fun stuff for dragon.  If he insists on attacking it, win!
-     *  Set game.prop to dead, move dragon to central loc (still
-     *  fixed), move rug there (not fixed), and move him there,
-     *  too.  Then do a null motion to get new description. */
-    RSPEAK(BARE_HANDS_QUERY);
-    GETIN(input,&WD1,&WD1X,&WD2,&WD2X);
-    if (WD1 != MAKEWD(25) && WD1 != MAKEWD(250519))
-       return GO_CHECKFOO;
-    PSPEAK(DRAGON,3);
-    game.prop[DRAGON]=1;
-    game.prop[RUG]=0;
-    int k=(PLAC[DRAGON]+FIXD[DRAGON])/2;
-    MOVE(DRAGON+NOBJECTS,-1);
-    MOVE(RUG+NOBJECTS,0);
-    MOVE(DRAGON,k);
-    MOVE(RUG,k);
-    DROP(BLOOD,k);
-    for (obj=1; obj<=NOBJECTS; obj++) {
-       if (game.place[obj] == PLAC[DRAGON] || game.place[obj] == FIXD[DRAGON])
-           MOVE(obj,k);
+    else if (obj == DRAGON && game.prop[DRAGON] == 0) {
+       /*  Fun stuff for dragon.  If he insists on attacking it, win!
+        *  Set game.prop to dead, move dragon to central loc (still
+        *  fixed), move rug there (not fixed), and move him there,
+        *  too.  Then do a null motion to get new description. */
+       RSPEAK(BARE_HANDS_QUERY);
+       GETIN(input,&WD1,&WD1X,&WD2,&WD2X);
+       if (WD1 != MAKEWD(25) && WD1 != MAKEWD(250519))
+           return GO_CHECKFOO;
+       PSPEAK(DRAGON,3);
+       game.prop[DRAGON]=1;
+       game.prop[RUG]=0;
+       int k=(PLAC[DRAGON]+FIXD[DRAGON])/2;
+       MOVE(DRAGON+NOBJECTS,-1);
+       MOVE(RUG+NOBJECTS,0);
+       MOVE(DRAGON,k);
+       MOVE(RUG,k);
+       DROP(BLOOD,k);
+       for (obj=1; obj<=NOBJECTS; obj++) {
+           if (game.place[obj] == PLAC[DRAGON] || game.place[obj] == FIXD[DRAGON])
+               MOVE(obj,k);
+       }
+       game.loc=k;
+       return GO_MOVE;
     }
-    game.loc=k;
-    return GO_MOVE;
+
+    RSPEAK(spk);
+    return GO_CLEAROBJ;
 }
 
 static int bigwords(long foo)
@@ -161,7 +161,7 @@ static int bivalve(token_t verb, token_t obj)
     if (!TOTING(TRIDNT))spk= is_oyster ? OYSTER_OPENER : CLAM_OPENER;
     if (verb == LOCK)spk=HUH_MAN;
     if (spk == PEARL_FALLS) {
-       DSTROY(CLAM);
+       DESTROY(CLAM);
        DROP(OYSTER,game.loc);
        DROP(PEARL,LOC_CULDESAC);
     }
@@ -243,7 +243,7 @@ static int carry(token_t verb, token_t obj)
     if (obj == SIGN)spk=HAND_PASSTHROUGH;
     if (obj == MESSAG) {
        RSPEAK(REMOVE_MESSAGE);
-       DSTROY(MESSAG);
+       DESTROY(MESSAG);
        return GO_CLEAROBJ;
     }
     if (game.fixed[obj] != 0) {
@@ -269,7 +269,7 @@ static int carry(token_t verb, token_t obj)
     }
     else if (obj == BIRD && game.prop[BIRD] != 1 && -1-game.prop[BIRD] != 1) {
        if (game.prop[BIRD] == 2) {
-           DSTROY(BIRD);
+           DESTROY(BIRD);
            RSPEAK(BIRD_CRAP);
            return GO_CLEAROBJ;
        }
@@ -285,7 +285,7 @@ static int carry(token_t verb, token_t obj)
        CARRY(BIRD+CAGE-obj,game.loc);
     CARRY(obj,game.loc);
     if (obj == BOTTLE && LIQUID() != 0)
-       game.place[LIQUID()] = -1;
+       game.place[LIQUID()] = CARRIED;
     if (GSTONE(obj) && game.prop[obj] != 0) {
        game.prop[obj]=0;
        game.prop[CAVITY]=1;
@@ -335,7 +335,7 @@ static int discard(token_t verb, token_t obj, bool just_do_it)
         if (obj == BIRD && HERE(SNAKE)) {
             RSPEAK(BIRD_ATTACKS);
             if (game.closed) return GO_DWARFWAKE;
-            DSTROY(SNAKE);
+            DESTROY(SNAKE);
             /* Set game.prop for use by travel options */
             game.prop[SNAKE]=1;
 
@@ -357,13 +357,13 @@ static int discard(token_t verb, token_t obj, bool just_do_it)
                 }
             }
         } else if (obj == COINS && HERE(VEND)) {
-            DSTROY(COINS);
+            DESTROY(COINS);
             DROP(BATTER,game.loc);
             PSPEAK(BATTER,0);
             return GO_CLEAROBJ;
         } else if (obj == BIRD && AT(DRAGON) && game.prop[DRAGON] == 0) {
             RSPEAK(BIRD_BURNT);
-            DSTROY(BIRD);
+            DESTROY(BIRD);
             game.prop[BIRD]=0;
             return GO_CLEAROBJ;
         } else if (obj == BEAR && AT(TROLL)) {
@@ -386,7 +386,7 @@ static int discard(token_t verb, token_t obj, bool just_do_it)
     int k = LIQUID();
     if (k == obj)obj=BOTTLE;
     if (obj == BOTTLE && k != 0)
-       game.place[k]=0;
+       game.place[k] = NOWHERE;
     if (obj == CAGE && game.prop[BIRD] == 1)DROP(BIRD,game.loc);
     DROP(obj,game.loc);
     if (obj != BIRD) return GO_CLEAROBJ;
@@ -405,12 +405,12 @@ static int drink(token_t verb, token_t obj)
     if (obj != BLOOD) {
        if (obj != 0 && obj != WATER)spk=RIDICULOUS_ATTEMPT;
        if (spk != RIDICULOUS_ATTEMPT && LIQUID() == WATER && HERE(BOTTLE)) {
-           game.prop[BOTTLE]=1;
-           game.place[WATER]=0;
+           game.prop[BOTTLE] = 1;
+           game.place[WATER] = NOWHERE;
            spk=BOTTLE_EMPTY;
        }
     } else {
-       DSTROY(BLOOD);
+       DESTROY(BLOOD);
        game.prop[DRAGON]=2;
        OBJSND[BIRD]=OBJSND[BIRD]+3;
        spk=HEAD_BUZZES;
@@ -427,11 +427,11 @@ static int eat(token_t verb, token_t obj)
     if (obj == INTRANSITIVE) {
        if (!HERE(FOOD))
            return GO_UNKNOWN;
-       DSTROY(FOOD);
+       DESTROY(FOOD);
        spk=THANKS_DELICIOUS;
     } else {
        if (obj == FOOD) {
-           DSTROY(FOOD);
+           DESTROY(FOOD);
            spk=THANKS_DELICIOUS;
        }
        if (obj == BIRD || obj == SNAKE || obj == CLAM || obj == OYSTER || obj ==
@@ -481,7 +481,7 @@ static int feed(token_t verb, token_t obj)
        if (obj == DRAGON && game.prop[DRAGON] != 0)spk=RIDICULOUS_ATTEMPT;
        if (obj == TROLL)spk=TROLL_VICES;
        if (obj == SNAKE && !game.closed && HERE(BIRD)) {
-           DSTROY(BIRD);
+           DESTROY(BIRD);
            game.prop[BIRD]=0;
            spk = BIRD_DEVOURED;
        }
@@ -496,7 +496,7 @@ static int feed(token_t verb, token_t obj)
        if (game.prop[BEAR] == 0)spk=NOTHING_EDIBLE;
        if (game.prop[BEAR] == 3)spk=RIDICULOUS_ATTEMPT;
        if (HERE(FOOD)) {
-           DSTROY(FOOD);
+           DESTROY(FOOD);
            game.prop[BEAR]=1;
            game.fixed[AXE]=0;
            game.prop[AXE]=0;
@@ -537,8 +537,8 @@ int fill(token_t verb, token_t obj)
        spk=FILL_INVALID;
        k=LIQUID();
        if (k == 0 || !HERE(BOTTLE)) {RSPEAK(spk); return GO_CLEAROBJ;}
-       game.place[k]=0;
-       game.prop[BOTTLE]=1;
+       game.place[k] = NOWHERE;
+       game.prop[BOTTLE] = 1;
        if (k == OIL)game.prop[URN]=1;
        spk=WATER_URN+game.prop[URN];
        RSPEAK(spk);
@@ -561,7 +561,7 @@ int fill(token_t verb, token_t obj)
        game.prop[BOTTLE]=MOD(COND[game.loc],4)/2*2;
        k=LIQUID();
        if (TOTING(BOTTLE))
-           game.place[k] = -1;
+           game.place[k] = CARRIED;
        if (k == OIL)
            spk=BOTTLED_OIL;
     }
@@ -690,7 +690,7 @@ static int listen(void)
        PSPEAK(i,OBJSND[i]+game.prop[i]);
        spk=ARB_0;
        if (i == BIRD && OBJSND[i]+game.prop[i] == 8)
-           DSTROY(BIRD);
+           DESTROY(BIRD);
     }
     RSPEAK(spk);
     return GO_CLEAROBJ;
@@ -752,8 +752,8 @@ static int pour(token_t verb, token_t obj)
     if (obj != OIL && obj != WATER) {RSPEAK(spk); return GO_CLEAROBJ;}
     if (HERE(URN) && game.prop[URN] == 0)
        return fill(verb, URN);
-    game.prop[BOTTLE]=1;
-    game.place[obj]=0;
+    game.prop[BOTTLE] = 1;
+    game.place[obj] = NOWHERE;
     spk=GROUND_WET;
     if (!(AT(PLANT) || AT(DOOR)))
        {RSPEAK(spk); return GO_CLEAROBJ;}
@@ -838,7 +838,7 @@ static int rub(token_t verb, token_t obj)
     if (obj != LAMP)
        spk=PECULIAR_NOTHING;
     if (obj == URN && game.prop[URN] == 2) {
-       DSTROY(URN);
+       DESTROY(URN);
        DROP(AMBER,game.loc);
        game.prop[AMBER]=1;
        --game.tally;
index 1f2bd8c893d18c1ef40a0009992b67c1746bef6b..469baa208583e02af2fccbe5bb4d51d97448b4d5 100644 (file)
--- a/advent.h
+++ b/advent.h
@@ -94,7 +94,6 @@ extern long GETTXT(bool,bool,bool);
 extern token_t MAKEWD(long);
 extern void TYPE0(void);
 extern long VOCAB(long,long);
-extern void DSTROY(long);
 extern void JUGGLE(long);
 extern void MOVE(long,long);
 extern long PUT(long,long,long);
@@ -131,8 +130,9 @@ extern int saveresume(FILE *, bool);
  *  PCT(N)      = true N% of the time (N integer from 0 to 100)
  *  TOTING(OBJ) = true if the OBJ is being carried */
 
+#define DESTROY(N)     MOVE(N, NOWHERE)
 #define MOD(N,M)       ((N) % (M))
-#define TOTING(OBJ)    (game.place[OBJ] == -1)
+#define TOTING(OBJ)    (game.place[OBJ] == CARRIED)
 #define AT(OBJ) (game.place[OBJ] == game.loc || game.fixed[OBJ] == game.loc)
 #define HERE(OBJ)      (AT(OBJ) || TOTING(OBJ))
 #define LIQ2(PBOTL)    ((1-(PBOTL))*WATER+((PBOTL)/2)*(WATER+OIL))
@@ -141,7 +141,7 @@ extern int saveresume(FILE *, bool);
 #define CNDBIT(L,N)    (TSTBIT(COND[L],N))
 #define FORCED(LOC)    (COND[LOC] == 2)
 #define DARK(DUMMY)    ((!CNDBIT(game.loc,LIGHT)) && (game.prop[LAMP] == 0 || !HERE(LAMP)))
-#define PCT(N) (randrange(100) < (N))
+#define PCT(N)         (randrange(100) < (N))
 #define GSTONE(OBJ)    ((OBJ) == EMRALD || (OBJ) == RUBY || (OBJ) == AMBER || (OBJ) == SAPPH)
 #define FOREST(LOC)    ((LOC) >= LOC_FOREST1 && (LOC) <= LOC_FOREST22)
 #define VOCWRD(LETTRS,SECT)    (VOCAB(MAKEWD(LETTRS),SECT))
@@ -207,6 +207,10 @@ enum speechpart {unknown, intransitive, transitive};
 #define HOGRE  19      /* Trying to deal with ogre */
 #define HJADE  20      /* Found all treasures except jade */
 
+/* Special object statuses in game.place - can also be a location number (> 0) */
+#define CARRIED                -1      /* Player is toting it */
+#define NOWHERE        0       /* It's destroyed */
+
 /* hack to ignore GCC Unused Result */
 #define IGNORE(r) do{if (r){}}while(0)
 
diff --git a/init.c b/init.c
index bbe155ddfad49424066a74d4a0d6d63dd7cb91f6..d9cdd4d1dd431069adea376ead884da5d9769784 100644 (file)
--- a/init.c
+++ b/init.c
@@ -176,8 +176,8 @@ void initialise(void)
        printf("Initialising...\n");
 
     for (int i=1; i<=NOBJECTS; i++) {
-       game.place[i]=0;
-       game.prop[i]=0;
+       game.place[i] = NOWHERE;
+       game.prop[i] = 0;
        game.link[i+NOBJECTS]=game.link[i]=0;
     }
 
diff --git a/main.c b/main.c
index fbd7de04dd5cd7d69fce6cd65d1578759c5984f5..ac6382564be274e82127faece25e63047e718eb3 100644 (file)
--- a/main.c
+++ b/main.c
@@ -262,8 +262,8 @@ bool spotted_by_pirate(int i)
 
     /*  The pirate's spotted him.  He leaves him alone once we've
      *  found chest.  K counts if a treasure is here.  If not, and
-     *  tally=1 for an unseen chest, let the pirate be spotted.
-     *  Note that game.place[CHEST]=0 might mean that he's thrown
+     *  tally=1 for an unseen chest, let the pirate be spotted.  Note
+     *  that game.place[CHEST] = NOWHERE might mean that he's thrown
      *  it to the troll, but in that case he's seen the chest
      *  (game.prop=0). */
     if (game.loc == game.chloc || game.prop[CHEST] >= 0)
@@ -284,7 +284,7 @@ bool spotted_by_pirate(int i)
        }
     }
     /* Force chest placement before player finds last treasure */
-    if (game.tally == 1 && snarfed == 0 && game.place[CHEST] == 0 && HERE(LAMP) && game.prop[LAMP] == 1) {
+    if (game.tally == 1 && snarfed == 0 && game.place[CHEST] == NOWHERE && HERE(LAMP) && game.prop[LAMP] == 1) {
        RSPEAK(PIRATE_SPOTTED);
        movechest = true;
     }
@@ -481,8 +481,8 @@ static void croak(FILE *cmdin)
            score(endgame);
        if (game.numdie == MAXDIE)
            score(endgame);
-       game.place[WATER]=0;
-       game.place[OIL]=0;
+       game.place[WATER] = NOWHERE;
+       game.place[OIL] = NOWHERE;
        if (TOTING(LAMP))
            game.prop[LAMP]=0;
        for (int j=1; j<=NOBJECTS; j++) {
@@ -754,7 +754,7 @@ static bool closecheck(void)
        MOVE(TROLL2,PLAC[TROLL]);
        MOVE(TROLL2+NOBJECTS,FIXD[TROLL]);
        JUGGLE(CHASM);
-       if (game.prop[BEAR] != 3)DSTROY(BEAR);
+       if (game.prop[BEAR] != 3)DESTROY(BEAR);
        game.prop[CHAIN]=0;
        game.fixed[CHAIN]=0;
        game.prop[AXE]=0;
@@ -807,7 +807,7 @@ static bool closecheck(void)
 
        for (int i=1; i<=NOBJECTS; i++) {
            if (TOTING(i))
-               DSTROY(i);
+               DESTROY(i);
        }
 
        RSPEAK(CAVE_CLOSED);
@@ -848,7 +848,7 @@ static void lampcheck(void)
        if (!game.lmwarn && HERE(LAMP)) {
            game.lmwarn=true;
            int spk=GET_BATTERIES;
-           if (game.place[BATTER] == 0)spk=LAMP_DIM;
+           if (game.place[BATTER] == NOWHERE)spk=LAMP_DIM;
            if (game.prop[BATTER] == 1)spk=MISSING_BATTERIES;
            RSPEAK(spk);
        }
diff --git a/misc.c b/misc.c
index 243381a86330d1df2221b4f3ee6975b8b5cd6b34..cf75e6442c42452ec02ca6db6ab75bb4a4e23c02 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -337,12 +337,6 @@ long VOCAB(long id, long init)
     BUG(21);
 }
 
-void DSTROY(long object)
-/*  Permanently eliminate "object" by moving to a non-existent location. */
-{
-    MOVE(object,0);
-}
-
 void JUGGLE(long object)
 /*  Juggle an object by picking it up and putting it down again, the purpose
  *  being to get the object to the front of the chain of things at its loc. */
@@ -367,7 +361,7 @@ void MOVE(long object, long where)
        from=game.fixed[object-NOBJECTS];
     else
        from=game.place[object];
-    if (from > 0 && !SPECIAL(from))
+    if (from != NOWHERE && from != CARRIED && !SPECIAL(from))
        CARRY(object,from);
     DROP(object,where);
 }
@@ -388,9 +382,9 @@ void CARRY(long object, long where)
     long temp;
 
     if (object <= NOBJECTS) {
-       if (game.place[object] == -1)
+       if (game.place[object] == CARRIED)
            return;
-       game.place[object]= -1;
+       game.place[object] = CARRIED;
        ++game.holdng;
     }
     if (game.atloc[where] == object) {
@@ -412,7 +406,7 @@ void DROP(long object, long where)
        game.fixed[object-NOBJECTS] = where;
     else
     {
-       if (game.place[object] == -1)
+       if (game.place[object] == CARRIED)
            --game.holdng;
        game.place[object] = where;
     }
diff --git a/score.c b/score.c
index 594b637578d1270822c9b183218efaeba26ab2e3..645a35e96a132345e6dd512496d87c9adad9d193 100644 (file)
--- a/score.c
+++ b/score.c
@@ -41,7 +41,7 @@ void score(enum termination mode)
            if(i > CHEST)k=16;
            if(game.prop[i] >= 0)
                score += 2;
-           if(game.place[i] == 3 && game.prop[i] == 0)
+           if(game.place[i] == LOC_BUILDING && game.prop[i] == 0)
                score += k-2;
            mxscor += k;
        }
@@ -75,7 +75,7 @@ void score(enum termination mode)
     mxscor += 45;
 
     /* Did he come to Witt's End as he should? */
-    if(game.place[MAGZIN] == 108)
+    if(game.place[MAGZIN] == LOC_WITTSEND)
        score += 1;
     mxscor += 1;
 
index f1a37975d22b0081a5975f1a73fa976f47471269..88b18b49f76c095aee231afcac11a5f20f40d76c 100644 (file)
@@ -14,7 +14,7 @@ all: regress
 .SUFFIXES: .chk
 
 clean:
-       rm -fr *~ adventure.text *.adv
+       rm -fr *~ adventure.text *.adv scratch.tmp
 
 # Show summary lines for all tests.
 testlist:
@@ -32,7 +32,8 @@ buildregress:
            echo "Remaking $${file}.chk"; \
            OPTS=`sed -n /#options:/s///p <$${file}.log`; \
            advent $$OPTS <$${file}.log >$${file}.chk 2>&1 || exit 1; \
-       done
+       done; \
+       rm -f scratch.tmp
 regress:
        @for file in $(TESTLOADS); do \
            $(ECHO) -n "  $${file} "; grep '##' $${file}.log  || echo ' ## (no description)'; \
@@ -41,6 +42,6 @@ regress:
            then diff --text -u $${file}.chk /tmp/regress$$$$ || exit 1; \
            else echo "*** Nonzero return status on $${file}!"; exit 1; fi \
        done; \
-       rm -f /tmp/regress$$$$
+       rm -f scratch.tmp /tmp/regress$$$$
 
 # end
diff --git a/tests/breakmirror.chk b/tests/breakmirror.chk
new file mode 100644 (file)
index 0000000..da89a58
--- /dev/null
@@ -0,0 +1,2927 @@
+
+Welcome to Adventure!!  Would you like instructions?
+
+> n
+
+You are standing at the end of a road before a small brick building.
+Around you is a forest.  A small stream flows out of the building and
+down a gully.
+
+> seed 1838473132
+Seed set to 1838473132
+
+You're in front of building.
+
+> in
+
+You are inside a building, a well house for a large spring.
+
+There are some keys on the ground here.
+
+There is a shiny brass lamp nearby.
+
+There is food here.
+
+There is a bottle of water here.
+
+> take lamp
+
+OK
+
+> xyzzy
+
+>>Foof!<<
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> on
+
+Your lamp is now on.
+
+You are in a debris room filled with stuff washed in from the surface.
+A low wide passage with cobbles becomes plugged with mud and debris
+here, but an awkward canyon leads upward and west.  In the mud someone
+has scrawled, "MAGIC WORD XYZZY".
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+> take rod
+
+OK
+
+> e
+
+You are crawling over cobbles in a low passage.  There is a dim light
+at the east end of the passage.
+
+There is a small wicker cage discarded nearby.
+
+> take cage
+
+OK
+
+> w
+
+You're in debris room.
+
+> w
+
+You are in an awkward sloping east/west canyon.
+
+> w
+
+You are in a splendid chamber thirty feet high.  The walls are frozen
+rivers of orange stone.  An awkward canyon and a good passage exit
+from east and west sides of the chamber.
+
+A cheerful little bird is sitting here singing.
+
+> drop rod
+
+OK
+
+> take bird
+
+OK
+
+> take rod
+
+OK
+
+> w
+
+At your feet is a small pit breathing traces of white mist.  An east
+passage ends here except for a small crack leading on.
+
+Rough stone steps lead down the pit.
+
+> free bird
+
+OK
+
+> wave rod
+
+The bird flies about agitatedly for a moment, then disappears through
+the crack.  It reappears shortly, carrying in its beak a jade
+necklace, which it drops at your feet.
+
+> take necklace
+
+OK
+
+> drop rod
+
+OK
+
+> take bird
+
+OK
+
+> take rod
+
+OK
+
+> d
+
+You are at one end of a vast hall stretching forward out of sight to
+the west.  There are openings to either side.  Nearby, a wide stone
+staircase leads downward.  The hall is filled with wisps of white mist
+swaying to and fro almost as if alive.  A cold wind blows up the
+staircase.  There is a passage at the top of a dome behind you.
+
+Rough stone steps lead up the dome.
+
+> d
+
+You are in the Hall of the Mountain King, with passages off in all
+directions.
+
+A huge green fierce snake bars the way!
+
+> free bird
+
+The little bird attacks the green snake, and in an astounding flurry
+drives the snake away.
+
+> drop rod
+
+OK
+
+> drop cage
+
+OK
+
+> take cage
+
+OK
+
+> take bird
+
+OK
+
+> w
+
+You are in the west side chamber of the Hall of the Mountain King.
+A passage continues west and up here.
+
+There are many coins here!
+
+> take coins
+
+OK
+
+> e
+
+You're in Hall of Mt King.
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+> s
+
+You are in the south side chamber.
+
+There is precious jewelry here!
+
+> take jewelry
+
+OK
+
+> n
+
+You're in Hall of Mt King.
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+> up
+
+You're in Hall of Mists.
+
+Rough stone steps lead up the dome.
+
+> s
+
+This is a low room with a crude note on the wall.  The note says,
+"You won't get it up the steps".
+
+There is a large sparkling nugget of gold here!
+
+> take gold
+
+OK
+
+> n
+
+You're in Hall of Mists.
+
+> d
+
+You're in Hall of Mt King.
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+> n
+
+You are in a low n/s passage at a hole in the floor.  The hole goes
+down to an e/w passage.
+
+There are bars of silver here!
+
+> n
+
+You are in a large room, with a passage to the south, a passage to the
+west, and a wall of broken rock to the east.  There is a large "Y2" on
+a rock in the room's center.
+
+A hollow voice says "PLUGH".
+
+> plugh
+
+>>Foof!<<
+
+You're inside building.
+
+There are some keys on the ground here.
+
+There is food here.
+
+There is a bottle of water here.
+
+> extinguish lamp
+
+Your lamp is now off.
+
+> drop coins
+
+OK
+
+> drop jewelry
+
+OK
+
+> drop necklace
+
+OK
+
+> drop gold
+
+OK
+
+> plugh
+
+>>Foof!<<
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> on
+
+Your lamp is now on.
+
+You're at "Y2".
+
+> s
+
+You're in n/s passage above e/w passage.
+
+There are bars of silver here!
+
+> take silver
+
+OK
+
+> s
+
+You're in Hall of Mt King.
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+> sw
+
+A little dwarf just walked around a corner, saw you, threw a little
+axe at you which missed, cursed, and ran away.
+
+You are in a secret canyon which here runs e/w.  It crosses over a
+very tight canyon 15 feet below.  If you go down you may not be able
+to get back up.
+
+There is a little axe here.
+
+> take axe
+
+OK
+
+> w
+
+You are in a secret canyon which exits to the north and east.
+
+A huge green fierce dragon bars the way!
+
+The dragon is sprawled out on a persian rug!!
+
+> kill dragon
+
+With what?  Your bare hands?
+
+> yes
+
+Congratulations!  You have just vanquished a dragon with your bare
+hands!  (Unbelievable, isn't it?)
+
+You are in a secret canyon which exits to the north and east.
+
+There is a persian rug spread out on the floor!
+
+The blood-specked body of a huge green dead dragon lies to one side.
+
+> drink blood
+
+Your head buzzes strangely for a moment.
+
+> take rug
+
+OK
+
+> e
+
+You're in secret e/w canyon above tight canyon.
+
+> e
+
+You are in the Hall of the Mountain King, with passages off in all
+directions.
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+> up
+
+There is a threatening little dwarf in the room with you!
+
+One sharp nasty knife is thrown at you!
+
+It misses!
+
+You're in Hall of Mists.
+
+Rough stone steps lead up the dome.
+
+> d
+
+There is a threatening little dwarf in the room with you!
+
+You're in Hall of Mt King.
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+> n
+
+There is a threatening little dwarf in the room with you!
+
+You're in n/s passage above e/w passage.
+
+> n
+
+There is a threatening little dwarf in the room with you!
+
+You're at "Y2".
+
+A hollow voice says "PLUGH".
+
+> off
+
+Your lamp is now off.
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> plugh
+
+>>Foof!<<
+
+You're inside building.
+
+There is a large sparkling nugget of gold here!
+
+A precious jade necklace has been dropped here!
+
+There is precious jewelry here!
+
+There are many coins here!
+
+There are some keys on the ground here.
+
+There is food here.
+
+There is a bottle of water here.
+
+> inven
+
+You are currently holding the following:
+Brass lantern
+Wicker cage
+Little bird in cage
+Dwarf's axe
+Bars of silver
+Persian rug
+
+> drop rug
+
+OK
+
+> drop silver
+
+OK
+
+> out
+
+You're in front of building.
+
+> s
+
+You are in a valley in the forest beside a stream tumbling along a
+rocky bed.
+
+> w
+
+You are wandering aimlessly through the forest.
+
+> n
+
+You are wandering aimlessly through the forest.
+
+Your keen eye spots a severed leporine appendage lying on the ground.
+
+> take appendage
+
+OK
+
+> free bird
+
+OK
+
+> drop cage
+
+OK
+
+> listen
+
+The bird is singing to you in gratitude for your having returned it to
+its home.  In return, it informs you of a magic word which it thinks
+you may find useful somewhere near the Hall of Mists.  The magic word
+changes frequently, but for now the bird believes it is "H'CFL".  You
+thank the bird for this information, and it flies off into the forest.
+
+> s
+
+You are wandering aimlessly through the forest.
+
+> s
+
+You're in valley.
+
+> n
+
+You're in front of building.
+
+> in
+
+You're inside building.
+
+There are bars of silver here!
+
+There is a persian rug spread out on the floor!
+
+There is a large sparkling nugget of gold here!
+
+A precious jade necklace has been dropped here!
+
+There is precious jewelry here!
+
+There are many coins here!
+
+There are some keys on the ground here.
+
+There is food here.
+
+There is a bottle of water here.
+
+> take water
+
+OK
+
+> plugh
+
+>>Foof!<<
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> on
+
+Your lamp is now on.
+
+You're at "Y2".
+
+> plover
+
+>>Foof!<<
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+There is an emerald here the size of a plover's egg!
+
+> ne
+
+You're in the dark-room.  A corridor leading south is the only exit.
+
+A massive stone tablet imbedded in the wall reads:
+"Congratulations on bringing light into the dark-room!"
+
+There is a platinum pyramid here, 8 inches on a side!
+
+> take pyramid
+
+OK
+
+> s
+
+You're in Plover Room.
+
+There is an emerald here the size of a plover's egg!
+
+> plover
+
+>>Foof!<<
+
+You're at "Y2".
+
+A hollow voice says "PLUGH".
+
+> s
+
+You're in n/s passage above e/w passage.
+
+> s
+
+You're in Hall of Mt King.
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+> take rod
+
+OK
+
+> up
+
+You're in Hall of Mists.
+
+Rough stone steps lead up the dome.
+
+> w
+
+You are on the east bank of a fissure slicing clear across the hall.
+The mist is quite thick here, and the fissure is too wide to jump.
+
+> wave rod
+
+A crystal bridge now spans the fissure.
+
+> drop rod
+
+OK
+
+> west
+
+You are on the west side of the fissure in the Hall of Mists.
+
+There are diamonds here!
+
+A crystal bridge now spans the fissure.
+
+> take diamonds
+
+OK
+
+> w
+
+There is a threatening little dwarf in the room with you!
+
+One sharp nasty knife is thrown at you!
+
+It misses!
+
+You are at the west end of the Hall of Mists.  A low wide crawl
+continues west and another goes north.  To the south is a little
+passage 6 feet off the floor.
+
+> w
+
+There is a threatening little dwarf in the room with you!
+
+You are at the east end of a very long hall apparently without side
+chambers.  To the east a low wide crawl slants up.  To the north a
+round two foot hole slants down.
+
+> w
+
+There is a threatening little dwarf in the room with you!
+
+You are at the west end of a very long featureless hall.  The hall
+joins up with a narrow north/south passage.
+
+> s
+
+There is a threatening little dwarf in the room with you!
+
+You are in a maze of twisty little passages, all different.
+
+> sw
+
+There is a threatening little dwarf in the room with you!
+
+You are in a little maze of twisty passages, all different.
+
+> se
+
+There is a threatening little dwarf in the room with you!
+
+You are in a little maze of twisting passages, all different.
+
+> s
+
+There is a threatening little dwarf in the room with you!
+
+Dead end
+
+There is a massive and somewhat battered vending machine here.  The
+instructions on it read: "Drop coins here to receive fresh batteries."
+
+> kill machine
+
+As you strike the vending machine, it pivots backward along with a
+section of wall, revealing a dark passage leading south.
+
+> s
+
+There is a threatening little dwarf in the room with you!
+
+You are in a long, rough-hewn, north/south corridor.
+
+> s
+
+There is a threatening little dwarf in the room with you!
+
+You are in a large chamber with passages to the west and north.
+
+A formidable ogre bars the northern exit.
+
+> kill ogre
+
+The ogre, who despite his bulk is quite agile, easily dodges your
+attack.  He seems almost amused by your puny effort.
+
+One sharp nasty knife is thrown at you!
+
+The ogre, distracted by your rush, is struck by the knife.  With a
+blood-curdling yell he turns and bounds after the dwarf, who flees
+in panic.  You are left alone in the room.
+
+> n
+
+You are in the ogre's storeroom.  The only exit is to the south.
+
+There is an enormous ruby here!
+
+> take ruby
+
+OK
+
+> s
+
+You are in a large chamber with passages to the west and north.
+
+> w
+
+You are in a long, rough-hewn, north/south corridor.
+
+> n
+
+Dead end
+
+There is a massive vending machine here, swung back to reveal a
+southward passage.
+
+> n
+
+You are in a little maze of twisting passages, all different.
+
+> n
+
+You are in a little maze of twisty passages, all different.
+
+> nw
+
+You are in a maze of twisty little passages, all different.
+
+> d
+
+You're at west end of long hall.
+
+> e
+
+You're at east end of long hall.
+
+> e
+
+You're at west end of Hall of Mists.
+
+> e
+
+You're on west bank of fissure.
+
+A crystal bridge now spans the fissure.
+
+> e
+
+You're on east bank of fissure.
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+A crystal bridge now spans the fissure.
+
+> e
+
+There is a threatening little dwarf in the room with you!
+
+One sharp nasty knife is thrown at you!
+
+It misses!
+
+You are at one end of a vast hall stretching forward out of sight to
+the west.  There are openings to either side.  Nearby, a wide stone
+staircase leads downward.  The hall is filled with wisps of white mist
+swaying to and fro almost as if alive.  A cold wind blows up the
+staircase.  There is a passage at the top of a dome behind you.
+
+Rough stone steps lead up the dome.
+
+> throw axe
+
+You killed a little dwarf.  The body vanishes in a cloud of greasy
+black smoke.
+
+You're in Hall of Mists.
+
+There is a little axe here.
+
+Rough stone steps lead up the dome.
+
+> take axe
+
+OK
+
+> n
+
+You're in Hall of Mt King.
+
+> n
+
+You're in n/s passage above e/w passage.
+
+> n
+
+You are in a large room, with a passage to the south, a passage to the
+west, and a wall of broken rock to the east.  There is a large "Y2" on
+a rock in the room's center.
+
+A hollow voice says "PLUGH".
+
+> off
+
+Your lamp is now off.
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> plugh
+
+>>Foof!<<
+
+You're inside building.
+
+There are bars of silver here!
+
+There is a persian rug spread out on the floor!
+
+There is a large sparkling nugget of gold here!
+
+A precious jade necklace has been dropped here!
+
+There is precious jewelry here!
+
+There are many coins here!
+
+There are some keys on the ground here.
+
+There is food here.
+
+> drop ruby
+
+OK
+
+> drop diamonds
+
+OK
+
+> drop pyramid
+
+OK
+
+> plugh
+
+>>Foof!<<
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> on
+
+Your lamp is now on.
+
+You're at "Y2".
+
+A hollow voice says "PLUGH".
+
+> s
+
+You are in a low n/s passage at a hole in the floor.  The hole goes
+down to an e/w passage.
+
+> s
+
+You're in Hall of Mt King.
+
+> u
+
+You're in Hall of Mists.
+
+Rough stone steps lead up the dome.
+
+> n
+
+You are in the Hall of the Mountain King, with passages off in all
+directions.
+
+> n
+
+You're in n/s passage above e/w passage.
+
+> d
+
+You are in a dirty broken passage.  To the east is a crawl.  To the
+west is a large passage.  Above you is a hole to another passage.
+
+> bedquilt
+
+There is a threatening little dwarf in the room with you!
+
+You are in Bedquilt, a long east/west passage with holes everywhere.
+To explore at random select north, south, up, or down.
+
+> throw axe
+
+You killed a little dwarf.
+
+You're in Bedquilt.
+
+There is a little axe here.
+
+> take axe
+
+OK
+
+> slab
+
+You are in a large low circular chamber whose floor is an immense slab
+fallen from the ceiling (Slab Room).  East and west there once were
+large passages, but they are now filled with boulders.  Low small
+passages go north and south, and the south one quickly bends west
+around the boulders.
+
+> s
+
+You are at the west end of the Twopit Room.  There is a large hole in
+the wall above the pit at this end of the room.
+
+> d
+
+You are at the bottom of the western pit in the Twopit Room.  There is
+a large hole in the wall about 25 feet above you.
+
+There is a tiny little plant in the pit, murmuring "water, water, ..."
+
+> water plant
+
+The plant spurts into furious growth for a few seconds.
+
+You're in west pit.
+
+There is a 12-foot-tall beanstalk stretching up out of the pit,
+bellowing "WATER!! WATER!!"
+
+> u
+
+You're at west end of Twopit Room.
+
+The top of a 12-foot-tall beanstalk is poking out of the west pit.
+
+> w
+
+You're in Slab Room.
+
+> u
+
+You are in a secret n/s canyon above a large room.
+
+> reservoir
+
+You are at the edge of a large underground reservoir.  An opaque cloud
+of white mist fills the room and rises rapidly upward.  The lake is
+fed by a stream, which tumbles out of a hole in the wall about 10 feet
+overhead and splashes noisily into the water somewhere within the
+mist.  There is a passage going back toward the south.
+
+> H'CFL
+
+The waters have parted to form a narrow path across the reservoir.
+
+> n
+
+You are walking across the bottom of the reservoir.  Walls of water
+rear up on either side.  The roar of the water cascading past is
+nearly deafening, and the mist is so thick you can barely see.
+
+> n
+
+You are at the northern edge of the reservoir.  A northwest passage
+leads sharply up from here.
+
+The waters have parted to form a narrow path across the reservoir.
+
+> nw
+
+You are scrambling along a treacherously steep, rocky passage.
+
+> u
+
+You are on a very steep incline, which widens at it goes upward.
+
+> u
+
+You are at the base of a nearly vertical cliff.  There are some
+slim footholds which would enable you to climb up, but it looks
+extremely dangerous.  Here at the base of the cliff lie the remains
+of several earlier adventurers who apparently failed to make it.
+
+> u
+
+You are climbing along a nearly vertical cliff.
+
+> u
+
+Just as you reach the top, your foot slips on a loose rock and you
+make one last desperate grab.  Your luck holds, as does your grip.
+With an enormous heave, you lift yourself to the ledge above.
+
+You are on a small ledge at the top of a nearly vertical cliff.
+There is a low crawl leading off to the northeast.
+
+> ne
+
+You have reached a dead end.
+
+There is a richly-carved ebony statuette here!
+
+> take ebony
+
+OK
+
+> sw
+
+You're at top of cliff.
+
+> d
+
+You are climbing along a nearly vertical cliff.
+
+> d
+
+You're at base of cliff.
+
+> d
+
+You are on a very steep incline, which widens at it goes upward.
+
+> d
+
+You are scrambling along a treacherously steep, rocky passage.
+
+> d
+
+You're north of reservoir.
+
+The waters have parted to form a narrow path across the reservoir.
+
+> take water
+
+Your bottle is now full of water.
+
+> s
+
+You're at bottom of reservoir.
+
+> s
+
+You're at reservoir.
+
+The waters have parted to form a narrow path across the reservoir.
+
+> s
+
+You are in a north/south canyon about 25 feet across.  The floor is
+covered by white mist seeping in from the north.  The walls extend
+upward for well over 100 feet.  Suspended from some unseen point far
+above you, an enormous two-sided mirror is hanging parallel to and
+midway between the canyon walls.  (The mirror is obviously provided
+for the use of the dwarves who, as you know, are extremely vain.)  A
+small window can be seen in either wall, some fifty feet up.
+
+> s
+
+You are in a secret n/s canyon above a large room.
+
+> d
+
+You're in Slab Room.
+
+> s
+
+You're at west end of Twopit Room.
+
+The top of a 12-foot-tall beanstalk is poking out of the west pit.
+
+> d
+
+You're in west pit.
+
+There is a 12-foot-tall beanstalk stretching up out of the pit,
+bellowing "WATER!! WATER!!"
+
+> water plant
+
+The plant grows explosively, almost filling the bottom of the pit.
+
+You're in west pit.
+
+There is a gigantic beanstalk stretching all the way up to the hole.
+
+> u
+
+You're at west end of Twopit Room.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> drop appendage
+
+OK
+
+> e
+
+You are at the east end of the Twopit Room.  The floor here is
+littered with thin rock slabs, which make it easy to descend the pits.
+There is a path here bypassing the pits to connect passages from east
+and west.  There are holes all over, but the only big one is on the
+wall directly over the west pit where you can't get to it.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> d
+
+You are at the bottom of the eastern pit in the Twopit Room.  There is
+a small pool of oil in one corner of the pit.
+
+> get oil
+
+Your bottle is now full of oil.
+
+> 
+
+> u
+
+You're at east end of Twopit Room.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> w
+
+You're at west end of Twopit Room.
+
+Your keen eye spots a severed leporine appendage lying on the ground.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> d
+
+You're in west pit.
+
+There is a gigantic beanstalk stretching all the way up to the hole.
+
+> climb
+
+You clamber up the plant and scurry through the hole at the top.
+
+You are in a long, narrow corridor stretching out of sight to the
+west.  At the eastern end is a hole through which you can see a
+profusion of leaves.
+
+> w
+
+You are in the Giant Room.  The ceiling here is too high up for your
+lamp to show it.  Cavernous passages lead east, north, and south.  On
+the west wall is scrawled the inscription, "FEE FIE FOE FOO" [sic].
+
+There is a large nest here, full of golden eggs!
+
+> n
+
+You are at one end of an immense north/south passage.
+
+The way north is barred by a massive, rusty, iron door.
+
+> oil door
+
+The oil has freed up the hinges so that the door will now move,
+although it requires some effort.
+
+> drop bottle
+
+OK
+
+> n
+
+You are in a magnificent cavern with a rushing stream, which cascades
+over a sparkling waterfall into a roaring whirlpool which disappears
+through a hole in the floor.  Passages exit to the south and west.
+
+There is a jewel-encrusted trident here!
+
+> take trident
+
+OK
+
+> w
+
+You are at the top of a steep incline above a large room.  You could
+climb down here, but you would not be able to climb up.  There is a
+passage leading back to the north.
+
+> d
+
+You are in a large low room.  Crawls lead north, se, and sw.
+
+> se
+
+This is the Oriental Room.  Ancient oriental cave drawings cover the
+walls.  A gently sloping passage leads upward to the north, another
+passage leads se, and a hands and knees crawl leads west.
+
+There is a delicate, precious, ming vase here!
+
+> n
+
+You are following a wide path around the outer edge of a large cavern.
+Far below, through a heavy white mist, strange splashing noises can be
+heard.  The mist rises up through a fissure in the ceiling.  The path
+exits to the south and west.
+
+> w
+
+You are in an alcove.  A small nw path seems to widen after a short
+distance.  An extremely tight tunnel leads east.  It looks like a very
+tight squeeze.  An eerie light can be seen at the other end.
+
+> drop trident
+
+OK
+
+> drop ebony
+
+OK
+
+> drop axe
+
+OK
+
+> drop lantern
+
+OK
+
+> e
+
+You're in Plover Room.
+
+There is an emerald here the size of a plover's egg!
+
+> take emerald
+
+OK
+
+> w
+
+You're in alcove.
+
+There is a lamp shining nearby.
+
+There is a little axe here.
+
+There is a richly-carved ebony statuette here!
+
+There is a jewel-encrusted trident here!
+
+> take lamp
+
+OK
+
+> take axe
+
+OK
+
+> take ebony
+
+OK
+
+> take trident
+
+OK
+
+> nw
+
+You're in misty cavern.
+
+> s
+
+You're in Oriental Room.
+
+There is a delicate, precious, ming vase here!
+
+> take vase
+
+OK
+
+> se
+
+There is a threatening little dwarf in the room with you!
+
+You are in a room whose walls resemble swiss cheese.  Obvious passages
+go west, east, ne, and nw.  Part of the room is occupied by a large
+bedrock block.
+
+> throw axe
+
+You killed a little dwarf.
+
+You're in Swiss Cheese Room.
+
+There is a little axe here.
+
+> take axe
+
+OK
+
+> e
+
+You are in the Soft Room.  The walls are covered with heavy curtains,
+the floor with a thick pile carpet.  Moss covers the ceiling.
+
+A small velvet pillow lies on the floor.
+
+> take pillow
+
+OK
+
+> w
+
+You're in Swiss Cheese Room.
+
+> drop axe
+
+OK
+
+> ne
+
+You're in Bedquilt.
+
+> e
+
+You are at a complex junction.  A low hands and knees passage from the
+north joins a higher crawl from the east to make a walking passage
+going west.  There is also a large room above.  The air is damp here.
+
+> n
+
+You're in a large room carved out of sedimentary rock.  The floor and
+walls are littered with bits of shells imbedded in the stone.  A
+shallow passage proceeds downward, and a somewhat steeper one leads
+up.  A low hands and knees passage enters from the south.
+
+There is an enormous clam here with its shell tightly closed.
+
+> open clam
+
+A glistening pearl falls out of the clam and rolls away.  Goodness,
+this must really be an oyster.  (I never was very good at identifying
+bivalves.)  Whatever it is, it has now snapped shut again.
+
+> s
+
+You're at complex junction.
+
+> u
+
+You are in a large room full of dusty rocks.  There is a big hole in
+the floor.  There are cracks everywhere, and a passage leading east.
+
+> e
+
+You're in dirty passage.
+
+> u
+
+You're in n/s passage above e/w passage.
+
+> n
+
+You're at "Y2".
+
+> off
+
+Your lamp is now off.
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> plugh
+
+>>Foof!<<
+
+You are inside a building, a well house for a large spring.
+
+There is a platinum pyramid here, 8 inches on a side!
+
+There are diamonds here!
+
+There is an enormous ruby here!
+
+There are bars of silver here!
+
+There is a persian rug spread out on the floor!
+
+There is a large sparkling nugget of gold here!
+
+A precious jade necklace has been dropped here!
+
+There is precious jewelry here!
+
+There are many coins here!
+
+There are some keys on the ground here.
+
+There is food here.
+
+> drop pillow
+
+OK
+
+> drop vase
+
+The vase is now resting, delicately, on a velvet pillow.
+
+> drop trident
+
+OK
+
+> drop emerald
+
+OK
+
+> drop ebony
+
+OK
+
+> take keys
+
+OK
+
+> take food
+
+OK
+
+> plugh
+
+>>Foof!<<
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+A hollow voice says "PLUGH".
+
+> on
+
+Your lamp is now on.
+
+You're at "Y2".
+
+A hollow voice says "PLUGH".
+
+> s
+
+You're in n/s passage above e/w passage.
+
+> d
+
+You're in dirty passage.
+
+> w
+
+You're in dusty rock room.
+
+> d
+
+You're at complex junction.
+
+> n
+
+You're in Shell Room.
+
+There is an enormous oyster here with its shell tightly closed.
+
+> d
+
+You are in a long sloping corridor with ragged sharp walls.
+
+> d
+
+You are in a cul-de-sac about eight feet across.
+
+Off to one side lies a glistening pearl!
+
+> take pearl
+
+OK
+
+> u
+
+You are in a long sloping corridor with ragged sharp walls.
+
+> u
+
+You're in Shell Room.
+
+There is an enormous oyster here with its shell tightly closed.
+
+> s
+
+You're at complex junction.
+
+> w
+
+You're in Bedquilt.
+
+> w
+
+You're in Swiss Cheese Room.
+
+There is a little axe here.
+
+> w
+
+You're at east end of Twopit Room.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> w
+
+You are at the west end of the Twopit Room.  There is a large hole in
+the wall above the pit at this end of the room.
+
+Your keen eye spots a severed leporine appendage lying on the ground.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> d
+
+You are at the bottom of the western pit in the Twopit Room.  There is
+a large hole in the wall about 25 feet above you.
+
+There is a gigantic beanstalk stretching all the way up to the hole.
+
+> climb
+
+You clamber up the plant and scurry through the hole at the top.
+
+You're in narrow corridor.
+
+> w
+
+You're in Giant Room.
+
+There is a large nest here, full of golden eggs!
+
+> get eggs
+
+OK
+
+> n
+
+You are at one end of an immense north/south passage.
+
+There is an empty bottle here.
+
+The way north leads through a massive, rusty, iron door.
+
+> take bottle
+
+OK
+
+> n
+
+You're in cavern with waterfall.
+
+> w
+
+You're at steep incline above large room.
+
+> d
+
+You're in large low room.
+
+> sw
+
+You are in a long winding corridor sloping out of sight in both
+directions.
+
+> u
+
+You are on one side of a large, deep chasm.  A heavy white mist rising
+up from below obscures all view of the far side.  A sw path leads away
+from the chasm into a winding corridor.
+
+A rickety wooden bridge extends across the chasm, vanishing into the
+mist.  A notice posted on the bridge reads, "Stop! Pay troll!"
+
+A burly troll stands by the bridge and insists you throw him a
+treasure before you may cross.
+
+> toss eggs
+
+The troll catches your treasure and scurries away out of sight.
+
+> ne
+
+You are on the far side of the chasm.  A ne path leads away from the
+chasm on this side.
+
+A rickety wooden bridge extends across the chasm, vanishing into the
+mist.  A notice posted on the bridge reads, "Stop! Pay troll!"
+
+The troll is nowhere to be seen.
+
+> ne
+
+You're in a long east/west corridor.  A faint rumbling noise can be
+heard in the distance.
+
+> barren
+
+You are standing at the entrance to a large, barren room.  A notice
+above the entrance reads:  "Caution!  Bear in room!"
+
+> in
+
+You are inside a barren room.  The center of the room is completely
+empty except for some dust.  Marks in the dust lead away toward the
+far end of the room.  The only exit is the way you came in.
+
+There is a ferocious cave bear eying you from the far end of the room!
+
+The bear is locked to the wall with a golden chain!
+
+> feed bear
+
+The bear eagerly wolfs down your food, after which he seems to calm
+down considerably and even becomes rather friendly.
+
+> unlock chain
+
+The chain is now unlocked.
+
+> take chain
+
+OK
+
+> take bear
+
+OK
+
+> fork
+
+You are being followed by a very large, tame bear.
+
+The path forks here.  The left fork leads northeast.  A dull rumbling
+seems to get louder in that direction.  The right fork leads southeast
+down a gentle slope.  The main corridor enters from the west.
+
+> ne
+
+You are being followed by a very large, tame bear.
+
+The walls are quite warm here.  From the north can be heard a steady
+roar, so loud that the entire cave seems to be trembling.  Another
+passage leads south, and a low crawl goes east.
+
+> e
+
+You are being followed by a very large, tame bear.
+
+You are in a small chamber filled with large boulders.  The walls are
+very warm, causing the air in the room to be almost stifling from the
+heat.  The only exit is a crawl heading west, through which is coming
+a low rumbling.
+
+There are rare spices here!
+
+> take spices
+
+OK
+
+> drop keys
+
+OK
+
+> fork
+
+You are being followed by a very large, tame bear.
+
+You're at fork in path.
+
+> w
+
+You are being followed by a very large, tame bear.
+
+You're in corridor.
+
+> w
+
+You are being followed by a very large, tame bear.
+
+You're on ne side of chasm.
+
+A rickety wooden bridge extends across the chasm, vanishing into the
+mist.  A notice posted on the bridge reads, "Stop! Pay troll!"
+
+The troll is nowhere to be seen.
+
+> sw
+
+The troll steps out from beneath the bridge and blocks your way.
+
+You are being followed by a very large, tame bear.
+
+You're on ne side of chasm.
+
+A rickety wooden bridge extends across the chasm, vanishing into the
+mist.  A notice posted on the bridge reads, "Stop! Pay troll!"
+
+A burly troll stands by the bridge and insists you throw him a
+treasure before you may cross.
+
+> free bear
+
+The bear lumbers toward the troll, who lets out a startled shriek and
+scurries away.  The bear soon gives up the pursuit and wanders back.
+
+> inven
+
+You are currently holding the following:
+Brass lantern
+Small bottle
+Glistening pearl
+Rare spices
+Golden chain
+
+> sw
+
+You're on sw side of chasm.
+
+A rickety wooden bridge extends across the chasm, vanishing into the
+mist.  A notice posted on the bridge reads, "Stop! Pay troll!"
+
+The troll is nowhere to be seen.
+
+> sw
+
+You're in sloping corridor.
+
+> d
+
+You're in large low room.
+
+> se
+
+You're in Oriental Room.
+
+> se
+
+You're in Swiss Cheese Room.
+
+There is a little axe here.
+
+> w
+
+You're at east end of Twopit Room.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> d
+
+You're in east pit.
+
+> get oil
+
+Your bottle is now full of oil.
+
+> up
+
+You're at east end of Twopit Room.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> e
+
+You are in a room whose walls resemble swiss cheese.  Obvious passages
+go west, east, ne, and nw.  Part of the room is occupied by a large
+bedrock block.
+
+There is a little axe here.
+
+> take axe
+
+OK
+
+> w
+
+You are at the east end of the Twopit Room.  The floor here is
+littered with thin rock slabs, which make it easy to descend the pits.
+There is a path here bypassing the pits to connect passages from east
+and west.  There are holes all over, but the only big one is on the
+wall directly over the west pit where you can't get to it.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> w
+
+You're at west end of Twopit Room.
+
+Your keen eye spots a severed leporine appendage lying on the ground.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> d
+
+You're in west pit.
+
+There is a gigantic beanstalk stretching all the way up to the hole.
+
+> climb
+
+You clamber up the plant and scurry through the hole at the top.
+
+You're in narrow corridor.
+
+> w
+
+You're in Giant Room.
+
+> fee
+
+OK
+
+> fie
+
+OK
+
+> foe
+
+OK
+
+> foo
+
+There is a large nest here, full of golden eggs!
+
+> take eggs
+
+OK
+
+> s
+
+You're in narrow corridor.
+
+> d
+
+You're in west pit.
+
+There is a gigantic beanstalk stretching all the way up to the hole.
+
+> u
+
+You're at west end of Twopit Room.
+
+Your keen eye spots a severed leporine appendage lying on the ground.
+
+There is a huge beanstalk growing out of the west pit up to the hole.
+
+> w
+
+You're in Slab Room.
+
+> u
+
+You are in a secret n/s canyon above a large room.
+
+> s
+
+You are in a secret canyon which exits to the north and east.
+
+The body of a huge green dead dragon is lying off to one side.
+
+> e
+
+You're in secret e/w canyon above tight canyon.
+
+> e
+
+You're in Hall of Mt King.
+
+> n
+
+You're in n/s passage above e/w passage.
+
+> n
+
+You're at "Y2".
+
+A hollow voice says "PLUGH".
+
+> off
+
+Your lamp is now off.
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> plugh
+
+>>Foof!<<
+
+You're inside building.
+
+There is a richly-carved ebony statuette here!
+
+There is an emerald here the size of a plover's egg!
+
+There is a jewel-encrusted trident here!
+
+There is a delicate, precious, ming vase here!
+
+A small velvet pillow lies on the floor.
+
+There is a platinum pyramid here, 8 inches on a side!
+
+There are diamonds here!
+
+There is an enormous ruby here!
+
+There are bars of silver here!
+
+There is a persian rug spread out on the floor!
+
+There is a large sparkling nugget of gold here!
+
+A precious jade necklace has been dropped here!
+
+There is precious jewelry here!
+
+There are many coins here!
+
+> drop eggs
+
+OK
+
+> drop pearl
+
+OK
+
+> drop spices
+
+OK
+
+> drop chain
+
+OK
+
+> take rug
+
+OK
+
+> take ruby
+
+OK
+
+> take emerald
+
+OK
+
+> out
+
+You're in front of building.
+
+> w
+
+You have walked up a hill, still in the forest.  The road slopes back
+down the other side of the hill.  There is a building in the distance.
+
+> n
+
+You are wandering aimlessly through the forest.
+
+> n
+
+You are wandering aimlessly through the forest.
+
+> n
+
+The forest thins out here to reveal a steep cliff.  There is no way
+down, but a small ledge can be seen to the west across the chasm.
+
+A small urn is embedded in the rock.
+
+> inven
+
+You are currently holding the following:
+Brass lantern
+Small bottle
+Oil in the bottle
+Dwarf's axe
+Egg-sized emerald
+Persian rug
+Giant ruby
+
+> fill urn
+
+Your bottle is now empty and the urn is full of oil.
+
+> light urn
+
+The urn is now lit.
+
+> rub urn
+
+As you rub the urn, there is a flash of light and a genie appears.
+His aspect is stern as he advises: "One who wouldst traffic in
+precious stones must first learn to recognize the signals thereof."
+He wrests the urn from the stone, leaving a small cavity.  Turning to
+face you again, he fixes you with a steely eye and intones: "Caution!"
+Genie and urn vanish in a cloud of amber smoke.  The smoke condenses
+to form a rare amber gemstone, resting in the cavity in the rock.
+
+> take amber
+
+OK
+
+> drop rug
+
+OK
+
+> drop emerald
+
+The gem fits easily into the cavity.
+
+The persian rug stiffens and rises a foot or so off the ground.
+
+> fly rug
+
+You board the persian rug, which promptly whisks you across the chasm.
+You have time for a fleeting glimpse of a two thousand foot drop to a
+mighty river; then you find yourself on the other side.
+
+You are on a small ledge on one face of a sheer cliff.  There are no
+paths away from the ledge.  Across the chasm is a small clearing
+surrounded by forest.
+
+There is a persian rug here, hovering in mid-air!
+
+A brilliant blue star sapphire is here!
+
+> take sapphire
+
+OK
+
+> fly rug
+
+The rug ferries you back across the chasm.
+
+You're at cliff.
+
+There is an emerald resting in a small cavity in the rock!
+
+There is a persian rug here, hovering in mid-air!
+
+> take emerald
+
+OK
+
+> drop ruby
+
+The gem fits easily into the cavity.
+
+The persian rug settles gently to the ground.
+
+> take rug
+
+OK
+
+> drop bottle
+
+OK
+
+> take ruby
+
+OK
+
+> e
+
+You are wandering aimlessly through the forest.
+
+> s
+
+You are wandering aimlessly through the forest.
+
+> e
+
+You're at hill in road.
+
+> e
+
+You are standing at the end of a road before a small brick building.
+Around you is a forest.  A small stream flows out of the building and
+down a gully.
+
+> in
+
+You're inside building.
+
+There is a golden chain lying in a heap on the floor!
+
+There are rare spices here!
+
+Off to one side lies a glistening pearl!
+
+There is a large nest here, full of golden eggs!
+
+There is a richly-carved ebony statuette here!
+
+There is a jewel-encrusted trident here!
+
+There is a delicate, precious, ming vase here!
+
+A small velvet pillow lies on the floor.
+
+There is a platinum pyramid here, 8 inches on a side!
+
+There are diamonds here!
+
+There are bars of silver here!
+
+There is a large sparkling nugget of gold here!
+
+A precious jade necklace has been dropped here!
+
+There is precious jewelry here!
+
+There are many coins here!
+
+> drop ruby
+
+OK
+
+> drop sapphire
+
+OK
+
+> drop amber
+
+Tsk!  A wizard wouldn't have to take 350 turns.  This is going to cost
+you a couple of points.
+
+OK
+
+> drop rug
+
+OK
+
+> look
+
+Sorry, but I am not allowed to give more detail.  I will repeat the
+long description of your location.
+
+You are inside a building, a well house for a large spring.
+
+There is a persian rug spread out on the floor!
+
+There is a rare amber gemstone here!
+
+A brilliant blue star sapphire is here!
+
+There is an enormous ruby here!
+
+There is a golden chain lying in a heap on the floor!
+
+There are rare spices here!
+
+Off to one side lies a glistening pearl!
+
+There is a large nest here, full of golden eggs!
+
+There is a richly-carved ebony statuette here!
+
+There is a jewel-encrusted trident here!
+
+There is a delicate, precious, ming vase here!
+
+A small velvet pillow lies on the floor.
+
+There is a platinum pyramid here, 8 inches on a side!
+
+There are diamonds here!
+
+There are bars of silver here!
+
+There is a large sparkling nugget of gold here!
+
+A precious jade necklace has been dropped here!
+
+There is precious jewelry here!
+
+There are many coins here!
+
+> plugh
+
+>>Foof!<<
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> on
+
+Your lamp is now on.
+
+You are in a large room, with a passage to the south, a passage to the
+west, and a wall of broken rock to the east.  There is a large "Y2" on
+a rock in the room's center.
+
+> s
+
+You are in a low n/s passage at a hole in the floor.  The hole goes
+down to an e/w passage.
+
+> s
+
+You're in Hall of Mt King.
+
+> u
+
+You're in Hall of Mists.
+
+Rough stone steps lead up the dome.
+
+> w
+
+Out from the shadows behind you pounces a bearded pirate!  "Har, har,"
+he chortles, "I'll just take all this booty and hide it away with me
+chest deep in the maze!"  He snatches your treasure and vanishes into
+the gloom.
+
+You're on east bank of fissure.
+
+A three foot black rod with a rusty star on an end lies nearby.
+
+A crystal bridge now spans the fissure.
+
+> w
+
+You're on west bank of fissure.
+
+A crystal bridge now spans the fissure.
+
+> w
+
+You're at west end of Hall of Mists.
+
+> s
+
+You are in a maze of twisty little passages, all alike.
+
+> e
+
+You are in a maze of twisty little passages, all alike.
+
+> s
+
+There is a threatening little dwarf in the room with you!
+
+One sharp nasty knife is thrown at you!
+
+It misses!
+
+You are in a maze of twisty little passages, all alike.
+
+> throw axe
+
+You killed a little dwarf.
+
+You are in a maze of twisty little passages, all alike.
+
+There is a little axe here.
+
+> take axe
+
+OK
+
+> s
+
+You are in a maze of twisty little passages, all alike.
+
+> s
+
+You are in a maze of twisty little passages, all alike.
+
+> n
+
+You are in a maze of twisty little passages, all alike.
+
+> e
+
+You are on the brink of a thirty foot pit with a massive orange column
+down one wall.  You could climb down here but you could not get back
+up.  The maze continues at this level.
+
+> e
+
+You are in a maze of twisty little passages, all alike.
+
+> nw
+
+Dead end
+
+There is an emerald here the size of a plover's egg!
+
+The pirate's treasure chest is here!
+
+> take emerald
+
+OK
+
+> take chest
+
+OK
+
+> se
+
+You are in a maze of twisty little passages, all alike.
+
+> n
+
+You're at brink of pit.
+
+> d
+
+You're in bird chamber.
+
+> e
+
+You are in an awkward sloping east/west canyon.
+
+> e
+
+You're in debris room.
+
+> off
+
+Your lamp is now off.
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> xyzzy
+
+>>Foof!<<
+
+You're inside building.
+
+There is a persian rug spread out on the floor!
+
+There is a rare amber gemstone here!
+
+A brilliant blue star sapphire is here!
+
+There is an enormous ruby here!
+
+There is a golden chain lying in a heap on the floor!
+
+There are rare spices here!
+
+Off to one side lies a glistening pearl!
+
+There is a large nest here, full of golden eggs!
+
+There is a richly-carved ebony statuette here!
+
+There is a jewel-encrusted trident here!
+
+There is a delicate, precious, ming vase here!
+
+A small velvet pillow lies on the floor.
+
+There is a platinum pyramid here, 8 inches on a side!
+
+There are diamonds here!
+
+There are bars of silver here!
+
+There is a large sparkling nugget of gold here!
+
+A precious jade necklace has been dropped here!
+
+There is precious jewelry here!
+
+There are many coins here!
+
+> drop emerald
+
+OK
+
+> drop chest
+
+OK
+
+> plugh
+
+>>Foof!<<
+
+It is now pitch dark.  If you proceed you will likely fall into a pit.
+
+> on
+
+Your lamp is now on.
+
+You're at "Y2".
+
+A hollow voice says "PLUGH".
+
+> s
+
+You're in n/s passage above e/w passage.
+
+> d
+
+You're in dirty passage.
+
+> w
+
+You're in dusty rock room.
+
+> d
+
+You're at complex junction.
+
+> e
+
+Your lamp is getting dim.  You'd best start wrapping this up, unless
+you can find some fresh batteries.  I seem to recall there's a vending
+machine in the maze.  Bring some coins with you.
+
+You are in an anteroom leading to a large passage to the east.  Small
+passages go west and up.  The remnants of recent digging are evident.
+A sign in midair here says "Cave under construction beyond this point.
+Proceed at own risk.  [Witt Construction Company]"
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> take magazine
+
+OK
+
+> e
+
+You are at Witt's End.  Passages lead off in *ALL* directions.
+
+> drop magazine
+
+OK
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You are at Witt's End.  Passages lead off in *ALL* directions.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You are at Witt's End.  Passages lead off in *ALL* directions.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You're at Witt's End.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You have crawled around in some little holes and wound up back in the
+main passage.
+
+You are at Witt's End.  Passages lead off in *ALL* directions.
+
+There are a few recent issues of "Spelunker Today" magazine here.
+
+> e
+
+You're in anteroom.
+
+> u
+
+You are at a complex junction.  A low hands and knees passage from the
+north joins a higher crawl from the east to make a walking passage
+going west.  There is also a large room above.  The air is damp here.
+
+> u
+
+A sepulchral voice reverberating through the cave, says, "Cave closing
+soon.  All adventurers exit immediately through main office."
+
+You're in dusty rock room.
+
+> e
+
+You're in dirty passage.
+
+> u
+
+You're in n/s passage above e/w passage.
+
+> n
+
+You're at "Y2".
+
+> plover
+
+>>Foof!<<
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+Your lamp has run out of power.
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in a small chamber lit by an eerie green light.  An extremely
+narrow tunnel exits to the west.  A dark corridor leads ne.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+There is no way to go that direction.
+
+You're in Plover Room.
+
+> e
+
+The sepulchral voice intones, "The cave is now closed."  As the echoes
+fade, there is a blinding flash of light (and a small puff of orange
+smoke). . . .    As your eyes refocus, you look around and find...
+
+You are at the northeast end of an immense room, even larger than the
+Giant Room.  It appears to be a repository for the "Adventure"
+program.  Massive torches far overhead bathe the room with smoky
+yellow light.  Scattered about you can be seen a pile of bottles (all
+of them empty), a nursery of young beanstalks murmuring quietly, a bed
+of oysters, a bundle of black rods with rusty stars on their ends, and
+a collection of brass lanterns.  Off to one side a great many dwarves
+are sleeping on the floor, snoring loudly.  A notice nearby reads: "Do
+not disturb the dwarves!"  An immense mirror is hanging against one
+wall, and stretches to the other end of the room, where various other
+sundry objects can be glimpsed dimly in the distance.
+
+> sw
+
+You are at the southwest end of the repository.  To one side is a pit
+full of fierce green snakes.  On the other side is a row of small
+wicker cages, each of which contains a little sulking bird.  In one
+corner is a bundle of black rods with rusty marks on their ends.  A
+large number of velvet pillows are scattered about on the floor.  A
+vast mirror stretches off to the northeast.  At your feet is a large
+steel grate, next to which is a sign that reads, "Treasure Vault.
+Keys in main office."
+
+The grate is locked.
+
+> break mirror
+
+You strike the mirror a resounding blow, whereupon it shatters into a
+myriad tiny fragments.
+
+The resulting ruckus has awakened the dwarves.  There are now several
+threatening little dwarves in the room with you!  Most of them throw
+knives at you!  All of them get you!
+
+You scored 393 out of a possible 430, using 463 turns.
+
+Your score puts you in Master Adventurer Class B.
+
+To achieve the next higher rating, you need 18 more points.
diff --git a/tests/breakmirror.log b/tests/breakmirror.log
new file mode 100644 (file)
index 0000000..592bdba
--- /dev/null
@@ -0,0 +1,471 @@
+## Break the mirror in endgame and die
+n
+seed 1838473132
+in
+take lamp
+xyzzy
+on
+take rod
+e
+take cage
+w
+w
+w
+drop rod
+take bird
+take rod
+w
+free bird
+wave rod
+take necklace
+drop rod
+take bird
+take rod
+d
+d
+free bird
+drop rod
+drop cage
+take cage
+take bird
+w
+take coins
+e
+s
+take jewelry
+n
+up
+s
+take gold
+n
+d
+n
+n
+plugh
+extinguish lamp
+drop coins
+drop jewelry
+drop necklace
+drop gold
+plugh
+on
+s
+take silver
+s
+sw
+take axe
+w
+kill dragon
+yes
+drink blood
+take rug
+e
+e
+up
+d
+n
+n
+off
+plugh
+inven
+drop rug
+drop silver
+out
+s
+w
+n
+take appendage
+free bird
+drop cage
+listen
+s
+s
+n
+in
+take water
+plugh
+on
+plover
+ne
+take pyramid
+s
+plover
+s
+s
+take rod
+up
+w
+wave rod
+drop rod
+west
+take diamonds
+w
+w
+w
+s
+sw
+se
+s
+kill machine
+s
+s
+kill ogre
+n
+take ruby
+s
+w
+n
+n
+n
+nw
+d
+e
+e
+e
+e
+e
+throw axe
+take axe
+n
+n
+n
+off
+plugh
+drop ruby
+drop diamonds
+drop pyramid
+plugh
+on
+s
+s
+u
+n
+n
+d
+bedquilt
+throw axe
+take axe
+slab
+s
+d
+water plant
+u
+w
+u
+reservoir
+H'CFL
+n
+n
+nw
+u
+u
+u
+u
+ne
+take ebony
+sw
+d
+d
+d
+d
+d
+take water
+s
+s
+s
+s
+d
+s
+d
+water plant
+u
+drop appendage
+e
+d
+get oil
+
+u
+w
+d
+climb
+w
+n
+oil door
+drop bottle
+n
+take trident
+w
+d
+se
+n
+w
+drop trident
+drop ebony
+drop axe
+drop lantern
+e
+take emerald
+w
+take lamp
+take axe
+take ebony
+take trident
+nw
+s
+take vase
+se
+throw axe
+take axe
+e
+take pillow
+w
+drop axe
+ne
+e
+n
+open clam
+s
+u
+e
+u
+n
+off
+plugh
+drop pillow
+drop vase
+drop trident
+drop emerald
+drop ebony
+take keys
+take food
+plugh
+on
+s
+d
+w
+d
+n
+d
+d
+take pearl
+u
+u
+s
+w
+w
+w
+w
+d
+climb
+w
+get eggs
+n
+take bottle
+n
+w
+d
+sw
+u
+toss eggs
+ne
+ne
+barren
+in
+feed bear
+unlock chain
+take chain
+take bear
+fork
+ne
+e
+take spices
+drop keys
+fork
+w
+w
+sw
+free bear
+inven
+sw
+sw
+d
+se
+se
+w
+d
+get oil
+up
+e
+take axe
+w
+w
+d
+climb
+w
+fee
+fie
+foe
+foo
+take eggs
+s
+d
+u
+w
+u
+s
+e
+e
+n
+n
+off
+plugh
+drop eggs
+drop pearl
+drop spices
+drop chain
+take rug
+take ruby
+take emerald
+out
+w
+n
+n
+n
+inven
+fill urn
+light urn
+rub urn
+take amber
+drop rug
+drop emerald
+fly rug
+take sapphire
+fly rug
+take emerald
+drop ruby
+take rug
+drop bottle
+take ruby
+e
+s
+e
+e
+in
+drop ruby
+drop sapphire
+drop amber
+drop rug
+look
+plugh
+on
+s
+s
+u
+w
+w
+w
+s
+e
+s
+throw axe
+take axe
+s
+s
+n
+e
+e
+nw
+take emerald
+take chest
+se
+n
+d
+e
+e
+off
+xyzzy
+drop emerald
+drop chest
+plugh
+on
+s
+d
+w
+d
+e
+take magazine
+e
+drop magazine
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+u
+u
+e
+u
+n
+plover
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+e
+# Everything to here is from endgame428
+sw
+break mirror
+
+
index 1216bb7683dc336ecd7c473d3151edef6081c861..4dad3140f21acea925595cdfbea33fe008d3bc08 100644 (file)
@@ -1297,10 +1297,6 @@ You're in n/s passage above e/w passage.
 
 You're in Hall of Mt King.
 
-> drop axe
-
-OK
-
 > e
 
 You're in Hall of Mists.
@@ -1380,10 +1376,7 @@ The pirate's treasure chest is here!
 You are currently holding the following:
 Brass lantern
 Velvet pillow
-
-> take ebony
-
-OK
+Dwarf's axe
 
 > take vase
 
@@ -1457,10 +1450,6 @@ There is food here.
 
 OK
 
-> drop ebony
-
-OK
-
 > drop pillow
 
 OK
@@ -1601,7 +1590,11 @@ The way north leads through a massive, rusty, iron door.
 
 > take bottle
 
-OK
+You can't carry anything more.  You'll have to drop something first.
+
+> pour bottle
+
+Bottl what?
 
 > n
 
@@ -1670,7 +1663,11 @@ There is a ferocious cave bear eying you from the far end of the room!
 
 The bear is locked to the wall with a golden chain!
 
-> feed bear
+> throw axe
+
+The axe misses and lands near the bear where you can't get at it.
+
+> throw food
 
 The bear eagerly wolfs down your food, after which he seems to calm
 down considerably and even becomes rather friendly.
@@ -1700,15 +1697,14 @@ OK
 You are currently holding the following:
 Set of keys
 Brass lantern
-Small bottle
 Egg-sized emerald
 Glistening pearl
 
 You are being followed by a very large, tame bear.
 
 
-You scored 239 out of a possible 430, using 295 turns.
+You scored 225 out of a possible 430, using 294 turns.
 
 You may now consider yourself a "Seasoned Adventurer".
 
-To achieve the next higher rating, you need 12 more points.
+To achieve the next higher rating, you need 26 more points.
index e67c83f1a53efb76105e4de2a5f99c9079367876..d2d337cb3baadcc3c3ec324b6aba747a356ec170 100644 (file)
@@ -223,7 +223,6 @@ u
 e
 u
 s
-drop axe
 e
 w
 w
@@ -238,7 +237,6 @@ e
 e
 nw
 inven
-take ebony
 take vase
 take trident
 take chest
@@ -251,7 +249,6 @@ e
 off
 xyzzy
 drop chest
-drop ebony
 drop pillow
 drop vase
 drop trident
@@ -279,7 +276,9 @@ climb
 w
 get eggs
 n
+# Test for "Ground wet" message
 take bottle
+pour bottle
 n
 w
 d
@@ -291,7 +290,8 @@ ne
 ne
 barren
 in
-feed bear
+throw axe
+throw food
 take chain
 unlock chain
 # Also tests message from bear in inventory
diff --git a/tests/logopt.chk b/tests/logopt.chk
new file mode 100644 (file)
index 0000000..1ed3c78
--- /dev/null
@@ -0,0 +1,26 @@
+
+Welcome to Adventure!!  Would you like instructions?
+
+> > > 
+You are standing at the end of a road before a small brick building.
+Around you is a forest.  A small stream flows out of the building and
+down a gully.
+
+> 
+You are inside a building, a well house for a large spring.
+
+There are some keys on the ground here.
+
+There is a shiny brass lamp nearby.
+
+There is food here.
+
+There is a bottle of water here.
+
+> 
+> 
+You scored 32 out of a possible 430, using 1 turn.
+
+You are obviously a rank amateur.  Better luck next time.
+
+To achieve the next higher rating, you need 14 more points.
diff --git a/tests/logopt.log b/tests/logopt.log
new file mode 100644 (file)
index 0000000..204f8a3
--- /dev/null
@@ -0,0 +1,5 @@
+## Exercise logging option and seed dump
+#options: -s -l scratch.tmp
+n
+in
+
index 6cdd9037fefb83ce9cdec6362d32b0e2635a6f43..4ad9864a7222325bc0f0e87588c366046350f515 100644 (file)
@@ -7,8 +7,8 @@ You are standing at the end of a road before a small brick building.
 Around you is a forest.  A small stream flows out of the building and
 down a gully.
 
-> seed 1924231168
-Seed set to 1924231168
+> seed 739688815
+Seed set to 739688815
 
 You're in front of building.
 
@@ -507,10 +507,6 @@ You are in a maze of twisty little passages, all alike.
 
 There is a little axe here.
 
-> thake axe
-
-Sorry, I don't know the word "THAKE".
-
 > take axe
 
 OK
@@ -524,10 +520,6 @@ You are in a maze of twisty little passages, all alike.
 
 There is a little axe here.
 
-> taje axe
-
-Sorry, I don't know the word "TAJE".
-
 > take axe
 
 OK
@@ -584,17 +576,55 @@ You are in a maze of twisty little passages, all alike.
 
 You are in a maze of twisty little passages, all alike.
 
-> inven
+> n
+
+You are in a maze of twisty little passages, all alike.
+
+> s
+
+You are in a maze of twisty little passages, all alike.
+
+> e
+
+Dead end
+
+> w
+
+You are in a maze of twisty little passages, all alike.
+
+> n
+
+You are in a maze of twisty little passages, all alike.
+
+> s
+
+You are in a maze of twisty little passages, all alike.
+
+> e
+
+You are in a maze of twisty little passages, all alike.
+
+> sw
+
+There is no way to go that direction.
+
+You are in a maze of twisty little passages, all alike.
+
+Do you need help getting out of the maze?
+
+> y
+
+I am prepared to give you a hint, but it will cost you 4 points.
+
+Do you want the hint?
+
+> y
 
-You are currently holding the following:
-Brass lantern
-Wicker cage
-Little bird in cage
-Dwarf's axe
+You can make the passages look less alike by dropping things.
 
 
-You scored 75 out of a possible 430, using 108 turns.
+You scored 71 out of a possible 430, using 113 turns.
 
 Your score qualifies you as a novice class adventurer.
 
-To achieve the next higher rating, you need 46 more points.
+To achieve the next higher rating, you need 50 more points.
index 628ff3159477aacc9f204fd1f7ae728e6d5c515a..0d54f5e03a0ef02948985866e5ff8643d9e936a2 100644 (file)
@@ -1,5 +1,5 @@
 n
-seed 1924231168
+seed 739688815
 seed 1071883378
 in
 take lamp
@@ -90,10 +90,8 @@ w
 throw axe
 take axe
 throw axe
-thake axe
 take axe
 throw axe
-taje axe
 take axe
 w
 w
@@ -108,4 +106,13 @@ w
 w
 w
 w
-inven
+n
+s
+e
+w
+n
+s
+e
+sw
+y
+y
index d7020e49f6b3f991e074528005b4ec5070cb00e1..9dd30363afca5140b7652dfa7fc1915e96d72152 100644 (file)
@@ -96,6 +96,10 @@ It is now pitch dark.  If you proceed you will likely fall into a pit.
 
 Read what?
 
+> read keys
+
+I see no keys here.
+
 > on lamp
 
 Your lamp is now on.
@@ -137,7 +141,7 @@ have no bird seed.
 The little bird is now dead.  Its body disappears.
 
 
-You scored 32 out of a possible 430, using 23 turns.
+You scored 32 out of a possible 430, using 24 turns.
 
 You are obviously a rank amateur.  Better luck next time.
 
index 64831f33f5333034478720834361d495d3ffaea0..801a991e8ad656a77e9f9c664af295159e4a5c23 100644 (file)
@@ -17,6 +17,7 @@ w
 take cage
 w
 read
+read keys
 on lamp
 read
 w