# 2026-07-06 - WILDFIRE.AWK
       
       I converted WILDFIRE.BAS to WILDFIRE.AWK [1].  I changed the program
       to use a command style interface, with chess-style algebraic notation
       for grid locations.  I added a new glyph "+" to represent controlled
       fire.  I also changed the interface so that the commands are written
       or queued and the target location displayed on the map, making it
       possible to correct a mistake before sending the command.
       
       For the sample run, i used Jerome Shidel's LOGGER.SYS to capture the
       program output from mawk.  It's kind of like using the `script`
       command on *nix.
       
       I wrote WILDFIRE.AWK using mawk on SvarDOS.  It is 310 lines long,
       compared to 82 lines of BASIC.  It ran without modification on
       Linux using busybox AWK and gawk.
       
       Here's how i ran it.  The - option uses stdin for input.
       
           $ awk -f wildfire.awk -
       
       What follows is an updated description of the Wildfire simulation.
       
       # Scenario
       
       A lightning storm has ignited fires in a forest.  Your task is to
       put out the fires and save as many trees as possible.  The forest is
       divided into 81 sectors formed by a 9x9 grid.  Each sector is
       identified by the row number and column letter.
       
       Symbols:
       
           "." -- woods
           "*" -- fire, uncontrolled
           "+" -- fire, under control
           " " -- burnt out woods
       
       The chance of an existing fire spreading to adjacent wooded areas is
       70%. Fires last for nine turns before burning out.
       
       You have two weapons with which to fight the fire.  You can drop
       chemicals that are designed to extinguish the fires in a specified
       sector.  The chance that the drop will affect the fires in this
       sector and its eight adjacent sectors is 50%.  For example, if there
       are six fires burning in a nine-square area, approximately three
       will be affected by the chemicals.  The effect of chemicals is to
       reduce the number of turns before the fire burns out by three.
       Since a fire lasts only nine turns, three successful chemical hits
       will be needed to extinguish a fire.  If the fire has been burning
       for six turns, then one hit will suffice.  To drop chemicals, use
       the "DROP" or "D" command with the row & column.
       
       The second weapon available to you is a backfire.  To start a
       backfire, you must use the "BACK" or "B" command with the row &
       column of the location.  The sector in which a backfire is started
       must be wooded.  This backfire will not spread and will burn out in
       the next turn, forming a barrier against the spread of fire.
       
       Your rating will be the number of trees remaining after all the
       fires are out, plus 30.
       
       # Sample Run
       
           Turn #1
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . . . .
           4  . . . . . . . * .
           5  . . . . . . . * .
           6  . . . * . . . . .
           7  . . . . . . . . .
           8  . . . . . . . . .
           9  . . . . . . . . .
           
           Enter command (or "?"): BACK 4 G
           
           Turn #1
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . . . .
           4  . . . . . . B * .
           5  . . . . . . . * .
           6  . . . * . . . . .
           7  . . . . . . . . .
           8  . . . . . . . . .
           9  . . . . . . . . .
           
           Enter command (or "?"): SEND
           
           Turn #2
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . . . .
           4  . . . . . . + * .
           5  . . . . . . . * .
           6  . . . * . . . . *
           7  . . . . . . . . .
           8  . . . . . . . . .
           9  . . . . . . . . .
           
           Enter command (or "?"): BACK 5 G
           
           Turn #2
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . . . .
           4  . . . . . . + * .
           5  . . . . . . B * .
           6  . . . * . . . . *
           7  . . . . . . . . .
           8  . . . . . . . . .
           9  . . . . . . . . .
           
           Enter command (or "?"): SEND
           
           Turn #3
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . . . .
           4  . . . . . .   * .
           5  . . . . . . + * .
           6  . . . * . . . . *
           7  . . . . . . . . .
           8  . . . . . . . . .
           9  . . . . . . . . .
           
           Enter command (or "?"): BACK 6 H
           
           Turn #3
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . . . .
           4  . . . . . .   * .
           5  . . . . . . + * .
           6  . . . * . . . B *
           7  . . . . . . . . .
           8  . . . . . . . . .
           9  . . . . . . . . .
           
           Enter command (or "?"): SEND
           
           Turn #4
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . . . .
           4  . . . . . .   * .
           5  . . . . . .   * .
           6  . . . * . . . + *
           7  . . . . . . . . *
           8  . . . . . . . . .
           9  . . . . . . . . .
           
           Enter command (or "?"): BACK 7 H
           
           Turn #4
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . . . .
           4  . . . . . .   * .
           5  . . . . . .   * .
           6  . . . * . . . + *
           7  . . . . . . . B *
           8  . . . . . . . . .
           9  . . . . . . . . .
           
           Enter command (or "?"): SEND
       
       Skip forward past turns 5 through 10...
       
           Turn #11
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .     *
           6  . . .   . . .    
           7  . . + +   . .   +
           8  . . . *   . . . *
           9  . . . * * *   . .
           
           Enter command (or "?"): BACK 8 C
           
           Turn #11
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .     *
           6  . . .   . . .    
           7  . . + +   . .   +
           8  . . B *   . . . *
           9  . . . * * *   . .
           
           Enter command (or "?"): SEND
           
           Turn #12
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .     +
           6  . . .   . . .    
           7  . .   +   . .    
           8  . . + +   * . . *
           9  . . . * * *   . .
           
           Enter command (or "?"): BACK 9 C
           
           Turn #12
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .     +
           6  . . .   . . .    
           7  . .   +   . .    
           8  . . + +   * . . *
           9  . . B * * *   . .
           
           Enter command (or "?"): SEND
       
       Skip forward past turns 13 through 15...
       
           Turn #15
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .      
           6  . . .   . . .    
           7  . .         +    
           8  . .       * * . *
           9  . .   *   +   . .
           
           Enter command (or "?"): DROP 8 F
           
           Turn #15
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .      
           6  . . .   . . .    
           7  . .    [ _ _+]   
           8  . .    [ _*_*]. *
           9  . .   *[ _+_ ]. .
           
           Enter command (or "?"): SEND
           
           Turn #16
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .      
           6  . . .   . . .    
           7  . .              
           8  . .       + + . +
           9  . .   +       . .
           
           Enter command (or "?"): DROP 8 H
           
           Turn #16
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .      
           6  . . .   . . .    
           7  . .        [ _ _ 
           8  . .       +[+_._+
           9  . .   +    [ _._.
           
           Enter command (or "?"): SEND
           
           Turn #17
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .      
           6  . . .   . . .    
           7  . .              
           8  . .           . +
           9  . .   +       . .
           
           Enter command (or "?"): DROP 8 I
           
           Turn #17
           
              A B C D E F G H I
           1  . . . . . . . . .
           2  . . . . . . . . .
           3  . . . . . . .   .
           4  . . . . . .     .
           5  . . .   . .      
           6  . . .   . . .    
           7  . .          [ _ 
           8  . .          [._+
           9  . .   +      [._.
           
           Enter command (or "?"): SEND
           Your rating is 83.
       
       # Grid location status
       
                0 -- Burnt woods
           1 to 9 -- Fire
               10 -- Woods
               11 -- Temporary variable
       
       tags: occ2026,retrocomputing
       
       # Footnotes
       
 (TXT) [1] WILDFIRE.AWK
       
       # Tags
       
 (DIR) occ2026
 (DIR) retrocomputing