Annotation of gforth/sokoban.fs, revision 1.7

1.1       pazsan      1: \ sokoban - a maze game in FORTH
                      2: 
1.6       anton       3: \ Copyright (C) 1995,1997,1998,2003 Free Software Foundation, Inc.
1.5       anton       4: 
                      5: \ This file is part of Gforth.
                      6: 
                      7: \ Gforth is free software; you can redistribute it and/or
                      8: \ modify it under the terms of the GNU General Public License
                      9: \ as published by the Free Software Foundation; either version 2
                     10: \ of the License, or (at your option) any later version.
                     11: 
                     12: \ This program is distributed in the hope that it will be useful,
                     13: \ but WITHOUT ANY WARRANTY; without even the implied warranty of
                     14: \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     15: \ GNU General Public License for more details.
                     16: 
                     17: \ You should have received a copy of the GNU General Public License
                     18: \ along with this program; if not, write to the Free Software
                     19: \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
                     20: 
1.1       pazsan     21: \ Contest from Rick VanNorman in comp.lang.forth
                     22: 
                     23: \ SOKOBAN
                     24: 
                     25: \ Sokoban is a visual game of pushing.  You (Soko) are represented by the
                     26: \ at-sign "@"  You may move freely through the maze on unoccupied spaces.
                     27: \ The dollar-signs "$" are the rocks you have to push. You can only push
                     28: \ one rock at a time, and cannot push a rock through a wall "#" or over
                     29: \ another rock. The object is to push the rocks to their goals which are
                     30: \ indicated by the periods ".".  There are 50 levels, the first of which
                     31: \ is shown below.
                     32: 
                     33: \ program is ANS FORTH with environmental dependency of case-insensitiv
1.2       pazsan     34: \ source. Tested with gforth, bigFORTH and pfe
1.1       pazsan     35: 
1.2       pazsan     36: \ bell (7) is replaced with "Wuff!" ;-)
1.1       pazsan     37: \ (this is a german joke)
                     38: \ I don't like the keyboard interpreting CASE-statement either, but
                     39: \ was to lazy to use a table.
                     40: \ I could have used blocks as level tables, but as I don't have a good
                     41: \ block editor for gforth now, I let it be.
                     42: 
                     43: 40 Constant /maze  \ maximal maze line
                     44: 
                     45: Create maze  1 cells allot /maze 25 * allot  \ current maze
                     46: Variable mazes   0 mazes !  \ root pointer
                     47: Variable soko    0 soko !   \ player position
                     48: Variable >maze   0 >maze !  \ current compiled maze
                     49: 
                     50: \ score information
                     51: 
                     52: Variable rocks     0 rocks !  \ number of rocks left
                     53: Variable level#    0 level# ! \ Current level
                     54: Variable moves     0 moves !  \ number of moves
                     55: Variable score     0 score !  \ total number of scores
                     56: 
                     57: : new-maze ( n -- addr ) \ add a new level
                     58:     here mazes rot 1 ?DO  @  LOOP  !
                     59:     0 , 0 , here >maze ! 0 , ;
                     60: : count-$ ( addr u -- n )  0 rot rot
1.2       pazsan     61:     over + swap ?DO  I c@ [char] $ = -  LOOP ;
1.1       pazsan     62: : m: ( "string" -- )  \ add a level line (top first!)
                     63:     -1 parse tuck 2dup count-$ >maze @ 1 cells - +!
                     64:     here swap move dup allot
                     65:     /maze swap - here over bl fill allot
                     66:     >maze @ here over cell+ - swap ! ;
                     67: 
                     68: : maze-field ( -- addr n )
                     69:     maze dup cell+ swap @ chars ;
                     70: 
                     71: : .score ( -- )
                     72:     ." Level: " level# @ 2 .r ."  Score: " score @ 4 .r
                     73:     ."  Moves: " moves @ 6 .r ."  Rocks: " rocks @ 2 .r ;
                     74: 
                     75: : .maze ( -- )  \ display maze
                     76:     0 0 at-xy  .score
1.2       pazsan     77:     cr  maze-field over + swap
1.1       pazsan     78:     DO  I /maze type cr  /maze chars  +LOOP ;
                     79: 
                     80: : find-soko ( -- n )
                     81:     maze-field 0
                     82:     DO  dup I chars + c@ [char] @ =
                     83:        IF  drop I  UNLOOP  EXIT  THEN
                     84:     LOOP  true abort" No player in field!" ;
                     85: 
                     86: : level ( n -- flag )  \ finds level n
                     87:     dup level# !
                     88:     mazes  swap 0
                     89:     ?DO  @  dup 0= IF  drop false  UNLOOP  EXIT  THEN  LOOP
                     90:     cell+ dup @ rocks !
                     91:     cell+ dup @ cell+ maze swap chars move
                     92:     find-soko soko ! true ;
                     93: 
                     94: \ now the playing rules as replacement strings
                     95: 
                     96: : 'soko ( -- addr ) \ gives player's address
                     97:     maze cell+ soko @ chars + ;
                     98: 
                     99: : apply-rule? ( addr u offset -- flag )
                    100:     'soko 2swap
                    101:     \ offset soko-addr addr u
                    102:     0 DO
                    103:        over c@ over c@ <>
                    104:        IF  drop 2drop false  UNLOOP  EXIT  THEN
                    105:        >r over chars + r> char+
                    106:     LOOP  2drop drop  true ;
                    107: 
                    108: : apply-rule! ( addr u offset -- )
                    109:     'soko
                    110:     2swap
                    111:     \ offset soko-addr addr u
                    112:     0 DO
                    113:        count rot tuck c! rot tuck chars + rot
                    114:     LOOP  2drop drop ;
                    115: 
                    116: : play-rule ( addr1 u1 addr2 u2 offset -- flag )
                    117:     >r 2swap r@  apply-rule?
1.2       pazsan    118:     IF  r> apply-rule! true  ELSE  r> drop 2drop false  THEN ;
1.1       pazsan    119: 
                    120: \ player may move up, down, left and right
                    121: 
                    122: : move:  ( offset -- )
                    123:     Create ,
                    124:     DOES>  @ >r  1 moves +!
                    125:        S" @ "  S"  @"  r@ play-rule  IF  r> soko +!  EXIT  THEN
                    126:        S" @."  S"  &"  r@ play-rule  IF  r> soko +!  EXIT  THEN
                    127:        S" @$ " S"  @$" r@ play-rule  IF  r> soko +!  EXIT  THEN
                    128:        S" @*." S"  &*" r@ play-rule  IF  r> soko +!  EXIT  THEN
                    129:        S" @* " S"  &$" r@ play-rule
                    130:              IF  r> soko +!  1 rocks +! -1 score +!  EXIT  THEN
                    131:        S" @$." S"  @*" r@ play-rule
                    132:              IF  r> soko +! -1 rocks +!  1 score +!  EXIT  THEN
                    133:        S" &*." S" .&*" r@ play-rule  IF  r> soko +!  EXIT  THEN
                    134:        S" &$ " S" .@$" r@ play-rule  IF  r> soko +!  EXIT  THEN
                    135:        S" & "  S" .@"  r@ play-rule  IF  r> soko +!  EXIT  THEN
                    136:        S" &."  S" .&"  r@ play-rule  IF  r> soko +!  EXIT  THEN
                    137:        S" &* " S" .&$" r@ play-rule
                    138:              IF  r> soko +!  1 rocks +! -1 score +!  EXIT  THEN
1.4       pazsan    139:        S" &$." S" .@*" r@ play-rule
1.7     ! pazsan    140:              IF  r> soko +! -1 rocks +!  1 score +!  EXIT  THEN
1.2       pazsan    141:        -1 moves +!  r> drop  ;
1.1       pazsan    142: 
                    143: 1            move: soko-right
                    144: -1           move: soko-left
                    145: /maze        move: soko-down
                    146: /maze negate move: soko-up
                    147: 
                    148: : print-help
                    149:     ." Move soko '@' with h, j, k or l key (like vi)" cr
                    150:     ." or with vt100 cursor keys." cr ;
                    151: 
                    152: : play-loop ( -- )
                    153:     BEGIN
                    154:        rocks @ 0=
                    155:        IF
                    156:            level# @ 1+ level  0= IF  EXIT  THEN
                    157:        THEN
                    158:        .maze
                    159:        key
                    160:        CASE
                    161:            [char] ? OF  print-help false  ENDOF
                    162:            
                    163:            [char] h OF  soko-left  false  ENDOF
                    164:            [char] j OF  soko-down  false  ENDOF
                    165:            [char] k OF  soko-up    false  ENDOF
                    166:            [char] l OF  soko-right false  ENDOF
                    167: 
                    168:            \ vt100 cursor keys should work too
                    169:            27       OF  key [char] [ <>   ENDOF
                    170:            [char] D OF  soko-left  false  ENDOF
                    171:            [char] B OF  soko-down  false  ENDOF
                    172:            [char] A OF  soko-up    false  ENDOF
                    173:            [char] C OF  soko-right false  ENDOF
                    174: 
                    175:            [char] q OF  true              ENDOF
1.2       pazsan    176:        false swap  ENDCASE
1.1       pazsan    177:     UNTIL ;
                    178: 
                    179: \ start game with "sokoban"
                    180: 
                    181: : sokoban ( -- )
1.2       pazsan    182:     page 1 level IF  play-loop ." Game finished!"  THEN ;
1.1       pazsan    183:     
                    184: 001 new-maze
                    185: m:     #####
                    186: m:     #   #
                    187: m:     #$  #
                    188: m:   ###  $##
                    189: m:   #  $ $ #
                    190: m: ### # ## #   ######
                    191: m: #   # ## #####  ..#
                    192: m: # $  $          ..#
                    193: m: ##### ### #@##  ..#
                    194: m:     #     #########
                    195: m:     #######
                    196: 002 new-maze
                    197: m: ############
                    198: m: #..  #     ###
                    199: m: #..  # $  $  #
                    200: m: #..  #$####  #
                    201: m: #..    @ ##  #
                    202: m: #..  # #  $ ##
                    203: m: ###### ##$ $ #
                    204: m:   # $  $ $ $ #
                    205: m:   #    #     #
                    206: m:   ############
                    207: 003 new-maze
                    208: m:         ########
                    209: m:         #     @#
                    210: m:         # $#$ ##
                    211: m:         # $  $#
                    212: m:         ##$ $ #
                    213: m: ######### $ # ###
                    214: m: #....  ## $  $  #
                    215: m: ##...    $  $   #
                    216: m: #....  ##########
                    217: m: ########
                    218: 004 new-maze
                    219: m:            ########
                    220: m:            #  ....#
                    221: m: ############  ....#
                    222: m: #    #  $ $   ....#
                    223: m: # $$$#$  $ #  ....#
                    224: m: #  $     $ #  ....#
                    225: m: # $$ #$ $ $########
                    226: m: #  $ #     #
                    227: m: ## #########
                    228: m: #    #    ##
                    229: m: #     $   ##
                    230: m: #  $$#$$  @#
                    231: m: #    #    ##
                    232: m: ###########
                    233: 005 new-maze
                    234: m:         #####
                    235: m:         #   #####
                    236: m:         # #$##  #
                    237: m:         #     $ #
                    238: m: ######### ###   #
                    239: m: #....  ## $  $###
                    240: m: #....    $ $$ ##
                    241: m: #....  ##$  $ @#
                    242: m: #########  $  ##
                    243: m:         # $ $  #
                    244: m:         ### ## #
                    245: m:           #    #
                    246: m:           ######
                    247: 006 new-maze
                    248: m: ######  ###
                    249: m: #..  # ##@##
                    250: m: #..  ###   #
                    251: m: #..     $$ #
                    252: m: #..  # # $ #
                    253: m: #..### # $ #
                    254: m: #### $ #$  #
                    255: m:    #  $# $ #
                    256: m:    # $  $  #
                    257: m:    #  ##   #
                    258: m:    #########
                    259: 007 new-maze
                    260: m:        #####
                    261: m:  #######   ##
                    262: m: ## # @## $$ #
                    263: m: #    $      #
                    264: m: #  $  ###   #
                    265: m: ### #####$###
                    266: m: # $  ### ..#
                    267: m: # $ $ $ ...#
                    268: m: #    ###...#
                    269: m: # $$ # #...#
                    270: m: #  ### #####
                    271: m: ####
                    272: 008 new-maze
                    273: m:   ####
                    274: m:   #  ###########
                    275: m:   #    $   $ $ #
                    276: m:   # $# $ #  $  #
                    277: m:   #  $ $  #    #
                    278: m: ### $# #  #### #
                    279: m: #@#$ $ $  ##   #
                    280: m: #    $ #$#   # #
                    281: m: #   $    $ $ $ #
                    282: m: #####  #########
                    283: m:   #      #
                    284: m:   #      #
                    285: m:   #......#
                    286: m:   #......#
                    287: m:   #......#
                    288: m:   ########
                    289: 009 new-maze
                    290: m:           #######
                    291: m:           #  ...#
                    292: m:       #####  ...#
                    293: m:       #      . .#
                    294: m:       #  ##  ...#
                    295: m:       ## ##  ...#
                    296: m:      ### ########
                    297: m:      # $$$ ##
                    298: m:  #####  $ $ #####
                    299: m: ##   #$ $   #   #
                    300: m: #@ $  $    $  $ #
                    301: m: ###### $$ $ #####
                    302: m:      #      #
                    303: m:      ########
                    304: 010 new-maze
                    305: m:  ###  #############
                    306: m: ##@####       #   #
                    307: m: # $$   $$  $ $ ...#
                    308: m: #  $$$#    $  #...#
                    309: m: # $   # $$ $$ #...#
                    310: m: ###   #  $    #...#
                    311: m: #     # $ $ $ #...#
                    312: m: #    ###### ###...#
                    313: m: ## #  #  $ $  #...#
                    314: m: #  ## # $$ $ $##..#
                    315: m: # ..# #  $      #.#
                    316: m: # ..# # $$$ $$$ #.#
                    317: m: ##### #       # #.#
                    318: m:     # ######### #.#
                    319: m:     #           #.#
                    320: m:     ###############
                    321: 011 new-maze
                    322: m:           ####
                    323: m:      #### #  #
                    324: m:    ### @###$ #
                    325: m:   ##      $  #
                    326: m:  ##  $ $$## ##
                    327: m:  #  #$##     #
                    328: m:  # # $ $$ # ###
                    329: m:  #   $ #  # $ #####
                    330: m: ####    #  $$ #   #
                    331: m: #### ## $         #
                    332: m: #.    ###  ########
                    333: m: #.. ..# ####
                    334: m: #...#.#
                    335: m: #.....#
                    336: m: #######
                    337: 012 new-maze
                    338: m: ################
                    339: m: #              #
                    340: m: # # ######     #
                    341: m: # #  $ $ $ $#  #
                    342: m: # #   $@$   ## ##
                    343: m: # #  $ $ $###...#
                    344: m: # #   $ $  ##...#
                    345: m: # ###$$$ $ ##...#
                    346: m: #     # ## ##...#
                    347: m: #####   ## ##...#
                    348: m:     #####     ###
                    349: m:         #     #
                    350: m:         #######
                    351: 013 new-maze
                    352: m: ##### ####
                    353: m: #...# #  ####
                    354: m: #...###  $  #
                    355: m: #....## $  $###
                    356: m: ##....##   $  #
                    357: m: ###... ## $ $ #
                    358: m: # ##    #  $  #
                    359: m: #  ## # ### ####
                    360: m: # $ # #$  $    #
                    361: m: #  $ @ $    $  #
                    362: m: #   # $ $$ $ ###
                    363: m: #  ######  ###
                    364: m: # ##    ####
                    365: m: ###
                    366: 014 new-maze
                    367: m:    #########
                    368: m:   ##   ##  ######
                    369: m: ###     #  #    ###
                    370: m: #  $ #$ #  #  ... #
                    371: m: # # $#@$## # #.#. #
                    372: m: #  # #$  #    . . #
                    373: m: # $    $ # # #.#. #
                    374: m: #   ##  ##$ $ . . #
                    375: m: # $ #   #  #$#.#. #
                    376: m: ## $  $   $  $... #
                    377: m:  #$ ######    ##  #
                    378: m:  #  #    ##########
                    379: m:  ####
                    380: 015 new-maze
                    381: m:        #######
                    382: m:  #######     #
                    383: m:  #     # $@$ #
                    384: m:  #$$ #   #########
                    385: m:  # ###......##   #
                    386: m:  #   $......## # #
                    387: m:  # ###......     #
                    388: m: ##   #### ### #$##
                    389: m: #  #$   #  $  # #
                    390: m: #  $ $$$  # $## #
                    391: m: #   $ $ ###$$ # #
                    392: m: #####     $   # #
                    393: m:     ### ###   # #
                    394: m:       #     #   #
                    395: m:       ########  #
                    396: m:              ####
                    397: 016 new-maze
                    398: m:    ########
                    399: m:    #   #  #
                    400: m:    #  $   #
                    401: m:  ### #$   ####
                    402: m:  #  $  ##$   #
                    403: m:  #  # @ $ # $#
                    404: m:  #  #      $ ####
                    405: m:  ## ####$##     #
                    406: m:  # $#.....# #   #
                    407: m:  #  $..**. $# ###
                    408: m: ##  #.....#   #
                    409: m: #   ### #######
                    410: m: # $$  #  #
                    411: m: #  #     #
                    412: m: ######   #
                    413: m:      #####
                    414: 017 new-maze
                    415: m: #####
                    416: m: #   ##
                    417: m: #    #  ####
                    418: m: # $  ####  #
                    419: m: #  $$ $   $#
                    420: m: ###@ #$    ##
                    421: m:  #  ##  $ $ ##
                    422: m:  # $  ## ## .#
                    423: m:  #  #$##$  #.#
                    424: m:  ###   $..##.#
                    425: m:   #    #.*...#
                    426: m:   # $$ #.....#
                    427: m:   #  #########
                    428: m:   #  #
                    429: m:   ####
                    430: 018 new-maze
                    431: m:    ##########
                    432: m:    #..  #   #
                    433: m:    #..      #
                    434: m:    #..  #  ####
                    435: m:   #######  #  ##
                    436: m:   #            #
                    437: m:   #  #  ##  #  #
                    438: m: #### ##  #### ##
                    439: m: #  $  ##### #  #
                    440: m: # # $  $  # $  #
                    441: m: # @$  $   #   ##
                    442: m: #### ## #######
                    443: m:    #    #
                    444: m:    ######
                    445: 019 new-maze
                    446: m:      ###########
                    447: m:      #  .  #   #
                    448: m:      # #.    @ #
                    449: m:  ##### ##..# ####
                    450: m: ##  # ..###     ###
                    451: m: # $ #...   $ #  $ #
                    452: m: #    .. ##  ## ## #
                    453: m: ####$##$# $ #   # #
                    454: m:   ## #    #$ $$ # #
                    455: m:   #  $ # #  # $## #
                    456: m:   #               #
                    457: m:   #  ###########  #
                    458: m:   ####         ####
                    459: 020 new-maze
                    460: m:   ######
                    461: m:   #   @####
                    462: m: ##### $   #
                    463: m: #   ##    ####
                    464: m: # $ #  ##    #
                    465: m: # $ #  ##### #
                    466: m: ## $  $    # #
                    467: m: ## $ $ ### # #
                    468: m: ## #  $  # # #
                    469: m: ## # #$#   # #
                    470: m: ## ###   # # ######
                    471: m: #  $  #### # #....#
                    472: m: #    $    $   ..#.#
                    473: m: ####$  $# $   ....#
                    474: m: #       #  ## ....#
                    475: m: ###################
                    476: 021 new-maze
                    477: m:     ##########
                    478: m: #####        ####
                    479: m: #     #   $  #@ #
                    480: m: # #######$####  ###
                    481: m: # #    ## #  #$ ..#
                    482: m: # # $     #  #  #.#
                    483: m: # # $  #     #$ ..#
                    484: m: # #  ### ##     #.#
                    485: m: # ###  #  #  #$ ..#
                    486: m: # #    #  ####  #.#
                    487: m: # #$   $  $  #$ ..#
                    488: m: #    $ # $ $ #  #.#
                    489: m: #### $###    #$ ..#
                    490: m:    #    $$ ###....#
                    491: m:    #      ## ######
                    492: m:    ########
                    493: 022 new-maze
                    494: m: #########
                    495: m: #       #
                    496: m: #       ####
                    497: m: ## #### #  #
                    498: m: ## #@##    #
                    499: m: # $$$ $  $$#
                    500: m: #  # ## $  #
                    501: m: #  # ##  $ ####
                    502: m: ####  $$$ $#  #
                    503: m:  #   ##   ....#
                    504: m:  # #   # #.. .#
                    505: m:  #   # # ##...#
                    506: m:  ##### $  #...#
                    507: m:      ##   #####
                    508: m:       #####
                    509: 023 new-maze
                    510: m: ######     ####
                    511: m: #    #######  #####
                    512: m: #   $#  #  $  #   #
                    513: m: #  $  $  $ # $ $  #
                    514: m: ##$ $   # @# $    #
                    515: m: #  $ ########### ##
                    516: m: # #   #.......# $#
                    517: m: # ##  # ......#  #
                    518: m: # #   $........$ #
                    519: m: # # $ #.... ..#  #
                    520: m: #  $ $####$#### $#
                    521: m: # $   ### $   $  ##
                    522: m: # $     $ $  $    #
                    523: m: ## ###### $ ##### #
                    524: m: #         #       #
                    525: m: ###################
                    526: 024 new-maze
                    527: m:     #######
                    528: m:     #  #  ####
                    529: m: ##### $#$ #  ##
                    530: m: #.. #  #  #   #
                    531: m: #.. # $#$ #  $####
                    532: m: #.  #     #$  #  #
                    533: m: #..   $#  # $    #
                    534: m: #..@#  #$ #$  #  #
                    535: m: #.. # $#     $#  #
                    536: m: #.. #  #$$#$  #  ##
                    537: m: #.. # $#  #  $#$  #
                    538: m: #.. #  #  #   #   #
                    539: m: ##. ####  #####   #
                    540: m:  ####  ####   #####
                    541: 025 new-maze
                    542: m: ###############
                    543: m: #..........  .####
                    544: m: #..........$$.#  #
                    545: m: ###########$ #   ##
                    546: m: #      $  $     $ #
                    547: m: ## ####   #  $ #  #
                    548: m: #      #   ##  # ##
                    549: m: #  $#  # ##  ### ##
                    550: m: # $ #$###    ### ##
                    551: m: ###  $ #  #  ### ##
                    552: m: ###    $ ## #  # ##
                    553: m:  # $  #  $  $ $   #
                    554: m:  #  $  $#$$$  #   #
                    555: m:  #  #  $      #####
                    556: m:  # @##  #  #  #
                    557: m:  ##############
                    558: 026 new-maze
                    559: m: ####
                    560: m: #  ##############
                    561: m: #  #   ..#......#
                    562: m: #  # # ##### ...#
                    563: m: ##$#    ........#
                    564: m: #   ##$######  ####
                    565: m: # $ #     ######@ #
                    566: m: ##$ # $   ######  #
                    567: m: #  $ #$$$##       #
                    568: m: #      #    #$#$###
                    569: m: # #### #$$$$$    #
                    570: m: # #    $     #   #
                    571: m: # #   ##        ###
                    572: m: # ######$###### $ #
                    573: m: #        #    #   #
                    574: m: ##########    #####
                    575: 027 new-maze
                    576: m:  #######
                    577: m:  #  #  #####
                    578: m: ##  #  #...###
                    579: m: #  $#  #...  #
                    580: m: # $ #$$ ...  #
                    581: m: #  $#  #... .#
                    582: m: #   # $########
                    583: m: ##$       $ $ #
                    584: m: ##  #  $$ #   #
                    585: m:  ######  ##$$@#
                    586: m:       #      ##
                    587: m:       ########
                    588: 028 new-maze
                    589: m:  #################
                    590: m:  #...   #    #   ##
                    591: m: ##.....  $## # #$ #
                    592: m: #......#  $  #    #
                    593: m: #......#  #  # #  #
                    594: m: ######### $  $ $  #
                    595: m:   #     #$##$ ##$##
                    596: m:  ##   $    # $    #
                    597: m:  #  ## ### #  ##$ #
                    598: m:  # $ $$     $  $  #
                    599: m:  # $    $##$ ######
                    600: m:  #######  @ ##
                    601: m:        ######
                    602: 029 new-maze
                    603: m:          #####
                    604: m:      #####   #
                    605: m:     ## $  $  ####
                    606: m: ##### $  $ $ ##.#
                    607: m: #       $$  ##..#
                    608: m: #  ###### ###.. #
                    609: m: ## #  #    #... #
                    610: m: # $   #    #... #
                    611: m: #@ #$ ## ####...#
                    612: m: ####  $ $$  ##..#
                    613: m:    ##  $ $  $...#
                    614: m:     # $$  $ #  .#
                    615: m:     #   $ $  ####
                    616: m:     ######   #
                    617: m:          #####
                    618: 030 new-maze
                    619: m: #####
                    620: m: #   ##
                    621: m: # $  #########
                    622: m: ## # #       ######
                    623: m: ## #   $#$#@  #   #
                    624: m: #  #      $ #   $ #
                    625: m: #  ### ######### ##
                    626: m: #  ## ..*..... # ##
                    627: m: ## ## *.*..*.* # ##
                    628: m: # $########## ##$ #
                    629: m: #  $   $  $    $  #
                    630: m: #  #   #   #   #  #
                    631: m: ###################
                    632: 031 new-maze
                    633: m:        ###########
                    634: m:        #   #     #
                    635: m: #####  #     $ $ #
                    636: m: #   ##### $## # ##
                    637: m: # $ ##   # ## $  #
                    638: m: # $  @$$ # ##$$$ #
                    639: m: ## ###   # ##    #
                    640: m: ## #   ### #####$#
                    641: m: ## #     $  #....#
                    642: m: #  ### ## $ #....##
                    643: m: # $   $ #   #..$. #
                    644: m: #  ## $ #  ##.... #
                    645: m: #####   ######...##
                    646: m:     #####    #####
                    647: 032 new-maze
                    648: m:   ####
                    649: m:   #  #########
                    650: m:  ##  ##  #   #
                    651: m:  #  $# $@$   ####
                    652: m:  #$  $  # $ $#  ##
                    653: m: ##  $## #$ $     #
                    654: m: #  #  # #   $$$  #
                    655: m: # $    $  $## ####
                    656: m: # $ $ #$#  #  #
                    657: m: ##  ###  ###$ #
                    658: m:  #  #....     #
                    659: m:  ####......####
                    660: m:    #....####
                    661: m:    #...##
                    662: m:    #...#
                    663: m:    #####
                    664: 033 new-maze
                    665: m:       ####
                    666: m:   #####  #
                    667: m:  ##     $#
                    668: m: ## $  ## ###
                    669: m: #@$ $ # $  #
                    670: m: #### ##   $#
                    671: m:  #....#$ $ #
                    672: m:  #....#   $#
                    673: m:  #....  $$ ##
                    674: m:  #... # $   #
                    675: m:  ######$ $  #
                    676: m:       #   ###
                    677: m:       #$ ###
                    678: m:       #  #
                    679: m:       ####
                    680: 034 new-maze
                    681: m: ############
                    682: m: ##     ##  #
                    683: m: ##   $   $ #
                    684: m: #### ## $$ #
                    685: m: #   $ #    #
                    686: m: # $$$ # ####
                    687: m: #   # # $ ##
                    688: m: #  #  #  $ #
                    689: m: # $# $#    #
                    690: m: #   ..# ####
                    691: m: ####.. $ #@#
                    692: m: #.....# $# #
                    693: m: ##....#  $ #
                    694: m: ###..##    #
                    695: m: ############
                    696: 035 new-maze
                    697: m:  #########
                    698: m:  #....   ##
                    699: m:  #.#.#  $ ##
                    700: m: ##....# # @##
                    701: m: # ....#  #  ##
                    702: m: #     #$ ##$ #
                    703: m: ## ###  $    #
                    704: m:  #$  $ $ $#  #
                    705: m:  # #  $ $ ## #
                    706: m:  #  ###  ##  #
                    707: m:  #    ## ## ##
                    708: m:  #  $ #  $  #
                    709: m:  ###$ $   ###
                    710: m:    #  #####
                    711: m:    ####
                    712: 036 new-maze
                    713: m: ############ ######
                    714: m: #   #    # ###....#
                    715: m: #   $$#   @  .....#
                    716: m: #   # ###   # ....#
                    717: m: ## ## ###  #  ....#
                    718: m:  # $ $     # # ####
                    719: m:  #  $ $##  #      #
                    720: m: #### #  #### # ## #
                    721: m: #  # #$   ## #    #
                    722: m: # $  $  # ## #   ##
                    723: m: # # $ $    # #   #
                    724: m: #  $ ## ## # #####
                    725: m: # $$     $$  #
                    726: m: ## ## ### $  #
                    727: m:  #    # #    #
                    728: m:  ###### ######
                    729: 037 new-maze
                    730: m:             #####
                    731: m: #####  ######   #
                    732: m: #   ####  $ $ $ #
                    733: m: # $   ## ## ##  ##
                    734: m: #   $ $     $  $ #
                    735: m: ### $  ## ##     ##
                    736: m:   # ##### #####$$ #
                    737: m:  ##$##### @##     #
                    738: m:  # $  ###$### $  ##
                    739: m:  # $  #   ###  ###
                    740: m:  # $$ $ #   $$ #
                    741: m:  #     #   ##  #
                    742: m:  #######.. .###
                    743: m:     #.........#
                    744: m:     #.........#
                    745: m:     ###########
                    746: 038 new-maze
                    747: m: ###########
                    748: m: #......   #########
                    749: m: #......   #  ##   #
                    750: m: #..### $    $     #
                    751: m: #... $ $ #   ##   #
                    752: m: #...#$#####    #  #
                    753: m: ###    #   #$  #$ #
                    754: m:   #  $$ $ $  $##  #
                    755: m:   #  $   #$#$ ##$ #
                    756: m:   ### ## #    ##  #
                    757: m:    #  $ $ ## ######
                    758: m:    #    $  $  #
                    759: m:    ##   # #   #
                    760: m:     #####@#####
                    761: m:         ###
                    762: 039 new-maze
                    763: m:       ####
                    764: m: ####### @#
                    765: m: #     $  #
                    766: m: #   $## $#
                    767: m: ##$#...# #
                    768: m:  # $...  #
                    769: m:  # #. .# ##
                    770: m:  #   # #$ #
                    771: m:  #$  $    #
                    772: m:  #  #######
                    773: m:  ####
                    774: 040 new-maze
                    775: m:              ######
                    776: m:  #############....#
                    777: m: ##   ##     ##....#
                    778: m: #  $$##  $ @##....#
                    779: m: #      $$ $#  ....#
                    780: m: #  $ ## $$ # # ...#
                    781: m: #  $ ## $  #  ....#
                    782: m: ## ##### ### ##.###
                    783: m: ##   $  $ ##   .  #
                    784: m: # $###  # ##### ###
                    785: m: #   $   #       #
                    786: m: #  $ #$ $ $###  #
                    787: m: # $$$# $   # ####
                    788: m: #    #  $$ #
                    789: m: ######   ###
                    790: m:      #####
                    791: 041 new-maze
                    792: m:     ############
                    793: m:     #          ##
                    794: m:     #  # #$$ $  #
                    795: m:     #$ #$#  ## @#
                    796: m:    ## ## # $ # ##
                    797: m:    #   $ #$  # #
                    798: m:    #   # $   # #
                    799: m:    ## $ $   ## #
                    800: m:    #  #  ##  $ #
                    801: m:    #    ## $$# #
                    802: m: ######$$   #   #
                    803: m: #....#  ########
                    804: m: #.#... ##
                    805: m: #....   #
                    806: m: #....   #
                    807: m: #########
                    808: 042 new-maze
                    809: m:            #####
                    810: m:           ##   ##
                    811: m:          ##     #
                    812: m:         ##  $$  #
                    813: m:        ## $$  $ #
                    814: m:        # $    $ #
                    815: m: ####   #   $$ #####
                    816: m: #  ######## ##    #
                    817: m: #.            $$$@#
                    818: m: #.# ####### ##   ##
                    819: m: #.# #######. #$ $##
                    820: m: #........... #    #
                    821: m: ##############  $ #
                    822: m:              ##  ##
                    823: m:               ####
                    824: 043 new-maze
                    825: m:      ########
                    826: m:   ####      ######
                    827: m:   #    ## $ $   @#
                    828: m:   # ## ##$#$ $ $##
                    829: m: ### ......#  $$ ##
                    830: m: #   ......#  #   #
                    831: m: # # ......#$  $  #
                    832: m: # #$...... $$# $ #
                    833: m: #   ### ###$  $ ##
                    834: m: ###  $  $  $  $ #
                    835: m:   #  $  $  $  $ #
                    836: m:   ######   ######
                    837: m:        #####
                    838: 044 new-maze
                    839: m:         #######
                    840: m:     #####  #  ####
                    841: m:     #   #   $    #
                    842: m:  #### #$$ ## ##  #
                    843: m: ##      # #  ## ###
                    844: m: #  ### $#$  $  $  #
                    845: m: #...    # ##  #   #
                    846: m: #...#    @ # ### ##
                    847: m: #...#  ###  $  $  #
                    848: m: ######## ##   #   #
                    849: m:           #########
                    850: 045 new-maze
                    851: m:  #####
                    852: m:  #   #
                    853: m:  # # #######
                    854: m:  #      $@######
                    855: m:  # $ ##$ ###   #
                    856: m:  # #### $    $ #
                    857: m:  # ##### #  #$ ####
                    858: m: ##  #### ##$      #
                    859: m: #  $#  $  # ## ## #
                    860: m: #         # #...# #
                    861: m: ######  ###  ...  #
                    862: m:      #### # #...# #
                    863: m:           # ### # #
                    864: m:           #       #
                    865: m:           #########
                    866: 046 new-maze
                    867: m: ##########
                    868: m: #        ####
                    869: m: # ###### #  ##
                    870: m: # # $ $ $  $ #
                    871: m: #       #$   #
                    872: m: ###$  $$#  ###
                    873: m:   #  ## # $##
                    874: m:   ##$#   $ @#
                    875: m:    #  $ $ ###
                    876: m:    # #   $  #
                    877: m:    # ##   # #
                    878: m:   ##  ##### #
                    879: m:   #         #
                    880: m:   #.......###
                    881: m:   #.......#
                    882: m:   #########
                    883: 047 new-maze
                    884: m:          ####
                    885: m:  #########  ##
                    886: m: ##  $      $ #####
                    887: m: #   ## ##   ##...#
                    888: m: # #$$ $ $$#$##...#
                    889: m: # #   @   #   ...#
                    890: m: #  $# ###$$   ...#
                    891: m: # $  $$  $ ##....#
                    892: m: ###$       #######
                    893: m:   #  #######
                    894: m:   ####
                    895: 048 new-maze
                    896: m:   #########  
                    897: m:   #*.*#*.*#  
                    898: m:   #.*.*.*.#  
                    899: m:   #*.*.*.*#  
                    900: m:   #.*.*.*.#  
                    901: m:   #*.*.*.*#  
                    902: m:   ###   ###  
                    903: m:     #   #    
                    904: m: ###### ######
                    905: m: #           #
                    906: m: # $ $ $ $ $ #
                    907: m: ## $ $ $ $ ##
                    908: m:  #$ $ $ $ $# 
                    909: m:  #   $@$   # 
                    910: m:  #  #####  # 
                    911: m:  ####   ####
                    912: 049 new-maze
                    913: m:        ####
                    914: m:        #  ##
                    915: m:        #   ##
                    916: m:        # $$ ##
                    917: m:      ###$  $ ##
                    918: m:   ####    $   #
                    919: m: ###  # #####  #
                    920: m: #    # #....$ #
                    921: m: # #   $ ....# #
                    922: m: #  $ # #.*..# #
                    923: m: ###  #### ### #
                    924: m:   #### @$  ##$##
                    925: m:      ### $     #
                    926: m:        #  ##   #
                    927: m:        ######### 
                    928: 050 new-maze
                    929: m:       ############
                    930: m:      ##..    #   #
                    931: m:     ##..* $    $ #
                    932: m:    ##..*.# # # $##
                    933: m:    #..*.# # # $  #
                    934: m: ####...#  #    # #
                    935: m: #  ## #          #
                    936: m: # @$ $ ###  #   ##
                    937: m: # $   $   # #   #
                    938: m: ###$$   # # # # #
                    939: m:   #   $   # # #####
                    940: m:   # $# #####      #
                    941: m:   #$   #   #    # #
                    942: m:   #  ###   ##     #
                    943: m:   #  #      #    ##
                    944: m:   ####      ######
                    945: 051 new-maze
                    946: m: #########
                    947: m: #       #
                    948: m: #  $   $#
                    949: m: ####    #
                    950: m:    # $  ##
                    951: m: ####   $ #
                    952: m: #.. $ ## ####
                    953: m: #..  $##    #
                    954: m: #..    $    #
                    955: m: #.###$### #@#
                    956: m: #.# #     ###
                    957: m: ### #######
                    958: 052 new-maze
                    959: m: ####################
                    960: m: #  ##########     @#
                    961: m: # $#    #     ######
                    962: m: #      ####   #  ###
                    963: m: #####         #  ###
                    964: m: #   $         #  ###
                    965: m: #  $####  #   #    #
                    966: m: # # #  #..#$###  # #
                    967: m: # # #$ #..#  $  $$ #
                    968: m: #      #..#  #   # #
                    969: m: #   #  #..#  #   # #
                    970: m: ####################
                    971: 053 new-maze
                    972: m: ####################
                    973: m: #                ###
                    974: m: # $#   $ ##  $    ##
                    975: m: #    $###    # $$ ##
                    976: m: #.###     $ $ ##  ##
                    977: m: #...#  #  #    #$  #
                    978: m: #..##$$#### $  #   #
                    979: m: #...#      $ ##  ###
                    980: m: #...$  ###  #    # #
                    981: m: ##..  $#  ##   ##@ #
                    982: m: ###.#              #
                    983: m: ####################
                    984: 054 new-maze
                    985: m: ####################
                    986: m: #   #    #   #   #@#
                    987: m: # $      $   $   # #
                    988: m: ## ###..## ###     #
                    989: m: #   #....#$#  $### #
                    990: m: # $ #....#  $  $ $ #
                    991: m: #   #....# # # $ $ #
                    992: m: #   ##..##   #$#   #
                    993: m: ##$##    ##  #  #$##
                    994: m: #   $  $     #  #  #
                    995: m: #   #    #   #     #
                    996: m: ####################
                    997: 055 new-maze
                    998: m: ####################
                    999: m: #    @##      #   ##
                   1000: m: #    ##    $    $ ##
                   1001: m: #  ###....# # #  ###
                   1002: m: #   #....# # # $   #
                   1003: m: ### #...#  #       #
                   1004: m: ##  ##.#     $   $ #
                   1005: m: ##  $ $ ###  # # ###
                   1006: m: ## $       # # $   #
                   1007: m: #### $  $# # # # $ #
                   1008: m: ####         # #  ##
                   1009: m: ####################
                   1010: 056 new-maze
                   1011: m: ####################
                   1012: m: #  #  ##    #   @###
                   1013: m: ##    $    # $###  #
                   1014: m: ##$# $ ##$# $ $    #
                   1015: m: #   $#    $      ###
                   1016: m: # ##   $ ###  #....#
                   1017: m: # # $# # # # #....##
                   1018: m: #    $ $ #  #....###
                   1019: m: ##$ ###  $ #....####
                   1020: m: #  # $        ######
                   1021: m: #      # #    ######
                   1022: m: ####################
                   1023: 057 new-maze
                   1024: m: ####################
                   1025: m: #@     ###   #  #  #
                   1026: m: # # #  #  $  $     #
                   1027: m: #####     # $ $#$# #
                   1028: m: #.#..#    ##$ $    #
                   1029: m: #.....    $   #   ##
                   1030: m: #.....    ###$##$###
                   1031: m: #.#..#    $    #   #
                   1032: m: #####     #  #$  $ #
                   1033: m: #####  #  $    $ $ #
                   1034: m: #####  #  #  #  #  #
                   1035: m: ####################
                   1036: 058 new-maze
                   1037: m: ####################
                   1038: m: ##...   ## #    #  #
                   1039: m: #....         $ ## #
                   1040: m: #....# # #$###$    #
                   1041: m: #...#    #       # #
                   1042: m: ##.#  #$ #     $## #
                   1043: m: #  #  # $ $ ###  $ #
                   1044: m: #     $  $ #  # ## #
                   1045: m: ## # ## #$$# $#  # #
                   1046: m: #  #   $ $ #      ##
                   1047: m: #    #     #  #   @#
                   1048: m: ####################
                   1049: 059 new-maze
                   1050: m: ####################
                   1051: m: #   #  #@# ##  #####
                   1052: m: # # #  $    $  #####
                   1053: m: # #    ###### $  ###
                   1054: m: #   #  #....#  $$  #
                   1055: m: ##$##$##....#      #
                   1056: m: #      #....##$##$##
                   1057: m: #  $$  #....#      #
                   1058: m: # $  $  #  #  ###  #
                   1059: m: #####  $   $    $  #
                   1060: m: ##### #    #  #   ##
                   1061: m: ####################
                   1062: 060 new-maze
                   1063: m: ####################
                   1064: m: #     ###..###     #
                   1065: m: # $$  ###..###  $@ #
                   1066: m: #  # ##......#  $  #
                   1067: m: #     #......#  $  #
                   1068: m: ####  ###..######$ #
                   1069: m: #   $$$ #..#    #  #
                   1070: m: # $#   $  $  $$ #$ #
                   1071: m: #  #  ## $  ##  #  #
                   1072: m: # $    $ ## $    $ #
                   1073: m: #  #  ##    ##  #  #
                   1074: m: ####################
                   1075: 061 new-maze
                   1076: m: ####################
                   1077: m: #    #  # #  #  #  #
                   1078: m: # @# # ## $   $   ##
                   1079: m: #### #    #  # $   #
                   1080: m: #    # ## #$ ## ## #
                   1081: m: #      $   $   $   #
                   1082: m: #..###$$## $##$ ## #
                   1083: m: #..#.#  # $   $ #  #
                   1084: m: #....# $$   ##$ ####
                   1085: m: #....#  #####      #
                   1086: m: #...###        ##  #
                   1087: m: ####################
                   1088: 062 new-maze
                   1089: m: ####################
                   1090: m: #....#       #  #  #
                   1091: m: #....# # $  $      #
                   1092: m: #.... ##  $# # $#$ #
                   1093: m: #...#   $   $#  $  #
                   1094: m: #..####  # $   $$  #
                   1095: m: #      #### #### ###
                   1096: m: #        #   #     #
                   1097: m: # ##   #   $ # $ $ #
                   1098: m: # ##    $ ## $  $  #
                   1099: m: #     @#     #   # #
                   1100: m: ####################
                   1101: 063 new-maze
                   1102: m: ####################
                   1103: m: #....###           #
                   1104: m: #....##### #  #$# ##
                   1105: m: #....###   #$  $   #
                   1106: m: #....###    $  #$$##
                   1107: m: ##  #### $#  #$ $  #
                   1108: m: ##  ####  $  $  #  #
                   1109: m: #@  ####$###$## $  #
                   1110: m: ##        #  #  $  #
                   1111: m: ##   ###  #  $  ####
                   1112: m: ########  #  #     #
                   1113: m: ####################
                   1114: 064 new-maze
                   1115: m: ####################
                   1116: m: #     #     @#...###
                   1117: m: #     #      ##...##
                   1118: m: # # # ##$## ## ....#
                   1119: m: #   $ #   $$$  ....#
                   1120: m: ###$### $$  ### ##.#
                   1121: m: #     $  #    # ####
                   1122: m: #  $  #  ###  # #  #
                   1123: m: ## #$##    $  $$   #
                   1124: m: #   $ ##   #  # #  #
                   1125: m: #     #    #  #    #
                   1126: m: ####################
                   1127: 065 new-maze
                   1128: m: ####################
                   1129: m: #     #  #...#@    #
                   1130: m: # #       ....#    #
                   1131: m: #  $  #   #....#   #
                   1132: m: # ##$#### ##....#  #
                   1133: m: # $   $  #  #...#  #
                   1134: m: # $$ #   #   # $$  #
                   1135: m: ###  $$$#   $$  $  #
                   1136: m: # $  #  #    # $#  #
                   1137: m: #   $#  #       $  #
                   1138: m: #  #    #    #  #  #
                   1139: m: ####################
                   1140: 066 new-maze
                   1141: m: ####################
                   1142: m: #####@###.##...##  #
                   1143: m: #####$  ..#...#    #
                   1144: m: ####    ......#  $ #
                   1145: m: ###  $ #.....## # ##
                   1146: m: ##  $$# #####  $ $ #
                   1147: m: ## $# $    ##  $$  #
                   1148: m: ##  #  #    # $  $ #
                   1149: m: ##   $$ ### #$##   #
                   1150: m: ## $#      $ $  $ ##
                   1151: m: ###    #    #    ###
                   1152: m: ####################
                   1153: 067 new-maze
                   1154: m: ####################
                   1155: m: #@     #   #       #
                   1156: m: ## ### ##  #### # ##
                   1157: m: #    # #  $$       #
                   1158: m: #  # # # $ # $ ## ##
                   1159: m: #     $ #  #$$ #   #
                   1160: m: #  ###  #      ## ##
                   1161: m: #..#.# $ #  $ #    #
                   1162: m: #..#.#  $ # ## $$  #
                   1163: m: #....##   $$  $  # #
                   1164: m: #.....##        #  #
                   1165: m: ####################
                   1166: 068 new-maze
                   1167: m: ####################
                   1168: m: #  #      #   #   ##
                   1169: m: # $# $ $ ##...$  $ #
                   1170: m: #  $  # ##....# $  #
                   1171: m: # ## $ ##....#   $ #
                   1172: m: # $    #....## $   #
                   1173: m: # $##  #...#       #
                   1174: m: #   $$$##$##  ### ##
                   1175: m: # # #  #   #  #    #
                   1176: m: # $ #  $  ##       #
                   1177: m: #    #    #@       #
                   1178: m: ####################
                   1179: 069 new-maze
                   1180: m: ####################
                   1181: m: #  #  # #    #  #  #
                   1182: m: #   $      $ $     #
                   1183: m: ## #  #$###$##  ## #
                   1184: m: #   $     $  #  $  #
                   1185: m: # ###$##$#   # $   #
                   1186: m: # #   $ $  ###### $#
                   1187: m: # $  $$ $  #@#.#...#
                   1188: m: # #     #  # #.#...#
                   1189: m: # ########## #.....#
                   1190: m: #            #.....#
                   1191: m: ####################
                   1192: 070 new-maze
                   1193: m: ####################
                   1194: m: #  #     #  ##    ##
                   1195: m: # $#   $ #     ##  #
                   1196: m: # $  $  #..#     $ #
                   1197: m: # $ $  #....#   # ##
                   1198: m: # $#  #......### $ #
                   1199: m: #   #  #....#  #$  #
                   1200: m: # $  ####..#   #   #
                   1201: m: ## $   ## # # $  $##
                   1202: m: ### $    $#@$ $#   #
                   1203: m: ####   #       #   #
                   1204: m: ####################
                   1205: 071 new-maze
                   1206: m: ####################
                   1207: m: #      ....#    ####
                   1208: m: #      ....        #
                   1209: m: # # ##########     #
                   1210: m: # #$   #      ###..#
                   1211: m: #  $   #$$###   #..#
                   1212: m: # $ ### $   $   #..#
                   1213: m: # $ #   $ $ #  ##..#
                   1214: m: #  #  $$ # $ ##   ##
                   1215: m: #@## $#  $  $     ##
                   1216: m: ##       ##   #  ###
                   1217: m: ####################
                   1218: 072 new-maze
                   1219: m: ####################
                   1220: m: #        #   #@ #  #
                   1221: m: # $$  #$$# # #  ## #
                   1222: m: #  # $ $ #$$ #     #
                   1223: m: ## #  #  # # #  #  #
                   1224: m: #   ##       #     #
                   1225: m: #   # $ #   #   #  #
                   1226: m: # $ #$ #   #  $ #..#
                   1227: m: ##$ #  ####    #...#
                   1228: m: #  $          #....#
                   1229: m: #   #  #     #.....#
                   1230: m: ####################
                   1231: 073 new-maze
                   1232: m: ####################
                   1233: m: #     #   #####    #
                   1234: m: ## $  #   ####  $  #
                   1235: m: #### $$   #..#  #  #
                   1236: m: #  $  $  ##..#### ##
                   1237: m: # $   ###....   $$ #
                   1238: m: #  #$#   ....# # $ #
                   1239: m: # #  # $ ..###$#   #
                   1240: m: # #   $ #..#   ##  #
                   1241: m: #   $#  ####   # $##
                   1242: m: # #  #    @#      ##
                   1243: m: ####################
                   1244: 074 new-maze
                   1245: m: ####################
                   1246: m: #   #   #    #   #@#
                   1247: m: #   $  $     # $ # #
                   1248: m: ##$# $### #    $$# #
                   1249: m: #  #  #.###  #$ $  #
                   1250: m: #  #$#....#  # ### #
                   1251: m: # $  #.....##    # #
                   1252: m: ##$  #.#....#$$ $  #
                   1253: m: #  ######..## #  # #
                   1254: m: #  $         $ ### #
                   1255: m: #   #   #        # #
                   1256: m: ####################
                   1257: 075 new-maze
                   1258: m: ####################
                   1259: m: # # # #   #@##   # #
                   1260: m: #             $    #
                   1261: m: #  ##$# ##### $ # ##
                   1262: m: ##    ##.....#  #  #
                   1263: m: ##$##$#.....###$#$ #
                   1264: m: #   # ##.....#  # ##
                   1265: m: #  $    ##..##  #  #
                   1266: m: # $ #   $   $  $$$ #
                   1267: m: ## $  $# #  #  $   #
                   1268: m: #   ##   #  #      #
                   1269: m: ####################
                   1270: 076 new-maze
                   1271: m: ######  #####
                   1272: m: #    #  #   #
                   1273: m: # $  #### $ #
                   1274: m: # $      $  #
                   1275: m: #  ###@###$ #
                   1276: m: ########## ###
                   1277: m: #..   ##     #
                   1278: m: #..   ##$    #
                   1279: m: #..   ## $   #
                   1280: m: #..   ## $   #
                   1281: m: #..     $ $  #
                   1282: m: ###  #########
                   1283: m:   ####
                   1284: 077 new-maze
                   1285: m:        ###########
                   1286: m:        #         #
                   1287: m:        #    $ $  #
                   1288: m: ###### # $ ##### #
                   1289: m: #    ##### $  ##$#
                   1290: m: #       $ $      #
                   1291: m: #          ## ## #
                   1292: m: #    ##@##### ## #
                   1293: m: #    ####   # ## ##
                   1294: m: #....#      # $   #
                   1295: m: #....#      #     #
                   1296: m: ######      #######
                   1297: 078 new-maze
                   1298: m: #############
                   1299: m: #           #
                   1300: m: # ### $$    #
                   1301: m: #   # $  $  #
                   1302: m: #  $####$######
                   1303: m: # $ ##        #####
                   1304: m: #  $$ $        ...#
                   1305: m: ### ## $$#     ...#
                   1306: m:   # ##   #     ...#
                   1307: m:   #      #     ...#
                   1308: m:   ###@#############
                   1309: m:     ###
                   1310: 079 new-maze
                   1311: m:   #################
                   1312: m: ###@##         ...#
                   1313: m: #    #         ...#
                   1314: m: # $  #         ...#
                   1315: m: # $$ #         ...#
                   1316: m: ## $ ###$##########
                   1317: m:  # ###  $ #
                   1318: m: ##   $  $ #
                   1319: m: #  $ #  $ #
                   1320: m: # $  #    #
                   1321: m: #  $ #    #
                   1322: m: #    #    #
                   1323: m: ###########
                   1324: 080 new-maze
                   1325: m:               #####
                   1326: m:      ##########   #
                   1327: m:      #        #   #
                   1328: m:      #  $ $    $$ #
                   1329: m:      # ##### ## $ #
                   1330: m:      #$$   #$## $ #
                   1331: m:      # ### # ##$  #
                   1332: m: ###### ### $ $    #
                   1333: m: #....        ##   #
                   1334: m: #....        ######
                   1335: m: #....        #
                   1336: m: ###########@##
                   1337: m:           ###
                   1338: 081 new-maze
                   1339: m:     ######
                   1340: m:  ####    #
                   1341: m:  #    ## #
                   1342: m:  # $     #
                   1343: m: ### #### ########
                   1344: m: #  $   $ ##  ...#
                   1345: m: #   $$ $$    ...#
                   1346: m: #    $  $##  ...#
                   1347: m: ##@## ## ##  ...#
                   1348: m:  ###  $  ########
                   1349: m:  #   $$  #
                   1350: m:  #    #  #
                   1351: m:  #########
                   1352: 082 new-maze
                   1353: m: ####### #########
                   1354: m: #     # #   ##  #
                   1355: m: # ### # #   $   #
                   1356: m: # # $ ###   $   #
                   1357: m: #   $$      ##$ #
                   1358: m: #    ####   ##  #
                   1359: m: #@############ ##
                   1360: m: ###..    #####$ #
                   1361: m:   #..    ####   #
                   1362: m:   #..       $$  #
                   1363: m:   #..    #### $ #
                   1364: m:   #..    #  #   #
                   1365: m:   ########  #####
                   1366: 083 new-maze
                   1367: m: #######
                   1368: m: #     ##########
                   1369: m: #     #    #  ##
                   1370: m: # $   #   $ $  #
                   1371: m: #  $  #  $ ##  #
                   1372: m: # $$  ##$ $    #
                   1373: m: ## #  ## #######
                   1374: m: ## #  ##    ...#
                   1375: m: #  #$       ...#
                   1376: m: #   $$      ...#
                   1377: m: #     ##@#  ...#
                   1378: m: ################
                   1379: 084 new-maze
                   1380: m: ############
                   1381: m: #      #   ##
                   1382: m: # $  $   #  ######
                   1383: m: ####  #####      #
                   1384: m:  #..  #     #### #
                   1385: m:  #.####  ####    #
                   1386: m:  #....    #  $ ####
                   1387: m:  # ...#   # $$$#  ##
                   1388: m: ###.#### ##  $@$   #
                   1389: m: #     ##### $ #    #
                   1390: m: # #.# $      $###$ #
                   1391: m: # #.########  #  $ #
                   1392: m: # #..        ##  $ #
                   1393: m: # # ####### $ # #  #
                   1394: m: #   #     #       ##
                   1395: m: #####     ##########
                   1396: 085 new-maze
                   1397: m: ####################
                   1398: m: # #     #          #
                   1399: m: #       $  ## ### ##
                   1400: m: #####  ##   $  $   #
                   1401: m: ##..##  # # $ # #  #
                   1402: m: #....  $     ##$# ##
                   1403: m: #....  $#####   #$##
                   1404: m: ##..# #  #   #  $  #
                   1405: m: ###.# #  $   $  # @#
                   1406: m: ##  $  $ #   #  ####
                   1407: m: ##       ###########
                   1408: m: ####################

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>