五分钟带你了解数独游戏实战案例

五分钟带你了解数独游戏实战案例

首页游戏大全数独密室奇想夜物语正式版更新时间:2024-04-29
前言

005300000800000020070010500400005300010070006003200080060500009004000030000009700

package _8dfs; import java.util.Scanner; public class a数独游戏之模板 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); char[][]table=new char[9][]; for(int i=0;i<9;i ) { table[i]=sc.nextLine().toCharArray();//输入字符串数字 } dfs(table, 0,0); } private static void dfs(char[][] table, int x, int y) {//123代码模板 //1 出口 if (x == 9) { print(table);// 打印表 System.exit(0);// 退出 } //2 dfs if (table[x][y] == '0') {// 虚位以待 for (int k = 1; k < 10; k ) {// 1到9随便填数字 if (check(table, x, y, k)) {// 检查行,y列是否有这个数字 table[x][y] = (char) ('0' k);// 如果没有则把K数字填进去 dfs(table, x (y 1) / 9, (y 1) % 9);// 处理下一个状态 } } table[x][y] = '0';// 回溯(就是当前状态走不通,有相同的数字了) } else {// 3处理下一个状态 dfs(table, x (y 1) / 9, (y 1) % 9); } } private static void print(char[][] table) { //把没一行打出来 // TODO Auto-generated method stub for(int i=0;i<9;i ) { System.out.println(new String(table[i])); } } private static boolean check(char[][] table, int i, int j, int k) { // TODO Auto-generated method stub //检查同行和同列 for(int l=0;l<9;l ) { if(table[i][l]==(char)('0' k)) { return false; } if(table[l][j]==(char)('0' k)) { return false; } }//检查小九宫格 for(int l=(i/3)*3;l<(i/3 1)*3;l ) {//(i/3)*九宫格的起点 for(int m=(j/3)*3;m<(j/3 1)*3;m ) { if(table[l][m]==(char)('0' k)) { return false; } } } return true; } }

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved