summaryrefslogtreecommitdiff
path: root/lua/4.lua
diff options
context:
space:
mode:
authorgarhve <git@garhve.com>2022-12-06 09:04:40 +0800
committergarhve <git@garhve.com>2022-12-06 09:04:40 +0800
commitfad5591aa7eb45f0067df01b89a460f35d94fec7 (patch)
treeb810f8e85118e8de95fdf74abe7ac5be7b64f57a /lua/4.lua
parentdbf01e081c91f50b3f5101869100ddfb194ac925 (diff)
initialize
Diffstat (limited to 'lua/4.lua')
-rwxr-xr-xlua/4.lua38
1 files changed, 38 insertions, 0 deletions
diff --git a/lua/4.lua b/lua/4.lua
new file mode 100755
index 0000000..f965bc6
--- /dev/null
+++ b/lua/4.lua
@@ -0,0 +1,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)