数独游戏java代码 数独游戏编程( 五 )


}
/*****删除同一列中的元素****/
for(rownum=0;rownum9;++rownum)
{
delete_value(IVEC[i],MATRIX[rownum][col]);
}
/*****删除在一个3×3方阵中的元素******/
/******在第1块中,删除3×3方阵元素*****/
if(row/3==0col/3==0)
{
for(int r=0;r3;++r)
{
for(int c=0;c3;++c)
{
delete_value(IVEC[i],MATRIX[r][c]);
}
}
}
/******在第2块中 , 删除3×3方阵元素*****/
if(row/3==0col/3==1)
{
for(int r=0;r3;++r)
{
for(int c=3;c6;++c)
{
delete_value(IVEC[i],MATRIX[r][c]);
}
}
}
/******在第3块中,删除3×3方阵元素*****/
if(row/3==0col/3==2)
{
for(int r=0;r3;++r)
{
for(int c=6;c9;++c)
{
delete_value(IVEC[i],MATRIX[r][c]);
}
}
}
/******在第4块中,删除3×3方阵元素*****/
if(row/3==1col/3==0)
{
for(int r=3;r6;++r)
{
for(int c=0;c3;++c)
{
delete_value(IVEC[i],MATRIX[r][c]);
}
}
}
/******在第5块中,删除3×3方阵元素*****/
if(row/3==1col/3==1)
{
for(int r=3;r6;++r)
{
for(int c=3;c6;++c)
{
delete_value(IVEC[i],MATRIX[r][c]);
}
}
}
/******在第6块中,删除3×3方阵元素*****/
if(row/3==1col/3==2)
{
for(int r=3;r6;++r)
{
for(int c=6;c9;++c)
{
delete_value(IVEC[i],MATRIX[r][c]);
}
}
}
/******在第7块中 , 删除3×3方阵元素*****/
if(row/3==2col/3==0)
{
for(int r=6;r9;++r)
{
for(int c=0;c3;++c)
{
delete_value(IVEC[i],MATRIX[r][c]);
}
}
}
/******在第8块中,删除3×3方阵元素*****/
if(row/3==2col/3==1)
{
for(int r=6;r9;++r)
{
for(int c=3;c6;++c)
{
delete_value(IVEC[i],MATRIX[r][c]);
}
}
}
/******在第9块中,删除3×3方阵元素*****/
if(row/3==2col/3==2)
{
for(int r=6;r9;++r)
{
for(int c=6;c9;++c)
{
delete_value(IVEC[i],MATRIX[r][c]);
}
}
}
}
}
}
/*********返回9×9候选集合元素最少的候选集合序号*******/
intmin_seq()
{
int count[81];
int i;
for(i=0;i81;++i)
{
count[i]=IVEC[i].size();
}
intvalue=https://www.04ip.com/post/10;
intmin_seq;
for(i=0;i81;++i)
{
if(count[i]==0)
{
continue;
}
if(count[i]value)
{
value=https://www.04ip.com/post/count[i];
min_seq=i;
}
}
return min_seq;
}
/********随机生成一个位置序号并取得该序号所对应的元素值******/
intchoose_seq(int min_seq)
{
/*****根据当前时间设置种子******/
srand((unsigned)time( NULL ));
int random_seq=rand()%(IVEC[min_seq].size());
returnIVEC[min_seq][random_seq];
}
/*******填充该元素并判断是否填充完毕********/
intis_finish(int min_seq, int choose_value)
{
introw, column;
row=min_seq/9;
column=min_seq%9;
MATRIX[row][column]=choose_value;
FINISH_COUNT++; /****已填充元素个数加1*****/
/*******填充完毕判断********/
if(FINISH_COUNT==81-INITIAL_COUNT)
{
return1;
}
else
{
return0;
}
}
希望对你有帮助?。?
c++或java 写一个解3阶数独的程序123456789101112131415161718192021public static Geocache[] createGeocaches(int a) {if(a = 0) return new Geocache[0];Random rand = new Random();Geocache[] result = new Geocache[a];for(int i = 0; ia; i++) {//因为题目没有描述,这里假设x, y是随机整数,Geocache有a href="https://www.04ip.com/post/;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dhrjIWn1D4n19hmWDzm1R0IAYqnWm3PW64rj0d0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkPWm4rjR4rHbLPWR1nH63P16L" target="_blank" class="baidu-highlight"构造函数/a(int, int)int x = rand.nextInt();int y = rand.nextInt();result[i] = new Geocache(x, y);}return result; }

推荐阅读