c语言数独游戏程序(C language Sudoku program).docVIP

c语言数独游戏程序(C language Sudoku program).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言数独游戏程序(C language Sudoku program)

c语言数独游戏程序(C language Sudoku program) / * * *数独程序 * / 公共类的蜀都{ / * * /存储数字的数组 静态int [] = n =新int [ 9 ] [] 9 ]; / * * /生成随机数字的源数组,随机数字从该数组中产生 static int [] num = { 1,2,3,4,5,6,7,8,9 }; public static void main(String [] args){ / /生成数字 对于(int = i 0;i 9;i + +){ / /尝试填充的数字次数 int时间= 0; / /填充数字 对于(int = 0;j<9;j + +){ / /产生数字 n [我] [ J ] = generatenum(时间); / /如果返回值为0,则代表卡住,退回处理 / /退回处理的原则是:如果不是第一列,则先倒退到前一列,否则倒退到前一行的最后一列 如果(n i = j = 0){ / /不是第一列,则倒退一列 如果(j = 0){ J=2; 继续; }否则{ //是第一列,则倒退到上一行的最后一列 我--; j=8; 继续; } } / /填充成功 如果(iscorret(i,j)){ / /初始化时间,为下一次填充做准备 时间= 0; } { //继续填充其他 次数增加/ / 1 时间+; / /继续填充当前格 J; } } } / /输出结果 对于(int = i 0;i 9;i + +){ 对于(int = 0;j<9;j + +){ 系统。输出; } 系统println()。出去; } } / * * *是否满足行、列和3x3区域不重复的要求 * @param排行号 * @param Col列号 * @还真代表符合要求 * / 公共静态布尔iscorret(行,int型){ 返回(检验行(列)与这种(COL)和checknine(行,列)); } / * * *检查行是否符合要求 * @param排检查的行号 * @还真代表符合要求 * / 公共静态布尔检验行(行){ 对于(int = 0;j<8;j + +){ 如果(n行= j = 0){ 继续; } for (int k = j + 1, k 9; k + +) { if (n [row] [j] = = n [row] [k]) { return false; } } } return true; } / * * * 检查列是否符合要求 * @ param col 检查的列号 * @ return true代表符合要求 * / public static boolean checkline (int col) { for (int j = 0 and j 8; j + +) { if (n [j] [col] = = 0) { continue; } for (int k = j + 1, k 9; k + +) { if (n [j] [col] = = n [c] [col]) { return false; } } } return true; } / * * * 检查3x3区域是否符合要求 * @ param row 检查的行号 * @ param col 检查的列号 * @ return true代表符合要求 * / public static boolean checknine (int row, int col) { / / 获得左上角的坐标 int j = row / 3 * 3; int c = col / 3 * 3; / / 循环比较 for (int i = 0; i 8; i + +) { if (n [j + i / 3] [k + in% 3] = = 0) { continue; } for (int m = i + 1; m 9; m + +) { if (n [j + i / 3] [k +] in% 3 = = n [j + m / 3] [k + m% 3]) { return false; } } } return true; } / * * * 产生1 - 9之间的随机数字 * 规则: 生成的随机数字放置在数组8 - time下标的位置, 随着time的增加, 已经尝试过的数字将不会在取到 * 说明: 即第一次次是从所有数字中随机, 第二次时从前八个数字中随机, 依次类推, * 这样既保证随机, 也不会再重复取已经不符合要求的数字, 提高程序的效率 * 这个规则是本算法的核心 * @ param time 填充的次数, 0代表第一次填充 * @ return * / public static int generatenum (int

您可能关注的文档

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档