blob: f965bc64567e3c9dc23d2108f7c367f3e1e684a0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
N = 8
function isPlaceOK(a,n,c)
for i = 1, n - 1 do
if (a[i] == c) or
(a[i] - n == c - n) or
(a[i] + n == c + n) then
return false;
end
end
return true;
end
function printSolution(a)
for i = 1, N do
for j = 1, N do
io.write(a[i] == j and "X" or "-", ' ');
end
io.write('\n');
end
io.write('\n');
end
function addQueen(a, n)
if n > N then
printSolution(a);
else
for c = 1, N do
if isPlaceOK(a,n,c) then
a[n] = c;
addQueen(a, n + 1);
end
end
end
end
addQueen({},1)
|