Annotation of 43BSDTahoe/ucb/pascal/tstpx/src/eightqueens.p, revision 1.1

1.1     ! root        1: program eightqueens(output);
        !             2: const doprint = 1;
        !             3: var i : integer;
        !             4:     a : array [ 1..8 ] of boolean;
        !             5:     b : array [ 2..16] of boolean;
        !             6:     c : array [-7..7 ] of boolean;
        !             7:     x : array [ 1..8 ] of integer;
        !             8:     safe : boolean;
        !             9: 
        !            10:    procedure print;
        !            11:       var k: integer;
        !            12:    begin
        !            13:        if doprint = 1 then begin
        !            14:                write(' ');
        !            15:              for k := 1 to 8 do write(x[k]:2);
        !            16:              writeln;
        !            17:              end
        !            18:    end ;
        !            19: 
        !            20: procedure trycol(j : integer);
        !            21:    var i : integer;
        !            22: 
        !            23:    procedure setqueen;
        !            24:    begin a[i] := false; b[i+j] := false; c[i-j] := false;
        !            25:    end ;
        !            26: 
        !            27:    procedure removequeen;
        !            28:    begin a[i] := true; b[i+j] := true; c[i-j] := true;
        !            29:    end ;
        !            30: 
        !            31:     begin
        !            32:       i := 0;
        !            33:       repeat i := i+1; safe := a[i] and b[i+j] and c[i-j];
        !            34:          if safe then
        !            35:          begin setqueen; x[j] := i;
        !            36:             if j < 8 then trycol(j+1) else print;
        !            37:             removequeen
        !            38:          end
        !            39:       until i = 8
        !            40: end;
        !            41: 
        !            42: begin print; for i := 1 to 8 do a[i] := true;
        !            43:       for i := 2 to 16 do b[i] := true;
        !            44:       for i := -7 to 7 do c[i] := true;
        !            45:    trycol(1);
        !            46: end.

unix.superglobalmegacorp.com

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