Annotation of gforth/sokoban.fs, revision 1.1

1.1     ! pazsan      1: \ sokoban - a maze game in FORTH
        !             2: 
        !             3: \ Contest from Rick VanNorman in comp.lang.forth
        !             4: 
        !             5: \ SOKOBAN
        !             6: 
        !             7: \ Sokoban is a visual game of pushing.  You (Soko) are represented by the
        !             8: \ at-sign "@"  You may move freely through the maze on unoccupied spaces.
        !             9: \ The dollar-signs "$" are the rocks you have to push. You can only push
        !            10: \ one rock at a time, and cannot push a rock through a wall "#" or over
        !            11: \ another rock. The object is to push the rocks to their goals which are
        !            12: \ indicated by the periods ".".  There are 50 levels, the first of which
        !            13: \ is shown below.
        !            14: 
        !            15: \ program is ANS FORTH with environmental dependency of case-insensitiv
        !            16: \ source. Tested with gforth and bigFORTH
        !            17: 
        !            18: \ really uses "dump" terminal: No PAGE, no AT-XY to speed things up
        !            19: \ Even bell (7) is replaced with "Wuff!" ;-)
        !            20: \ (this is a german joke)
        !            21: \ I don't like the keyboard interpreting CASE-statement either, but
        !            22: \ was to lazy to use a table.
        !            23: \ I could have used blocks as level tables, but as I don't have a good
        !            24: \ block editor for gforth now, I let it be.
        !            25: 
        !            26: 40 Constant /maze  \ maximal maze line
        !            27: 
        !            28: Create maze  1 cells allot /maze 25 * allot  \ current maze
        !            29: Variable mazes   0 mazes !  \ root pointer
        !            30: Variable soko    0 soko !   \ player position
        !            31: Variable >maze   0 >maze !  \ current compiled maze
        !            32: >maze off
        !            33: 
        !            34: \ score information
        !            35: 
        !            36: Variable rocks     0 rocks !  \ number of rocks left
        !            37: Variable level#    0 level# ! \ Current level
        !            38: Variable moves     0 moves !  \ number of moves
        !            39: Variable score     0 score !  \ total number of scores
        !            40: 
        !            41: : new-maze ( n -- addr ) \ add a new level
        !            42:     here mazes rot 1 ?DO  @  LOOP  !
        !            43:     0 , 0 , here >maze ! 0 , ;
        !            44: : count-$ ( addr u -- n )  0 rot rot
        !            45:     bounds ?DO  I c@ [char] $ = -  LOOP ;
        !            46: : m: ( "string" -- )  \ add a level line (top first!)
        !            47:     -1 parse tuck 2dup count-$ >maze @ 1 cells - +!
        !            48:     here swap move dup allot
        !            49:     /maze swap - here over bl fill allot
        !            50:     >maze @ here over cell+ - swap ! ;
        !            51: 
        !            52: : maze-field ( -- addr n )
        !            53:     maze dup cell+ swap @ chars ;
        !            54: 
        !            55: : .score ( -- )
        !            56:     ." Level: " level# @ 2 .r ."  Score: " score @ 4 .r
        !            57:     ."  Moves: " moves @ 6 .r ."  Rocks: " rocks @ 2 .r ;
        !            58: 
        !            59: : .maze ( -- )  \ display maze
        !            60:     0 0 at-xy  .score
        !            61:     cr  maze-field bounds
        !            62:     DO  I /maze type cr  /maze chars  +LOOP ;
        !            63: 
        !            64: : find-soko ( -- n )
        !            65:     maze-field 0
        !            66:     DO  dup I chars + c@ [char] @ =
        !            67:        IF  drop I  UNLOOP  EXIT  THEN
        !            68:     LOOP  true abort" No player in field!" ;
        !            69: 
        !            70: : level ( n -- flag )  \ finds level n
        !            71:     dup level# !
        !            72:     mazes  swap 0
        !            73:     ?DO  @  dup 0= IF  drop false  UNLOOP  EXIT  THEN  LOOP
        !            74:     cell+ dup @ rocks !
        !            75:     cell+ dup @ cell+ maze swap chars move
        !            76:     find-soko soko ! true ;
        !            77: 
        !            78: \ now the playing rules as replacement strings
        !            79: 
        !            80: : 'soko ( -- addr ) \ gives player's address
        !            81:     maze cell+ soko @ chars + ;
        !            82: 
        !            83: : apply-rule? ( addr u offset -- flag )
        !            84:     'soko 2swap
        !            85:     \ offset soko-addr addr u
        !            86:     0 DO
        !            87:        over c@ over c@ <>
        !            88:        IF  drop 2drop false  UNLOOP  EXIT  THEN
        !            89:        >r over chars + r> char+
        !            90:     LOOP  2drop drop  true ;
        !            91: 
        !            92: : apply-rule! ( addr u offset -- )
        !            93:     'soko
        !            94:     2swap
        !            95:     \ offset soko-addr addr u
        !            96:     0 DO
        !            97:        count rot tuck c! rot tuck chars + rot
        !            98:     LOOP  2drop drop ;
        !            99: 
        !           100: : play-rule ( addr1 u1 addr2 u2 offset -- flag )
        !           101:     >r 2swap r@  apply-rule?
        !           102:     IF  r> apply-rule! true  ELSE  rdrop 2drop false  THEN ;
        !           103: 
        !           104: \ player may move up, down, left and right
        !           105: 
        !           106: : move:  ( offset -- )
        !           107:     Create ,
        !           108:     DOES>  @ >r  1 moves +!
        !           109:        S" @ "  S"  @"  r@ play-rule  IF  r> soko +!  EXIT  THEN
        !           110:        S" @."  S"  &"  r@ play-rule  IF  r> soko +!  EXIT  THEN
        !           111:        S" @$ " S"  @$" r@ play-rule  IF  r> soko +!  EXIT  THEN
        !           112:        S" @*." S"  &*" r@ play-rule  IF  r> soko +!  EXIT  THEN
        !           113:        S" @* " S"  &$" r@ play-rule
        !           114:              IF  r> soko +!  1 rocks +! -1 score +!  EXIT  THEN
        !           115:        S" @$." S"  @*" r@ play-rule
        !           116:              IF  r> soko +! -1 rocks +!  1 score +!  EXIT  THEN
        !           117:        S" &*." S" .&*" r@ play-rule  IF  r> soko +!  EXIT  THEN
        !           118:        S" &$ " S" .@$" r@ play-rule  IF  r> soko +!  EXIT  THEN
        !           119:        S" & "  S" .@"  r@ play-rule  IF  r> soko +!  EXIT  THEN
        !           120:        S" &."  S" .&"  r@ play-rule  IF  r> soko +!  EXIT  THEN
        !           121:        S" &* " S" .&$" r@ play-rule
        !           122:              IF  r> soko +!  1 rocks +! -1 score +!  EXIT  THEN
        !           123:        -1 moves +!  rdrop  ;
        !           124: 
        !           125: 1            move: soko-right
        !           126: -1           move: soko-left
        !           127: /maze        move: soko-down
        !           128: /maze negate move: soko-up
        !           129: 
        !           130: : print-help
        !           131:     ." Move soko '@' with h, j, k or l key (like vi)" cr
        !           132:     ." or with vt100 cursor keys." cr ;
        !           133: 
        !           134: : play-loop ( -- )
        !           135:     BEGIN
        !           136:        rocks @ 0=
        !           137:        IF
        !           138:            level# @ 1+ level  0= IF  EXIT  THEN
        !           139:        THEN
        !           140:        .maze
        !           141:        key
        !           142:        CASE
        !           143:            [char] ? OF  print-help false  ENDOF
        !           144:            
        !           145:            [char] h OF  soko-left  false  ENDOF
        !           146:            [char] j OF  soko-down  false  ENDOF
        !           147:            [char] k OF  soko-up    false  ENDOF
        !           148:            [char] l OF  soko-right false  ENDOF
        !           149: 
        !           150:            \ vt100 cursor keys should work too
        !           151:            27       OF  key [char] [ <>   ENDOF
        !           152:            [char] D OF  soko-left  false  ENDOF
        !           153:            [char] B OF  soko-down  false  ENDOF
        !           154:            [char] A OF  soko-up    false  ENDOF
        !           155:            [char] C OF  soko-right false  ENDOF
        !           156: 
        !           157:            [char] q OF  true              ENDOF
        !           158:        ENDCASE
        !           159:     UNTIL ;
        !           160: 
        !           161: \ start game with "sokoban"
        !           162: 
        !           163: : sokoban ( -- )
        !           164:     1 level IF  play-loop ." Game finished!"  THEN ;
        !           165:     
        !           166: 001 new-maze
        !           167: m:     #####
        !           168: m:     #   #
        !           169: m:     #$  #
        !           170: m:   ###  $##
        !           171: m:   #  $ $ #
        !           172: m: ### # ## #   ######
        !           173: m: #   # ## #####  ..#
        !           174: m: # $  $          ..#
        !           175: m: ##### ### #@##  ..#
        !           176: m:     #     #########
        !           177: m:     #######
        !           178: 002 new-maze
        !           179: m: ############
        !           180: m: #..  #     ###
        !           181: m: #..  # $  $  #
        !           182: m: #..  #$####  #
        !           183: m: #..    @ ##  #
        !           184: m: #..  # #  $ ##
        !           185: m: ###### ##$ $ #
        !           186: m:   # $  $ $ $ #
        !           187: m:   #    #     #
        !           188: m:   ############
        !           189: 003 new-maze
        !           190: m:         ########
        !           191: m:         #     @#
        !           192: m:         # $#$ ##
        !           193: m:         # $  $#
        !           194: m:         ##$ $ #
        !           195: m: ######### $ # ###
        !           196: m: #....  ## $  $  #
        !           197: m: ##...    $  $   #
        !           198: m: #....  ##########
        !           199: m: ########
        !           200: 004 new-maze
        !           201: m:            ########
        !           202: m:            #  ....#
        !           203: m: ############  ....#
        !           204: m: #    #  $ $   ....#
        !           205: m: # $$$#$  $ #  ....#
        !           206: m: #  $     $ #  ....#
        !           207: m: # $$ #$ $ $########
        !           208: m: #  $ #     #
        !           209: m: ## #########
        !           210: m: #    #    ##
        !           211: m: #     $   ##
        !           212: m: #  $$#$$  @#
        !           213: m: #    #    ##
        !           214: m: ###########
        !           215: 005 new-maze
        !           216: m:         #####
        !           217: m:         #   #####
        !           218: m:         # #$##  #
        !           219: m:         #     $ #
        !           220: m: ######### ###   #
        !           221: m: #....  ## $  $###
        !           222: m: #....    $ $$ ##
        !           223: m: #....  ##$  $ @#
        !           224: m: #########  $  ##
        !           225: m:         # $ $  #
        !           226: m:         ### ## #
        !           227: m:           #    #
        !           228: m:           ######
        !           229: 006 new-maze
        !           230: m: ######  ###
        !           231: m: #..  # ##@##
        !           232: m: #..  ###   #
        !           233: m: #..     $$ #
        !           234: m: #..  # # $ #
        !           235: m: #..### # $ #
        !           236: m: #### $ #$  #
        !           237: m:    #  $# $ #
        !           238: m:    # $  $  #
        !           239: m:    #  ##   #
        !           240: m:    #########
        !           241: 007 new-maze
        !           242: m:        #####
        !           243: m:  #######   ##
        !           244: m: ## # @## $$ #
        !           245: m: #    $      #
        !           246: m: #  $  ###   #
        !           247: m: ### #####$###
        !           248: m: # $  ### ..#
        !           249: m: # $ $ $ ...#
        !           250: m: #    ###...#
        !           251: m: # $$ # #...#
        !           252: m: #  ### #####
        !           253: m: ####
        !           254: 008 new-maze
        !           255: m:   ####
        !           256: m:   #  ###########
        !           257: m:   #    $   $ $ #
        !           258: m:   # $# $ #  $  #
        !           259: m:   #  $ $  #    #
        !           260: m: ### $# #  #### #
        !           261: m: #@#$ $ $  ##   #
        !           262: m: #    $ #$#   # #
        !           263: m: #   $    $ $ $ #
        !           264: m: #####  #########
        !           265: m:   #      #
        !           266: m:   #      #
        !           267: m:   #......#
        !           268: m:   #......#
        !           269: m:   #......#
        !           270: m:   ########
        !           271: 009 new-maze
        !           272: m:           #######
        !           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: 010 new-maze
        !           287: m:  ###  #############
        !           288: m: ##@####       #   #
        !           289: m: # $$   $$  $ $ ...#
        !           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: 011 new-maze
        !           304: m:           ####
        !           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: 012 new-maze
        !           320: m: ################
        !           321: m: #              #
        !           322: m: # # ######     #
        !           323: m: # #  $ $ $ $#  #
        !           324: m: # #   $@$   ## ##
        !           325: m: # #  $ $ $###...#
        !           326: m: # #   $ $  ##...#
        !           327: m: # ###$$$ $ ##...#
        !           328: m: #     # ## ##...#
        !           329: m: #####   ## ##...#
        !           330: m:     #####     ###
        !           331: m:         #     #
        !           332: m:         #######
        !           333: 013 new-maze
        !           334: m: ##### ####
        !           335: m: #...# #  ####
        !           336: m: #...###  $  #
        !           337: m: #....## $  $###
        !           338: m: ##....##   $  #
        !           339: m: ###... ## $ $ #
        !           340: m: # ##    #  $  #
        !           341: m: #  ## # ### ####
        !           342: m: # $ # #$  $    #
        !           343: m: #  $ @ $    $  #
        !           344: m: #   # $ $$ $ ###
        !           345: m: #  ######  ###
        !           346: m: # ##    ####
        !           347: m: ###
        !           348: 014 new-maze
        !           349: m:    #########
        !           350: m:   ##   ##  ######
        !           351: m: ###     #  #    ###
        !           352: m: #  $ #$ #  #  ... #
        !           353: m: # # $#@$## # #.#. #
        !           354: m: #  # #$  #    . . #
        !           355: m: # $    $ # # #.#. #
        !           356: m: #   ##  ##$ $ . . #
        !           357: m: # $ #   #  #$#.#. #
        !           358: m: ## $  $   $  $... #
        !           359: m:  #$ ######    ##  #
        !           360: m:  #  #    ##########
        !           361: m:  ####
        !           362: 015 new-maze
        !           363: m:        #######
        !           364: m:  #######     #
        !           365: m:  #     # $@$ #
        !           366: m:  #$$ #   #########
        !           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: 016 new-maze
        !           380: m:    ########
        !           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: 017 new-maze
        !           397: m: #####
        !           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: 018 new-maze
        !           413: m:    ##########
        !           414: m:    #..  #   #
        !           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: 019 new-maze
        !           428: m:      ###########
        !           429: m:      #  .  #   #
        !           430: m:      # #.    @ #
        !           431: m:  ##### ##..# ####
        !           432: m: ##  # ..###     ###
        !           433: m: # $ #...   $ #  $ #
        !           434: m: #    .. ##  ## ## #
        !           435: m: ####$##$# $ #   # #
        !           436: m:   ## #    #$ $$ # #
        !           437: m:   #  $ # #  # $## #
        !           438: m:   #               #
        !           439: m:   #  ###########  #
        !           440: m:   ####         ####
        !           441: 020 new-maze
        !           442: m:   ######
        !           443: m:   #   @####
        !           444: m: ##### $   #
        !           445: m: #   ##    ####
        !           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: 021 new-maze
        !           459: m:     ##########
        !           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: 022 new-maze
        !           476: m: #########
        !           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: 023 new-maze
        !           492: m: ######     ####
        !           493: m: #    #######  #####
        !           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: 024 new-maze
        !           509: m:     #######
        !           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: 025 new-maze
        !           524: m: ###############
        !           525: m: #..........  .####
        !           526: m: #..........$$.#  #
        !           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: 026 new-maze
        !           541: m: ####
        !           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: 027 new-maze
        !           558: m:  #######
        !           559: m:  #  #  #####
        !           560: m: ##  #  #...###
        !           561: m: #  $#  #...  #
        !           562: m: # $ #$$ ...  #
        !           563: m: #  $#  #... .#
        !           564: m: #   # $########
        !           565: m: ##$       $ $ #
        !           566: m: ##  #  $$ #   #
        !           567: m:  ######  ##$$@#
        !           568: m:       #      ##
        !           569: m:       ########
        !           570: 028 new-maze
        !           571: m:  #################
        !           572: m:  #...   #    #   ##
        !           573: m: ##.....  $## # #$ #
        !           574: m: #......#  $  #    #
        !           575: m: #......#  #  # #  #
        !           576: m: ######### $  $ $  #
        !           577: m:   #     #$##$ ##$##
        !           578: m:  ##   $    # $    #
        !           579: m:  #  ## ### #  ##$ #
        !           580: m:  # $ $$     $  $  #
        !           581: m:  # $    $##$ ######
        !           582: m:  #######  @ ##
        !           583: m:        ######
        !           584: 029 new-maze
        !           585: m:          #####
        !           586: m:      #####   #
        !           587: m:     ## $  $  ####
        !           588: m: ##### $  $ $ ##.#
        !           589: m: #       $$  ##..#
        !           590: m: #  ###### ###.. #
        !           591: m: ## #  #    #... #
        !           592: m: # $   #    #... #
        !           593: m: #@ #$ ## ####...#
        !           594: m: ####  $ $$  ##..#
        !           595: m:    ##  $ $  $...#
        !           596: m:     # $$  $ #  .#
        !           597: m:     #   $ $  ####
        !           598: m:     ######   #
        !           599: m:          #####
        !           600: 030 new-maze
        !           601: m: #####
        !           602: m: #   ##
        !           603: m: # $  #########
        !           604: m: ## # #       ######
        !           605: m: ## #   $#$#@  #   #
        !           606: m: #  #      $ #   $ #
        !           607: m: #  ### ######### ##
        !           608: m: #  ## ..*..... # ##
        !           609: m: ## ## *.*..*.* # ##
        !           610: m: # $########## ##$ #
        !           611: m: #  $   $  $    $  #
        !           612: m: #  #   #   #   #  #
        !           613: m: ###################
        !           614: 031 new-maze
        !           615: m:        ###########
        !           616: m:        #   #     #
        !           617: m: #####  #     $ $ #
        !           618: m: #   ##### $## # ##
        !           619: m: # $ ##   # ## $  #
        !           620: m: # $  @$$ # ##$$$ #
        !           621: m: ## ###   # ##    #
        !           622: m: ## #   ### #####$#
        !           623: m: ## #     $  #....#
        !           624: m: #  ### ## $ #....##
        !           625: m: # $   $ #   #..$. #
        !           626: m: #  ## $ #  ##.... #
        !           627: m: #####   ######...##
        !           628: m:     #####    #####
        !           629: 032 new-maze
        !           630: m:   ####
        !           631: m:   #  #########
        !           632: m:  ##  ##  #   #
        !           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: 033 new-maze
        !           647: m:       ####
        !           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: 034 new-maze
        !           663: m: ############
        !           664: m: ##     ##  #
        !           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: 035 new-maze
        !           679: m:  #########
        !           680: m:  #....   ##
        !           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: 036 new-maze
        !           695: m: ############ ######
        !           696: m: #   #    # ###....#
        !           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: 037 new-maze
        !           712: m:             #####
        !           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: 038 new-maze
        !           729: m: ###########
        !           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: 039 new-maze
        !           745: m:       ####
        !           746: m: ####### @#
        !           747: m: #     $  #
        !           748: m: #   $## $#
        !           749: m: ##$#...# #
        !           750: m:  # $...  #
        !           751: m:  # #. .# ##
        !           752: m:  #   # #$ #
        !           753: m:  #$  $    #
        !           754: m:  #  #######
        !           755: m:  ####
        !           756: 040 new-maze
        !           757: m:              ######
        !           758: m:  #############....#
        !           759: m: ##   ##     ##....#
        !           760: m: #  $$##  $ @##....#
        !           761: m: #      $$ $#  ....#
        !           762: m: #  $ ## $$ # # ...#
        !           763: m: #  $ ## $  #  ....#
        !           764: m: ## ##### ### ##.###
        !           765: m: ##   $  $ ##   .  #
        !           766: m: # $###  # ##### ###
        !           767: m: #   $   #       #
        !           768: m: #  $ #$ $ $###  #
        !           769: m: # $$$# $   # ####
        !           770: m: #    #  $$ #
        !           771: m: ######   ###
        !           772: m:      #####
        !           773: 041 new-maze
        !           774: m:     ############
        !           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: 042 new-maze
        !           791: m:            #####
        !           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: 043 new-maze
        !           807: m:      ########
        !           808: m:   ####      ######
        !           809: m:   #    ## $ $   @#
        !           810: m:   # ## ##$#$ $ $##
        !           811: m: ### ......#  $$ ##
        !           812: m: #   ......#  #   #
        !           813: m: # # ......#$  $  #
        !           814: m: # #$...... $$# $ #
        !           815: m: #   ### ###$  $ ##
        !           816: m: ###  $  $  $  $ #
        !           817: m:   #  $  $  $  $ #
        !           818: m:   ######   ######
        !           819: m:        #####
        !           820: 044 new-maze
        !           821: m:         #######
        !           822: m:     #####  #  ####
        !           823: m:     #   #   $    #
        !           824: m:  #### #$$ ## ##  #
        !           825: m: ##      # #  ## ###
        !           826: m: #  ### $#$  $  $  #
        !           827: m: #...    # ##  #   #
        !           828: m: #...#    @ # ### ##
        !           829: m: #...#  ###  $  $  #
        !           830: m: ######## ##   #   #
        !           831: m:           #########
        !           832: 045 new-maze
        !           833: m:  #####
        !           834: m:  #   #
        !           835: m:  # # #######
        !           836: m:  #      $@######
        !           837: m:  # $ ##$ ###   #
        !           838: m:  # #### $    $ #
        !           839: m:  # ##### #  #$ ####
        !           840: m: ##  #### ##$      #
        !           841: m: #  $#  $  # ## ## #
        !           842: m: #         # #...# #
        !           843: m: ######  ###  ...  #
        !           844: m:      #### # #...# #
        !           845: m:           # ### # #
        !           846: m:           #       #
        !           847: m:           #########
        !           848: 046 new-maze
        !           849: m: ##########
        !           850: m: #        ####
        !           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: 047 new-maze
        !           866: m:          ####
        !           867: m:  #########  ##
        !           868: m: ##  $      $ #####
        !           869: m: #   ## ##   ##...#
        !           870: m: # #$$ $ $$#$##...#
        !           871: m: # #   @   #   ...#
        !           872: m: #  $# ###$$   ...#
        !           873: m: # $  $$  $ ##....#
        !           874: m: ###$       #######
        !           875: m:   #  #######
        !           876: m:   ####
        !           877: 048 new-maze
        !           878: m:   #########  
        !           879: m:   #*.*#*.*#  
        !           880: m:   #.*.*.*.#  
        !           881: m:   #*.*.*.*#  
        !           882: m:   #.*.*.*.#  
        !           883: m:   #*.*.*.*#  
        !           884: m:   ###   ###  
        !           885: m:     #   #    
        !           886: m: ###### ######
        !           887: m: #           #
        !           888: m: # $ $ $ $ $ #
        !           889: m: ## $ $ $ $ ##
        !           890: m:  #$ $ $ $ $# 
        !           891: m:  #   $@$   # 
        !           892: m:  #  #####  # 
        !           893: m:  ####   ####
        !           894: 049 new-maze
        !           895: m:        ####
        !           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: 050 new-maze
        !           911: m:       ############
        !           912: m:      ##..    #   #
        !           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: 051 new-maze
        !           928: m: #########
        !           929: m: #       #
        !           930: m: #  $   $#
        !           931: m: ####    #
        !           932: m:    # $  ##
        !           933: m: ####   $ #
        !           934: m: #.. $ ## ####
        !           935: m: #..  $##    #
        !           936: m: #..    $    #
        !           937: m: #.###$### #@#
        !           938: m: #.# #     ###
        !           939: m: ### #######
        !           940: 052 new-maze
        !           941: m: ####################
        !           942: m: #  ##########     @#
        !           943: m: # $#    #     ######
        !           944: m: #      ####   #  ###
        !           945: m: #####         #  ###
        !           946: m: #   $         #  ###
        !           947: m: #  $####  #   #    #
        !           948: m: # # #  #..#$###  # #
        !           949: m: # # #$ #..#  $  $$ #
        !           950: m: #      #..#  #   # #
        !           951: m: #   #  #..#  #   # #
        !           952: m: ####################
        !           953: 053 new-maze
        !           954: m: ####################
        !           955: m: #                ###
        !           956: m: # $#   $ ##  $    ##
        !           957: m: #    $###    # $$ ##
        !           958: m: #.###     $ $ ##  ##
        !           959: m: #...#  #  #    #$  #
        !           960: m: #..##$$#### $  #   #
        !           961: m: #...#      $ ##  ###
        !           962: m: #...$  ###  #    # #
        !           963: m: ##..  $#  ##   ##@ #
        !           964: m: ###.#              #
        !           965: m: ####################
        !           966: 054 new-maze
        !           967: m: ####################
        !           968: m: #   #    #   #   #@#
        !           969: m: # $      $   $   # #
        !           970: m: ## ###..## ###     #
        !           971: m: #   #....#$#  $### #
        !           972: m: # $ #....#  $  $ $ #
        !           973: m: #   #....# # # $ $ #
        !           974: m: #   ##..##   #$#   #
        !           975: m: ##$##    ##  #  #$##
        !           976: m: #   $  $     #  #  #
        !           977: m: #   #    #   #     #
        !           978: m: ####################
        !           979: 055 new-maze
        !           980: m: ####################
        !           981: m: #    @##      #   ##
        !           982: m: #    ##    $    $ ##
        !           983: m: #  ###....# # #  ###
        !           984: m: #   #....# # # $   #
        !           985: m: ### #...#  #       #
        !           986: m: ##  ##.#     $   $ #
        !           987: m: ##  $ $ ###  # # ###
        !           988: m: ## $       # # $   #
        !           989: m: #### $  $# # # # $ #
        !           990: m: ####         # #  ##
        !           991: m: ####################
        !           992: 056 new-maze
        !           993: m: ####################
        !           994: m: #  #  ##    #   @###
        !           995: m: ##    $    # $###  #
        !           996: m: ##$# $ ##$# $ $    #
        !           997: m: #   $#    $      ###
        !           998: m: # ##   $ ###  #....#
        !           999: m: # # $# # # # #....##
        !          1000: m: #    $ $ #  #....###
        !          1001: m: ##$ ###  $ #....####
        !          1002: m: #  # $        ######
        !          1003: m: #      # #    ######
        !          1004: m: ####################
        !          1005: 057 new-maze
        !          1006: m: ####################
        !          1007: m: #@     ###   #  #  #
        !          1008: m: # # #  #  $  $     #
        !          1009: m: #####     # $ $#$# #
        !          1010: m: #.#..#    ##$ $    #
        !          1011: m: #.....    $   #   ##
        !          1012: m: #.....    ###$##$###
        !          1013: m: #.#..#    $    #   #
        !          1014: m: #####     #  #$  $ #
        !          1015: m: #####  #  $    $ $ #
        !          1016: m: #####  #  #  #  #  #
        !          1017: m: ####################
        !          1018: 058 new-maze
        !          1019: m: ####################
        !          1020: m: ##...   ## #    #  #
        !          1021: m: #....         $ ## #
        !          1022: m: #....# # #$###$    #
        !          1023: m: #...#    #       # #
        !          1024: m: ##.#  #$ #     $## #
        !          1025: m: #  #  # $ $ ###  $ #
        !          1026: m: #     $  $ #  # ## #
        !          1027: m: ## # ## #$$# $#  # #
        !          1028: m: #  #   $ $ #      ##
        !          1029: m: #    #     #  #   @#
        !          1030: m: ####################
        !          1031: 059 new-maze
        !          1032: m: ####################
        !          1033: m: #   #  #@# ##  #####
        !          1034: m: # # #  $    $  #####
        !          1035: m: # #    ###### $  ###
        !          1036: m: #   #  #....#  $$  #
        !          1037: m: ##$##$##....#      #
        !          1038: m: #      #....##$##$##
        !          1039: m: #  $$  #....#      #
        !          1040: m: # $  $  #  #  ###  #
        !          1041: m: #####  $   $    $  #
        !          1042: m: ##### #    #  #   ##
        !          1043: m: ####################
        !          1044: 060 new-maze
        !          1045: m: ####################
        !          1046: m: #     ###..###     #
        !          1047: m: # $$  ###..###  $@ #
        !          1048: m: #  # ##......#  $  #
        !          1049: m: #     #......#  $  #
        !          1050: m: ####  ###..######$ #
        !          1051: m: #   $$$ #..#    #  #
        !          1052: m: # $#   $  $  $$ #$ #
        !          1053: m: #  #  ## $  ##  #  #
        !          1054: m: # $    $ ## $    $ #
        !          1055: m: #  #  ##    ##  #  #
        !          1056: m: ####################
        !          1057: 061 new-maze
        !          1058: m: ####################
        !          1059: m: #    #  # #  #  #  #
        !          1060: m: # @# # ## $   $   ##
        !          1061: m: #### #    #  # $   #
        !          1062: m: #    # ## #$ ## ## #
        !          1063: m: #      $   $   $   #
        !          1064: m: #..###$$## $##$ ## #
        !          1065: m: #..#.#  # $   $ #  #
        !          1066: m: #....# $$   ##$ ####
        !          1067: m: #....#  #####      #
        !          1068: m: #...###        ##  #
        !          1069: m: ####################
        !          1070: 062 new-maze
        !          1071: m: ####################
        !          1072: m: #....#       #  #  #
        !          1073: m: #....# # $  $      #
        !          1074: m: #.... ##  $# # $#$ #
        !          1075: m: #...#   $   $#  $  #
        !          1076: m: #..####  # $   $$  #
        !          1077: m: #      #### #### ###
        !          1078: m: #        #   #     #
        !          1079: m: # ##   #   $ # $ $ #
        !          1080: m: # ##    $ ## $  $  #
        !          1081: m: #     @#     #   # #
        !          1082: m: ####################
        !          1083: 063 new-maze
        !          1084: m: ####################
        !          1085: m: #....###           #
        !          1086: m: #....##### #  #$# ##
        !          1087: m: #....###   #$  $   #
        !          1088: m: #....###    $  #$$##
        !          1089: m: ##  #### $#  #$ $  #
        !          1090: m: ##  ####  $  $  #  #
        !          1091: m: #@  ####$###$## $  #
        !          1092: m: ##        #  #  $  #
        !          1093: m: ##   ###  #  $  ####
        !          1094: m: ########  #  #     #
        !          1095: m: ####################
        !          1096: 064 new-maze
        !          1097: m: ####################
        !          1098: m: #     #     @#...###
        !          1099: m: #     #      ##...##
        !          1100: m: # # # ##$## ## ....#
        !          1101: m: #   $ #   $$$  ....#
        !          1102: m: ###$### $$  ### ##.#
        !          1103: m: #     $  #    # ####
        !          1104: m: #  $  #  ###  # #  #
        !          1105: m: ## #$##    $  $$   #
        !          1106: m: #   $ ##   #  # #  #
        !          1107: m: #     #    #  #    #
        !          1108: m: ####################
        !          1109: 065 new-maze
        !          1110: m: ####################
        !          1111: m: #     #  #...#@    #
        !          1112: m: # #       ....#    #
        !          1113: m: #  $  #   #....#   #
        !          1114: m: # ##$#### ##....#  #
        !          1115: m: # $   $  #  #...#  #
        !          1116: m: # $$ #   #   # $$  #
        !          1117: m: ###  $$$#   $$  $  #
        !          1118: m: # $  #  #    # $#  #
        !          1119: m: #   $#  #       $  #
        !          1120: m: #  #    #    #  #  #
        !          1121: m: ####################
        !          1122: 066 new-maze
        !          1123: m: ####################
        !          1124: m: #####@###.##...##  #
        !          1125: m: #####$  ..#...#    #
        !          1126: m: ####    ......#  $ #
        !          1127: m: ###  $ #.....## # ##
        !          1128: m: ##  $$# #####  $ $ #
        !          1129: m: ## $# $    ##  $$  #
        !          1130: m: ##  #  #    # $  $ #
        !          1131: m: ##   $$ ### #$##   #
        !          1132: m: ## $#      $ $  $ ##
        !          1133: m: ###    #    #    ###
        !          1134: m: ####################
        !          1135: 067 new-maze
        !          1136: m: ####################
        !          1137: m: #@     #   #       #
        !          1138: m: ## ### ##  #### # ##
        !          1139: m: #    # #  $$       #
        !          1140: m: #  # # # $ # $ ## ##
        !          1141: m: #     $ #  #$$ #   #
        !          1142: m: #  ###  #      ## ##
        !          1143: m: #..#.# $ #  $ #    #
        !          1144: m: #..#.#  $ # ## $$  #
        !          1145: m: #....##   $$  $  # #
        !          1146: m: #.....##        #  #
        !          1147: m: ####################
        !          1148: 068 new-maze
        !          1149: m: ####################
        !          1150: m: #  #      #   #   ##
        !          1151: m: # $# $ $ ##...$  $ #
        !          1152: m: #  $  # ##....# $  #
        !          1153: m: # ## $ ##....#   $ #
        !          1154: m: # $    #....## $   #
        !          1155: m: # $##  #...#       #
        !          1156: m: #   $$$##$##  ### ##
        !          1157: m: # # #  #   #  #    #
        !          1158: m: # $ #  $  ##       #
        !          1159: m: #    #    #@       #
        !          1160: m: ####################
        !          1161: 069 new-maze
        !          1162: m: ####################
        !          1163: m: #  #  # #    #  #  #
        !          1164: m: #   $      $ $     #
        !          1165: m: ## #  #$###$##  ## #
        !          1166: m: #   $     $  #  $  #
        !          1167: m: # ###$##$#   # $   #
        !          1168: m: # #   $ $  ###### $#
        !          1169: m: # $  $$ $  #@#.#...#
        !          1170: m: # #     #  # #.#...#
        !          1171: m: # ########## #.....#
        !          1172: m: #            #.....#
        !          1173: m: ####################
        !          1174: 070 new-maze
        !          1175: m: ####################
        !          1176: m: #  #     #  ##    ##
        !          1177: m: # $#   $ #     ##  #
        !          1178: m: # $  $  #..#     $ #
        !          1179: m: # $ $  #....#   # ##
        !          1180: m: # $#  #......### $ #
        !          1181: m: #   #  #....#  #$  #
        !          1182: m: # $  ####..#   #   #
        !          1183: m: ## $   ## # # $  $##
        !          1184: m: ### $    $#@$ $#   #
        !          1185: m: ####   #       #   #
        !          1186: m: ####################
        !          1187: 071 new-maze
        !          1188: m: ####################
        !          1189: m: #      ....#    ####
        !          1190: m: #      ....        #
        !          1191: m: # # ##########     #
        !          1192: m: # #$   #      ###..#
        !          1193: m: #  $   #$$###   #..#
        !          1194: m: # $ ### $   $   #..#
        !          1195: m: # $ #   $ $ #  ##..#
        !          1196: m: #  #  $$ # $ ##   ##
        !          1197: m: #@## $#  $  $     ##
        !          1198: m: ##       ##   #  ###
        !          1199: m: ####################
        !          1200: 072 new-maze
        !          1201: m: ####################
        !          1202: m: #        #   #@ #  #
        !          1203: m: # $$  #$$# # #  ## #
        !          1204: m: #  # $ $ #$$ #     #
        !          1205: m: ## #  #  # # #  #  #
        !          1206: m: #   ##       #     #
        !          1207: m: #   # $ #   #   #  #
        !          1208: m: # $ #$ #   #  $ #..#
        !          1209: m: ##$ #  ####    #...#
        !          1210: m: #  $          #....#
        !          1211: m: #   #  #     #.....#
        !          1212: m: ####################
        !          1213: 073 new-maze
        !          1214: m: ####################
        !          1215: m: #     #   #####    #
        !          1216: m: ## $  #   ####  $  #
        !          1217: m: #### $$   #..#  #  #
        !          1218: m: #  $  $  ##..#### ##
        !          1219: m: # $   ###....   $$ #
        !          1220: m: #  #$#   ....# # $ #
        !          1221: m: # #  # $ ..###$#   #
        !          1222: m: # #   $ #..#   ##  #
        !          1223: m: #   $#  ####   # $##
        !          1224: m: # #  #    @#      ##
        !          1225: m: ####################
        !          1226: 074 new-maze
        !          1227: m: ####################
        !          1228: m: #   #   #    #   #@#
        !          1229: m: #   $  $     # $ # #
        !          1230: m: ##$# $### #    $$# #
        !          1231: m: #  #  #.###  #$ $  #
        !          1232: m: #  #$#....#  # ### #
        !          1233: m: # $  #.....##    # #
        !          1234: m: ##$  #.#....#$$ $  #
        !          1235: m: #  ######..## #  # #
        !          1236: m: #  $         $ ### #
        !          1237: m: #   #   #        # #
        !          1238: m: ####################
        !          1239: 075 new-maze
        !          1240: m: ####################
        !          1241: m: # # # #   #@##   # #
        !          1242: m: #             $    #
        !          1243: m: #  ##$# ##### $ # ##
        !          1244: m: ##    ##.....#  #  #
        !          1245: m: ##$##$#.....###$#$ #
        !          1246: m: #   # ##.....#  # ##
        !          1247: m: #  $    ##..##  #  #
        !          1248: m: # $ #   $   $  $$$ #
        !          1249: m: ## $  $# #  #  $   #
        !          1250: m: #   ##   #  #      #
        !          1251: m: ####################
        !          1252: 076 new-maze
        !          1253: m: ######  #####
        !          1254: m: #    #  #   #
        !          1255: m: # $  #### $ #
        !          1256: m: # $      $  #
        !          1257: m: #  ###@###$ #
        !          1258: m: ########## ###
        !          1259: m: #..   ##     #
        !          1260: m: #..   ##$    #
        !          1261: m: #..   ## $   #
        !          1262: m: #..   ## $   #
        !          1263: m: #..     $ $  #
        !          1264: m: ###  #########
        !          1265: m:   ####
        !          1266: 077 new-maze
        !          1267: m:        ###########
        !          1268: m:        #         #
        !          1269: m:        #    $ $  #
        !          1270: m: ###### # $ ##### #
        !          1271: m: #    ##### $  ##$#
        !          1272: m: #       $ $      #
        !          1273: m: #          ## ## #
        !          1274: m: #    ##@##### ## #
        !          1275: m: #    ####   # ## ##
        !          1276: m: #....#      # $   #
        !          1277: m: #....#      #     #
        !          1278: m: ######      #######
        !          1279: 078 new-maze
        !          1280: m: #############
        !          1281: m: #           #
        !          1282: m: # ### $$    #
        !          1283: m: #   # $  $  #
        !          1284: m: #  $####$######
        !          1285: m: # $ ##        #####
        !          1286: m: #  $$ $        ...#
        !          1287: m: ### ## $$#     ...#
        !          1288: m:   # ##   #     ...#
        !          1289: m:   #      #     ...#
        !          1290: m:   ###@#############
        !          1291: m:     ###
        !          1292: 079 new-maze
        !          1293: m:   #################
        !          1294: m: ###@##         ...#
        !          1295: m: #    #         ...#
        !          1296: m: # $  #         ...#
        !          1297: m: # $$ #         ...#
        !          1298: m: ## $ ###$##########
        !          1299: m:  # ###  $ #
        !          1300: m: ##   $  $ #
        !          1301: m: #  $ #  $ #
        !          1302: m: # $  #    #
        !          1303: m: #  $ #    #
        !          1304: m: #    #    #
        !          1305: m: ###########
        !          1306: 080 new-maze
        !          1307: m:               #####
        !          1308: m:      ##########   #
        !          1309: m:      #        #   #
        !          1310: m:      #  $ $    $$ #
        !          1311: m:      # ##### ## $ #
        !          1312: m:      #$$   #$## $ #
        !          1313: m:      # ### # ##$  #
        !          1314: m: ###### ### $ $    #
        !          1315: m: #....        ##   #
        !          1316: m: #....        ######
        !          1317: m: #....        #
        !          1318: m: ###########@##
        !          1319: m:           ###
        !          1320: 081 new-maze
        !          1321: m:     ######
        !          1322: m:  ####    #
        !          1323: m:  #    ## #
        !          1324: m:  # $     #
        !          1325: m: ### #### ########
        !          1326: m: #  $   $ ##  ...#
        !          1327: m: #   $$ $$    ...#
        !          1328: m: #    $  $##  ...#
        !          1329: m: ##@## ## ##  ...#
        !          1330: m:  ###  $  ########
        !          1331: m:  #   $$  #
        !          1332: m:  #    #  #
        !          1333: m:  #########
        !          1334: 082 new-maze
        !          1335: m: ####### #########
        !          1336: m: #     # #   ##  #
        !          1337: m: # ### # #   $   #
        !          1338: m: # # $ ###   $   #
        !          1339: m: #   $$      ##$ #
        !          1340: m: #    ####   ##  #
        !          1341: m: #@############ ##
        !          1342: m: ###..    #####$ #
        !          1343: m:   #..    ####   #
        !          1344: m:   #..       $$  #
        !          1345: m:   #..    #### $ #
        !          1346: m:   #..    #  #   #
        !          1347: m:   ########  #####
        !          1348: 083 new-maze
        !          1349: m: #######
        !          1350: m: #     ##########
        !          1351: m: #     #    #  ##
        !          1352: m: # $   #   $ $  #
        !          1353: m: #  $  #  $ ##  #
        !          1354: m: # $$  ##$ $    #
        !          1355: m: ## #  ## #######
        !          1356: m: ## #  ##    ...#
        !          1357: m: #  #$       ...#
        !          1358: m: #   $$      ...#
        !          1359: m: #     ##@#  ...#
        !          1360: m: ################
        !          1361: 084 new-maze
        !          1362: m: ############
        !          1363: m: #      #   ##
        !          1364: m: # $  $   #  ######
        !          1365: m: ####  #####      #
        !          1366: m:  #..  #     #### #
        !          1367: m:  #.####  ####    #
        !          1368: m:  #....    #  $ ####
        !          1369: m:  # ...#   # $$$#  ##
        !          1370: m: ###.#### ##  $@$   #
        !          1371: m: #     ##### $ #    #
        !          1372: m: # #.# $      $###$ #
        !          1373: m: # #.########  #  $ #
        !          1374: m: # #..        ##  $ #
        !          1375: m: # # ####### $ # #  #
        !          1376: m: #   #     #       ##
        !          1377: m: #####     ##########
        !          1378: 085 new-maze
        !          1379: m: ####################
        !          1380: m: # #     #          #
        !          1381: m: #       $  ## ### ##
        !          1382: m: #####  ##   $  $   #
        !          1383: m: ##..##  # # $ # #  #
        !          1384: m: #....  $     ##$# ##
        !          1385: m: #....  $#####   #$##
        !          1386: m: ##..# #  #   #  $  #
        !          1387: m: ###.# #  $   $  # @#
        !          1388: m: ##  $  $ #   #  ####
        !          1389: m: ##       ###########
        !          1390: m: ####################

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