|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.