local B={}
local C,S={},{}
local g={}
local c,c0,c1,m=0,0,0,0
local t=""
local h={1,2,3,4,5,6,7,8,9}
local d1={{2,2},{5,5},{8,8},{2,5},{2,8},{5,2},{5,8},{8,2},{8,5},}
local d={
{-1,-1},{-1,0},{-1,1},
{0,-1},{0,0},{0,1},
{1,-1},{1,0},{1,1}
}
local function check(i0,j0,c0,B)
local ii=0
for ii=1,9 do
if B[ii][d1[i0][2]+d[j0][2]]==c0 then return false
elseif B[d1[i0][1]+d[j0][1]][ii]==c0 then return false
elseif B[d1[i0][1]+d[ii][1]][d1[i0][2]+d[ii][2]]==c0 then return false
end
end
return true
end
local function add()
local B={}
for i=1,9 do B[i]={}
for j=1,9 do
B[i][j]=0
end
end
for i=1,3 do
for j=1,9 do
c=math.random(1,#h)
B[d1[i][1]+d[j][1]][d1[i][2]+d[j][2]]=h[c]
table.remove(h,c)
end
h={1,2,3,4,5,6,7,8,9,}
end
for i=1,9 do t=t.."\n"
for j=1,9 do
t=t..B[i][j].." , "
end
end
print("随机:\n"..t)
for i=4,9 do
i0=i
for j=1,9 do
j0=j
h={1,2,3,4,5,6,7,8,9}
if B[d1[i][1]+d[j][1]][d1[i][2]+d[j][2]]==0 then
for k=1,9 do
c=math.random(1,#h)
c0=h[c]
if check(i0,j0,c0,B) then
B[d1[i][1]+d[j][1]][d1[i][2]+d[j][2]]=c0
table.remove(h,c)
break
else
k=k-1
end
if #h==0 and j>=1 then
for m=1,j do
B[d1[i][1]+d[m][1]][d1[i][2]+d[m][2]]=0
i=i-1
j=1
break
end
end
end
end
end
end
t=""
for i=1,9 do t=t.."\n"
for j=1,9 do
t=t..B[i][j].." , "
end
end
print("出题:\n"..t)
end
add()