Annotation of researchv10no/cmd/lcc/tst/8q.c, revision 1.1.1.1

1.1       root        1: int up[15], down[15], rows[8], x[8];
                      2: int queens(), print();
                      3: 
                      4: main()
                      5: {
                      6:        int i;
                      7: 
                      8:        for (i = 0; i < 15; i++)
                      9:                up[i] = down[i] = 1;
                     10:        for (i = 0; i < 8; i++)
                     11:                rows[i] = 1;
                     12:        queens(0);
                     13:        return 0;
                     14: }
                     15: 
                     16: queens(c)
                     17: {
                     18:        int r;
                     19: 
                     20:        for (r = 0; r < 8; r++)
                     21:                if (rows[r] && up[r-c+7] && down[r+c]) {
                     22:                        rows[r] = up[r-c+7] = down[r+c] = 0;
                     23:                        x[c] = r;
                     24:                        if (c == 7)
                     25:                                print();
                     26:                        else
                     27:                                queens(c + 1);
                     28:                        rows[r] = up[r-c+7] = down[r+c] = 1;
                     29:                }
                     30: }
                     31: 
                     32: print()
                     33: {
                     34:        int k;
                     35: 
                     36:        for (k = 0; k < 8; k++)
                     37:                printf("%c ", x[k]+'1');
                     38:        printf("\n");
                     39: }

unix.superglobalmegacorp.com

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