初学java
尝试写了个随机产生个数独九宫格的程序
没有成功,百思不得其解,求高手指教
int yX[][]=new int [9][9];
int y=0,c=0;
boolean z=true,o=true,A=true,B=true,begin=false;
while(o)
{
o=false;
A=true;
B=true;
for(int s=0;s<9;s++)
{
for(int t=0;t<9;t++)
yX[s][t]=0;
}//数组归零
for(int a=0;a<9;a++)
{
for(int b=0;b<9;b++)
{
for( c=1;c<10;c++)
{
for(int i=0;i<9;i++)
{
if(c!=yX[a][i]||c!=yX[i][b])
{
A=true;

}
}
for(int g=a/3*3;g<a/3*3+3;g++)
{
for(int h=b/3*3;h<b/3*3+3;h++)
{
if(c!=yX[g][h])
{
B=true;
}
}
}
if(A==true||B==true)
{
begin=true;
break;

}
else
{
A=false;
B=false;
if(c==9)
{
o=true;
}
}
}//检测此位置能否有数字符合
if(o==true)
{
break;
}
while(begin)
{
Random r=new Random();
z=true;
y=Math.abs(r.nextInt()%9)+1;
for(int i=0;i<9;i++)
{
if(y==yX[a][i]||y==yX[i][b])
{
z=false;

}
}
for(int g=a/3*3;g<a/3*3+3;g++)
{
for(int h=b/3*3;h<b/3*3+3;h++)
{
if(y==yX[g][h])
{
z=false;
}
}
}
if(z==true)
{
yX[a][b]=y;
begin=false;
}
else
{
z=true;
begin=true;
}

}//上面检测到1-9中有数字符合;这里随机找个数,肯定有符合条件的值;
}
}

if(o==true)
{
break;
}


}
for(int p=0;p<9;p++)
{
for(int q=0;q<9;q++)
{
System.out.print(yX[p][q]+" ");
}
System.out.println();
}