Warning: this is an htmlized version! The original is across this link, and the conversion rules are here.
```-- 2011may20
-- http://angg.twu.net/LUA/8queens.lua.html
-- http://angg.twu.net/LUA/8queens.lua
--         (find-angg "LUA/8queens.lua")

--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
--]]
toxy = function (s) return s:byte(1, 1)-64, s:sub(2)+0 end
toan = function (x, y) return string.char(64+x)..(y+0) end
attack = function (an1, an2)
local x1, y1 = toxy(an1)
local x2, y2 = toxy(an2)
local dx, dy = x2-x1, y2-y1
return dx==0 or dy==0 or dx==dy or dx==-dy
end
settest = function (x, y)
an[x] = toan(x, y)
for i=1,x-1 do
if attack(an[i], an[x]) then return false end
end
return true
end
an = {}
for y1=1,8 do if settest(1, y1) then
for y2=1,8 do if settest(2, y2) then
for y3=1,8 do if settest(3, y3) then
for y4=1,8 do if settest(4, y4) then
for y5=1,8 do if settest(5, y5) then
for y6=1,8 do if settest(6, y6) then
for y7=1,8 do if settest(7, y7) then
for y8=1,8 do if settest(8, y8) then
print(table.concat(an, " "))
end end
end end
end end
end end
end end
end end
end end
end end
```