File:  [gforth] / gforth / sokoban.fs
Revision 1.6: download - view: text, annotated - select for diffs
Sun Mar 9 15:16:52 2003 UTC (16 years, 8 months ago) by anton
Branches: MAIN
CVS tags: v0-6-2, v0-6-1, v0-6-0, HEAD
updated copyright years

    1: \ sokoban - a maze game in FORTH
    2: 
    3: \ Copyright (C) 1995,1997,1998,2003 Free Software Foundation, Inc.
    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: 
   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
   34: \ source. Tested with gforth, bigFORTH and pfe
   35: 
   36: \ bell (7) is replaced with "Wuff!" ;-)
   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
   61:     over + swap ?DO  I c@ [char] $ = -  LOOP ;
   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
   77:     cr  maze-field over + swap
   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?
  118:     IF  r> apply-rule! true  ELSE  r> drop 2drop false  THEN ;
  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
  139: 	S" &$." S" .@*" r@ play-rule
  140: 	      IF  r> soko +!  1 rocks +! -1 score +!  EXIT  THEN
  141: 	-1 moves +!  r> drop  ;
  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
  176: 	false swap  ENDCASE
  177:     UNTIL ;
  178: 
  179: \ start game with "sokoban"
  180: 
  181: : sokoban ( -- )
  182:     page 1 level IF  play-loop ." Game finished!"  THEN ;
  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>