java写的生成数独代码(sudoku code generated by java)

java写的生成数独代码(sudoku code generated by java)

ID:36291187

大小:19.23 KB

页数:12页

时间:2019-05-08

java写的生成数独代码(sudoku code generated by java)_第1页
java写的生成数独代码(sudoku code generated by java)_第2页
java写的生成数独代码(sudoku code generated by java)_第3页
java写的生成数独代码(sudoku code generated by java)_第4页
java写的生成数独代码(sudoku code generated by java)_第5页
资源描述:

《java写的生成数独代码(sudoku code generated by java)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、java写的生成数独代码(SudokucodegeneratedbyJava)包装测试;进口java.util.linkedlist;进口java.util.random;/***自动获取数独*@作者huangr2013.02.19*/公共类的蜀都{publicstaticvoidmain(String[]args){蜀都SD=新shudu();initshudu()SD;(1)startshuduSD;}int长度;//长度国际currps;//当前正在处理的位置字节[]num=null;//结果字节[]ANSP=null;//可用解在解集合中的位置字节的[][]ansval=nu

2、ll;//可用解集合随机路=新();公共shudu(){长度=9;}/***初始化数独*/initshudu(){publicvoid//初始化结果如果(数字=NULL){新字节[长度*长度];}ANSP=新的字节长度*[长度];ansval=新的字节长度*[长度][长度];currps=0;//初始化赋值对于(int=i0;i<长度*长度;i++){数字i=0;ANSP[我]=0;对于(int=0;j<长度;j++){ansval[我][J]=0;}}}/***开始进行数独*@param计数需获取数独的个数,1代表所有。*/公共无效startshudu(int数){//当前正在解的

3、结果标记国际currcount=0;//循环获取结果的解而(currcount<计数

4、

5、数==1){//若当前解的位置为0,则获取可用解集合如果(ANSP[currps]==0){getans();}//获取当前可用解个数intANS=getanscount();0/若当前位置为并且解可用解为0,则视为无解,跳出循环结束。如果(currps==0和ANS==0){打破;}elseif(ANSP[currps]==和==0

6、

7、ANS){//若当前解位置为可用解的个数或可用解为0,则返回上一个位置的下一个可用解重新开始Num[currps]=0;ANSP[currps]=0;currps

8、--;继续;}否则{//解可用,赋值setans();ANSP[currps]++;currps++;}如果(长*长度==currps){//若当前位置进行到数独的最大值,打印获取的数独结果,手动返回上一个位置获取下一个不同的数独解。outdata();currcount++;currps--;Num[currps]=0;ANSP[currps]=0;系统,println(“”);}}}/***获取当前位置的所有可用解*/PublicvoidgetAns(){//defaultsettingsallavailablesolutionsFor(bytei=1;i

9、+){AnsVal[currPs][i-1]=i;}//currentpositioninthearraylineIntbeginR=currPs/length;Thecurrentpositioninthearray/columnIntbeginC=currPs%length;For(inti=0;i

10、thecolumn/deletethesamesetofSolutionsIf(num[length*i+beginC]!=0){AnsVal[currPs][num[length*i+beginC]-1]=0;}}Asmallnumberof9th//IntsubBox=(int)Math.sqrt(length);Inthefirstfewlines/smallhouseIntboxR=beginR/subBox;Locatedinthesmallhouse/columnsIntboxC=beginC/subBox;Thedataintheninth//loop,ifthesol

11、utionsetisdeletedFor(inti=subBox*boxR;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。