tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
46
Task/N-queens-problem/Lua/n-queens-problem.lua
Normal file
46
Task/N-queens-problem/Lua/n-queens-problem.lua
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue