scc

A fork of https://git.simple-cc.org/scc/ for Qute

git clone https://git.8pit.net/scc.git

 1#include <stdlib.h>
 2
 3int N;
 4int *t;
 5
 6int
 7chk(int x, int y)
 8{
 9        int i;
10        int r;
11
12        for (r=i=0; i<8; i++) {
13                r = r + t[x + 8*i];
14                r = r + t[i + 8*y];
15                if (x+i < 8 & y+i < 8)
16                        r = r + t[x+i + 8*(y+i)];
17                if (x+i < 8 & y-i >= 0)
18                        r = r + t[x+i + 8*(y-i)];
19                if (x-i >= 0 & y+i < 8)
20                        r = r + t[x-i + 8*(y+i)];
21                if (x-i >= 0 & y-i >= 0)
22                        r = r + t[x-i + 8*(y-i)];
23        }
24        return r;
25}
26
27int
28go(int n, int x, int y)
29{
30        if (n == 8) {
31                N++;
32                return 0;
33        }
34        for (; y<8; y++) {
35                for (; x<8; x++)
36                        if (chk(x, y) == 0) {
37                                t[x + 8*y]++;
38                                go(n+1, x, y);
39                                t[x + 8*y]--;
40                        }
41                x = 0;
42        }
43	return 0;
44}
45
46int
47main()
48{
49        t = calloc(64, sizeof(int));
50        go(0, 0, 0);
51        if(N != 92)
52        	return 1;
53        return 0;
54}
55