Annotation of researchv10dc/cmd/icon/tests/queens.icn, revision 1.1.1.1

1.1       root        1: procedure main()
                      2:    every bwrite([q(1),q(2),q(3),q(4),q(5),q(6),q(7),q(8)])
                      3: end
                      4: 
                      5: procedure q(c)
                      6:    suspend place(1 to 8,c)     # look for a row
                      7: end
                      8: 
                      9: procedure place(r,c)
                     10:    static up, down, row
                     11:    initial {
                     12:         up := list(15,0)
                     13:         down := list(15,0)
                     14:         row := list(8,0)
                     15:         }
                     16:    if row[r] = down[r + c - 1] = up[8 + r - c] = 0
                     17:    then suspend row[r] <- down[r + c - 1] <-
                     18:         up[8 + r - c] <- r     # place if free
                     19: end
                     20: 
                     21: procedure bwrite(s) 
                     22:        local i,l
                     23:        every r := 1 to 8 do {
                     24:        l := repl(" .",8)
                     25:        s[i:=(1 to 8)] = r & l[2*i] := "Q"
                     26:        write (l)
                     27:        }
                     28:        write("ok?")
                     29: end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.