Answer to Exercise 94

| ANSWER TO EXERCISE 94
| `Replace` with the following. (Note the use of `@@92` as a string escape, to include a literal backslash character, and `@@124` for a vertical line.)
    Constant U_POS 28; Constant W_POS 30; Constant C_POS 31;
    Constant E_POS 32; Constant IN_POS 34;
    [ DrawStatusLine i;
        @split_window 3; @set_window 1; style reverse; font off;
        @set_cursor 1 1; spaces (0->33)-1;
        @set_cursor 2 1; spaces (0->33)-1;
        @set_cursor 3 1; spaces (0->33)-1;
        @set_cursor 1 2;  print (name) location;
        @set_cursor 1 51; print "Score: ", sline1;
        @set_cursor 1 64; print "Moves: ", sline2;
        if (location ~= thedark)
        {   ! First line
            if (location.u_to ~= 0)  { @set_cursor 1 U_POS; print "U"; }
            if (location.nw_to ~= 0) { @set_cursor 1 W_POS; print "@@92"; }
            if (location.n_to ~= 0)  { @set_cursor 1 C_POS; print "@@124"; }
            if (location.ne_to ~= 0) { @set_cursor 1 E_POS; print "/"; }
            if (location.in_to ~= 0) { @set_cursor 1 IN_POS; print "I"; }
            ! Second line
            if (location.w_to ~= 0)  { @set_cursor 2 W_POS; print "-"; }
                                       @set_cursor 2 C_POS; print "o";
            if (location.e_to ~= 0)  { @set_cursor 2 E_POS; print "-"; }
            ! Third line
            if (location.d_to ~= 0)  { @set_cursor 3 U_POS; print "D"; }
            if (location.sw_to ~= 0) { @set_cursor 3 W_POS; print "/"; }
            if (location.s_to ~= 0)  { @set_cursor 3 C_POS; print "@@124"; }
            if (location.se_to ~= 0) { @set_cursor 3 E_POS; print "@@92"; }
            if (location.out_to ~= 0){ @set_cursor 3 IN_POS; print "O"; }
        }
        @set_cursor 1 1; style roman; @set_window 0; font on;
    ];

Back to the exercise in section 33

Mechanically translated to HTML from third edition as revised 16 May 1997. Copyright © Graham Nelson 1993, 1994, 1995, 1996, 1997: all rights reserved.