diff options
author | garhve <git@garhve.com> | 2022-12-06 09:04:40 +0800 |
---|---|---|
committer | garhve <git@garhve.com> | 2022-12-06 09:04:40 +0800 |
commit | fad5591aa7eb45f0067df01b89a460f35d94fec7 (patch) | |
tree | b810f8e85118e8de95fdf74abe7ac5be7b64f57a /lua/4.lua | |
parent | dbf01e081c91f50b3f5101869100ddfb194ac925 (diff) |
initialize
Diffstat (limited to 'lua/4.lua')
-rwxr-xr-x | lua/4.lua | 38 |
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) |