47 lines
786 B
Lua
47 lines
786 B
Lua
N = 8
|
|
|
|
board = {}
|
|
for i = 1, N do
|
|
board[i] = {}
|
|
for j = 1, N do
|
|
board[i][j] = false
|
|
end
|
|
end
|
|
|
|
function Allowed( x, y )
|
|
for i = 1, x-1 do
|
|
if ( board[i][y] ) or ( i <= y and board[x-i][y-i] ) or ( y+i <= N and board[x-i][y+i] ) then
|
|
return false
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
|
|
function Find_Solution( x )
|
|
for y = 1, N do
|
|
if Allowed( x, y ) then
|
|
board[x][y] = true
|
|
if x == N or Find_Solution( x+1 ) then
|
|
return true
|
|
end
|
|
board[x][y] = false
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
if Find_Solution( 1 ) then
|
|
for i = 1, N do
|
|
for j = 1, N do
|
|
if board[i][j] then
|
|
io.write( "|Q" )
|
|
else
|
|
io.write( "| " )
|
|
end
|
|
end
|
|
print( "|" )
|
|
end
|
|
else
|
|
print( string.format( "No solution for %d queens.\n", N ) )
|
|
end
|