完整的九宫格算法程序
9宫格数独解题方法

9宫格数独解题方法数独是一种逻辑解谜游戏,使用9×9的方格组成,目标是在每一行、每一列和每个3×3的小方格中填入数字1-9,使得每一行、每一列和每个小方格中的数字均不重复。
以下是解决9宫格数独的一般方法,包括基本规则和高级技巧。
1. 基本规则1.1 唯一数字法•对于每一行、每一列和每个小方格,数字1-9必须唯一。
1.2 排除法•根据已填数字的信息,排除其他可能的数字。
例如,如果某一行已经有数字1、2、3,那么该行的其他空格不能再填入1、2、3。
2. 递归回溯法2.1 试填数字•从1到9尝试填入某个空格,根据基本规则判断是否合法。
2.2 回溯•如果某个数字无法使数独保持合法,就回到上一步,换一个数字尝试,直到找到解决方案。
3. 候选数法3.1 候选数列表•对于每个空格,建立候选数列表,即可能填入的数字。
3.2 不断更新候选数•根据已填数字的信息,不断更新候选数列表,排除不可能的数字。
4. 块排除法4.1 对角线规则•如果数独规则要求,对角线上的数字也不能重复。
4.2 块排除法•根据已填数字的信息,排除同一小方格中其他空格的候选数。
5. X-Wing法5.1 两次出现•找到两个行或列,同一个数字只出现两次,且在同一行或同一列。
这两行或列上的其他同样位置的候选数可以被排除。
6. Swordfish法6.1 三次出现•类似于X-Wing,但这次是在三个行或列上找到同一数字出现的三个位置,可以排除其他同样位置的候选数。
7. Chain法7.1 数链•通过一系列数字相互连接的方式,找到一个数字的确切位置。
8. Coloring法8.1 同色数•如果某个数字在两个不同的行或列上都有候选数,且这两个位置在同一小方格中,可以排除其他同色位置的候选数。
9. 数独软件和解题器•利用计算机上的数独软件或在线解题器,可以更快速地找到解决方案,也可用于学习高级解法。
数独的解题方法因人而异,可以根据个人偏好和水平选择不同的方法。
麻将九宫格游戏规则

麻将九宫格游戏规则一、【游戏规则】游戏人数:4人,牌数:136张,游戏骰子:两个骰子,翻数:无翻。
二、【定庄】新开第一局系统随机选择一个庄家。
之后每一盘牌,如果庄家赢或者荒庄,则继续坐庄,直至闲家赢牌为止,依出牌顺序(逆时针)由下一位上庄。
三、【接牌】发牌方向从第二个摇骰子者开始逆时针方向取,发牌的位置按顺时针计算2次摇骰子的总和,由庄家开始拿牌,每次拿2墩。
比如第一次摇的是1和2,那么第二个摇骰子者就是庄家的对家,对家摇第二次是2和4,那么两次总和为9。
从庄家的对家玩家开始先挪走9墩牌后由庄家开始拿牌。
一开始庄家有14张牌,其余人有13张牌。
四、【黄庄】没有杠的情况下剩下13 墩牌黄庄,有1个杠牌就7墩牌黄庄,有2个杠牌就8墩牌黄庄,有3个杠牌就13墩牌黄庄,4个杠牌就直接算黄庄。
黄牌后庄家继续坐庄。
五、【吃碰杠牌】打牌过程中,可以碰、杠牌,不允许吃牌。
开杠后从牌城尾部补牌。
六、【抢杠】如果有人要碰牌后补杠,这时恰好别人要胡牌,就叫抢杠。
胡牌优先,按照放胡得分。
七、【截胡】打出一张牌,多人要胡,按照逆时针顺序只有第一人算胡,后面的不能算胡。
八、【炮子】陕西术语,就是赢了输了,都要加倍的。
默认上回的下炮子值。
最大封顶为 4 个,最小可以为零。
九、【胡牌牌型】1)11、123、123、123、1232)11、123、123、123、111(1111,下同)3)11、123、123、111、1114)11、123、111、111、1115)11、111、111、111、1116)七对、十三幺、全不靠和组合龙不算十、【输赢算法】1)底分:一个固定的分数3分2)输赢分数 = 胡牌分数下炮子分数杠的分数3)胡牌分数:①放胡:赢家收取其他玩家1倍底分。
输家输掉1倍底分。
②自摸:赢家收取其他玩家2倍底分。
输家输掉2倍底分。
4)庄家翻倍:胡牌时,无论输赢庄家的结果将以两倍计算。
庄家翻倍只针对胡牌分数。
5)下炮子分数:①赢家得分:(自己的炮子数*3 其他玩家炮子总数)* A * 底分②输家扣分:(自己的炮子数赢家的炮子数)* A * 底分其中A为不同胡牌类型系数,放胡A=1,自摸A=2。
九宫格算法

2
3
13
5
6
7
8
9
10
11
12
4
14
15
1
3、将内四角对角交换如下,完成转换:(即6换11、7换10)
16
2
3
13
5
11
10
8
9
7
6
12
4
14
15
1
三、五五格算法,使横看竖看斜看均为65:
1、首先绘制五五格如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
4
1
2
7
5
3
8
9
6
2
3
6
1
5
9
4
7
8
3、将中间十字以5为中心对称交换实现九宫格,结果如下:(第一个为上面第一个交换后,第二个同第一个)
4
9
2
3
5
7
8
1
6
2
7
6
9
5
1
4
3
8
二、四四格算法,使横看竖看斜看均为34:
1、先绘制四四格如下,并填写பைடு நூலகம்据。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2、将外四角对角交换如下:(即1换16、4换13)
两位数乘两位数九宫格算法

两位数乘两位数九宫格算法
两位数乘两位数九宫格算法是一种快速计算乘法的技巧,它的原理是将两个两位数分解成十位和个位,然后按照九宫格的方法进行计算。
这个算法的优点在于简洁易懂,计算效率高,适用范围广泛,让我们一起来学习它的详细步骤。
1. 将两个两位数分解成十位和个位。
例如,将23和46分解为20+3和40+6。
2. 在九宫格中画出一个3x3的方格,在左上角的格子里填上两个十位数相乘的结果,即2x4=8。
在右下角的格子里也填上两个个位数相乘的结果,即3x6=18。
3. 剩下的6个格子分别填上四个交叉相乘的结果,即分别填上2x6=12、4x3=12、2x4=8和3x2=6。
4. 将九宫格中所有的数字相加,即8+12+12+8+18+6=64,得到最终的乘积结果为23x46=1,058。
此外,两位数乘两位数九宫格算法还有一个非常有用的变种:如果要计算的两个数中,有一个只有一位数,可以把这个数看作两位数的十位数是0,然后按照上述步骤进行计算即可。
总之,两位数乘两位数九宫格算法是一种非常实用的计算技巧,能够帮助我们更快速地进行乘法运算。
熟练掌握这个算法,能够在日常生活、工作中提高我们的计算效率,更好地服务于我们的工作和生活。
九宫格魔方口诀

九宫格魔方口诀魔方游戏是一款非常受欢迎的休闲游戏,它经常作为潮流元素,在各种场合广泛流行。
魔方玩家最熟悉的,就是用口诀来解魔方。
九宫格魔方口诀也称为是九宫格魔方步骤口诀,是打九宫格魔方时最常用的算法口诀。
魔方打乱后,如果能按照一定的技巧来操作,就可以轻松解出九宫格魔方。
要想掌握九宫格魔方口诀,首先要理解口诀中的每项操作和每项操作的内涵。
九宫格魔方口诀的步骤是由4个字母和4个数字组成的,比如“L,U,R,F2,R2,D2,L2,U2”。
这些字母和数字代表的是魔方的8个面,分别是左,上,右,前,后,下,转动90度,转动180度。
下面就给大家介绍九宫格魔方口诀的主要内容。
一、“L,U,R,F”四面操作首先,解九宫格魔方口诀第一步,是先把“L,U,R,F”四面操作记住,那么这四个词语是什么意思呢?L代表的是左,U代表的是上,R代表的是右,F代表的是前,当然还有B代表的是后。
二、先把U面的左上角和右上角的颜色移动到前面接下来,要先把U面的左上角和右上角的颜色移动到前面,当左上角移动到前面时,就要用口诀,L,U,R,F2,R2,D2,L2,U2来操作,分别代表的是左,上,右,前,转动90度,后,转动180度,上,转动180度。
三、再把右上角的色块移动到上面接下来,要将右上角的色块移动到上面,通过R,U2,R2,U,L,U,R’,U’,L’的口诀来操作,分别代表的是右,上,转动180度,右,转动180度,上,左,上,右,转动270度,上,转动270度,左,转动270度。
四、把魔方旋转,把右上角的色块移动到正确的位置接下来,要将魔方旋转,把右上角的色块移动到正确的位置,可以用步骤是:先用U,R,U’,R’的口诀,分别代表的是上,右,上,转动270度,右,转动270度,来操作,然后再用R2,U2,R2,U2,F,U,R’,U’,L’,R,U,R’,U’,L’的口诀,分别代表的是右,转动180度,上,转动180度,右,转动180度,前,上,右,转动270度,上,转动270度,左,转动270度,右,上,右,转动270度,上,转动270度,左,转动270度。
平码三中三9宫算法

平码三中三9宫算法
9宫算法是一种以九宫格形式进行抽码,及进行投注选号的算法。
它使用九宫格排列3个号码,一种名为“平码三中三”的投注方案就是使用这种技术进行码抽选。
九宫格算法的基本步骤如下:
1、首先,从1到9不重复的号码中,随机抽取3个号码,排列在一个3x3的九宫格中;
2、选取中奖号码,若号码与九宫格中排列的号码一致,则视为中奖。
3、此外,还存在术语“前码”和“后码”,即在サーケ面向时,竖排的第一行则为“前码”,而竖排的最后一行则为“后码”。
4、九宫格算法并不仅限于三中三号码抽码,它也可以用在一个九宫格中排列4个号码,这时就可以使用术语“前中码”和“后中码”等,以此类推。
九宫格算法是一种简单可信的算法,有了它,能更方便、安全地抽取码,提高中奖率,使得彩民更容易获得奖金。
完整的九宫格算法程序

package ninegrid;import java.util.ArrayList;import java.util.List;/***功能说明:九宫格功能实现bean**@author ClarkJia**/public class NineGrid{protected Integer nineGrid[][] = new Integer[9][9]; //九宫格阵列图protected Boolean existsGrid[][] = new Boolean[9][9];//九宫每个位置是否已经存在值protected int x = 0; //当前填空点位x坐标protected int y = 0; //当前填空点位y坐标protected int times = 0;//计算次数统计// 初始构造九宫格public NineGrid(Integer[][] initData){//ArrayUtils.cloneArray(nineGrid, initData);//复制原始九宫格for (int i = 0; i < 9; i++){for (int j = 0; j < 9; j++){nineGrid[i][j] = initData[i][j];if(nineGrid[i][j]>0){existsGrid[i][j] = true;}else{existsGrid[i][j] = false;}}}}public NineGrid(){}/***查找可填充的合法的x,y值集*@return*/public Integer[] getValidData(){//空格中数字已经存在,则返回nullif (existsGrid[x][y]){return null;}List<Integer> tempList = new ArrayList<Integer>();// 找到x轴剩余的数字for (int i = 1; i < 10; i++)boolean hasValue = false;for (int k = 0; k < 9; k++){if (nineGrid[x][k] == i){hasValue = true;break;}}// 在x轴中没有找到if (!hasValue){tempList.add(i);}}// 找xy轴都没有的数字for (int i = 0; i < tempList.size(); i++){Integer t = (Integer) tempList.get(i);boolean hasValue = false;for (int k = 0; k < 9; k++){if (nineGrid[k][y] == t.intValue()){hasValue = true;break;}}// y轴中找到x的数字则删除它if (hasValue){tempList.remove(i);i--;}}for (int i = 0; i < tempList.size(); i++){Integer t = (Integer) tempList.get(i);// 检查这个是否能满足小三宫格int starti = (x / 3) * 3;int startj = (y / 3) * 3;boolean hasEqual = false;// 表示是否已经存在,若存在则删除for (int m = starti; m < starti + 3; m++){for (int n = startj; n < startj + 3; n++){if (nineGrid[m][n] != null && t.equals(nineGrid[m][n])) {hasEqual = true;break;}}}if (hasEqual){tempList.remove(i);i--;}Integer returnInts[] = new Integer[tempList.size()];for (int i = 0; i < tempList.size(); i++){Integer t = (Integer) tempList.get(i);returnInts[i] = t.intValue();}return returnInts;}/***查找横行或竖列中空格最少的那个点位置*@return*/public String getLeastLocation(){int xLeast = 10; // x 轴中空缺数最少个数int xI = 10; // 索引int yLeast = 100;int yI = 10;for (int i = 0; i < 9; i++){int temp = 0;for (int j = 0; j < 9; j++){if (nineGrid[i][j] == 0){temp++;}}if (temp > 0 && temp < xLeast){xLeast = temp;xI = i;}}// 如果x只剩下一个空位,则填写空位if (xLeast == 1){return"x" + xI;}else{for (int i = 0; i < 9; i++){int temp = 0;for (int j = 0; j < 9; j++){if (nineGrid[j][i] == 0){temp++;}}if (temp > 0 && temp < xLeast){yLeast = temp;yI = i;}}}{return"x" + xI;} else if (yLeast <= xLeast){return"y" + yI;} else{return null;}}/***打印结果**@return*/public void doPrint(){System.out.println(" ------------------------------------");for (int i = 0; i < 9; i++){for (int j = 0; j < 9; j++){System.out.print(" | " + nineGrid[i][j]);}System.out.println(" |");System.out.println(" ------------------------------------");}}/***检查是否生成成功**@return*/public boolean checkResult(){for (int i = 0; i < 9; i++){for (int j = 0; j < 9; j++){if (nineGrid[i][j].intValue() == 0) // 若仍存在0位置点,则求解失败 {return false;}}}return true;}public Integer[][] get_nine(){return nineGrid;}public void set_nine(Integer[][] _nine){this.nineGrid = _nine;}public Boolean[][] get_bool(){}public void set_bool(Boolean[][] _bool){this.existsGrid = _bool;}public int getX(){return x;}public void setX(int x){this.x = x;}public int getY(){return y;}public void setY(int y){this.y = y;}public void setValue(int value){nineGrid[x][y] = value;existsGrid[x][y] = true;}public int getValue(){return nineGrid[x][y];}public int getTimes(){return times;}public void setTimes(int times){this.times = times;}}package ninegrid;import java.util.ArrayList;import java.util.List;/*** 功能说明:九宫格堆栈模拟** @author ClarkJia**/public class NineGridList{private List<NineGrid> nineGridList = new ArrayList<NineGrid>();//模拟九宫格list堆栈//压栈public void push(NineGrid jiuGong){nineGridList.add(jiuGong);}//弹栈public NineGrid pop(){NineGrid jiuGong = newJiuGong((NineGrid) nineGridList.remove(nineGridList.size() - 1));return jiuGong;} else{// System.out.println("题目给定九宫格无解");return null;}}//复制九宫格public NineGrid newJiuGong(final NineGrid jiuGong){NineGrid temp = new NineGrid();Integer[][] d = new Integer[9][9];Boolean[][] b = new Boolean[9][9];for (int i = 0; i < 9; i++){for (int j = 0; j < 9; j++){int aa = jiuGong.get_nine()[i][j];boolean bb = jiuGong.get_bool()[i][j];d[i][j] = aa;b[i][j] = bb;}}temp.set_bool(b);temp.set_nine(d);return temp;}}package ninegrid;/***功能说明:九宫格计算**@author ClarkJia**/public class NineGridTest{/***九宫格功能实现核心算法*@return*/public NineGrid genGridResult(NineGrid nineGrid){NineGridList stack = new NineGridList();int times = 0;//计算次数while (nineGrid != null && !nineGrid.checkResult()){times++;String least = nineGrid.getLeastLocation();if (least == null){System.out.println("此题无解, 请检查题目给定九宫格是否错误! ");break;}else{char t = least.charAt(0);//取出x、y坐标标志for (int j = 0; j < 9; j++){if (t == 'x')// 判断x、y 轴{nineGrid.setX(location);nineGrid.setY(j);} else{nineGrid.setX(j);nineGrid.setY(location);}//九宫格功能实现核心算法Integer temp[] = nineGrid.getValidData();//获得合法值集if (temp != null)// 返回非null,则当前空格处可填入数字{if (temp.length > 0)// 找到可填充数据{for (int k = 0; k < temp.length; k++){nineGrid.setValue(temp[k]);//把合法数字填入九宫格,若存在多个合法值,则从最后一个开始检查if (temp.length > 1 && k < temp.length - 1)// 如果有多个可填写值,则把多余数字组合成临时表,并压入堆栈{NineGrid tJiuGong = stack.newJiuGong(nineGrid);stack.push(tJiuGong);}}} else// 未找到可填充数字,则弹出栈顶元素{nineGrid = stack.pop();// 取出堆栈中暂存的栈顶未检查九宫数据表格,开始下一轮计算break;}}}}}if(null != nineGrid)nineGrid.setTimes(times);return nineGrid;}public static void main(String[] agrs){// 九宫格初始数据阵列图Integer[][] initGrid = {{7, 8, 0, 2, 3, 0, 1, 0, 5},{6, 0, 1, 0, 0, 0, 7, 0, 0},{9, 5, 0, 0, 0, 0, 0, 0, 0},{3, 0, 0, 0, 0, 1, 6, 5, 0},{0, 2, 0, 5, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 9, 6, 8, 7, 0, 3, 2, 0},{0, 0, 0, 0, 6, 0, 9, 0, 8},{0, 4, 0, 0, 0, 0, 0, 7, 6}};long startTime = System.currentTimeMillis();NineGridTest nineTest = new NineGridTest();long endTime = System.currentTimeMillis();if (null != nineGrid && nineGrid.checkResult())//结果是否正确{System.out.println();System.out.println(" 经过计算"+ nineGrid.getTimes() + "次,共耗时"+(endTime-startTime)+"微秒,求解九宫格结果如下:");nineGrid.doPrint();}else{System.out.println(" 对不起,题目给定九宫格无解!");}}}。
九宫格的解题过程讲解

九宫格的解题过程第1步首先计算每行数字之和。
1-9九个数字之和:1+2+3+4+5+6+7+8+9=45九宫格共有三行,并且每行的数字之和相等,因此45/3=15,即每行数字之和为15。
第2步计算中间格的数字。
考虑第2行,第2列,和2条对角线的数字之和。
它们的总和为 15/4 = 60。
在它们的总和中,中间格子的数字出现了4次,其它位置格子的数字都出现了而且仅出现了1次。
所以,它们的总和=(4×中间格子的数字)+(其它8个数字)=(3×中间格子的数字)+(1-9九个数字之和)因此, 60=3×中间格子的数字+45,中间格子的数字等于5第3步,奇数不能出现在4个角上的格子里。
比如,如果数字9出现在角上的格子里,那么为了保证9所在行或所在列的数字和为15,必须需要4个数字,两两之和必须为6。
1,2,3,4,6,7,8中,只有2和4组成和为6的数字对,找到第2个和为6的数字对是不可能的。
因此,数字9不能出现在4个角上的格子里。
同样道理,1,3,7也不能出现在4个角上的格子里。
第4步,2,4,6,8必须填在4个角上的格子里,并且保证对角线数字和为15。
第5步,将1,3,7,9填入相应的格子里就完成了九宫格填数字任务,注意和为15的条件。
完成了填九宫格的任务后,我们进一步考虑,如果上面九宫格内所有数字都加数字1会发生什么呢?即可不可以用数字2,3,4,5,6,7,8,9,10填九宫格,得到每一行,每一列,每一对角线的三个数字之和都相等的新九宫格呢。
显而易见,上面九宫格每行每列每对角线数字之和为18,奇数3,5,7,9处在4个角上的格子里,中间数6处在中间的格子里。
从1-9和2-10各九个数字所填充的九宫格可以得出下列规律:1)九个数字是由9个相连的整数构成的。
2)九个数字中正中间的数字填在九宫格的中间格子里。
1-9中的5,2-10中的6等。
3)每行每列的数字和等于中间数字的三倍。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int aa = jiuGong.get_nine()[i][j]; boolean bb = jiuGong.get_bool()[i][j]; d[i][j] = aa; b[i][j] = bb; } } temp.set_bool(b); temp.set_nine(d); return temp; }
//空格中数字已经存在,则返回null if (existsGrid[x][y]) {
return null; } List<Integer> tempList = new ArrayList<Integer>(); // 找到x轴剩余的数字 for (int i = 1; i < 10; i++) {
//压栈 public void push(NineGrid jiuGong) {
nineGridList.add(jiuGong); }
//弹栈 public NineGrid pop() {
if (nineGridList.size() > 0) {
NineGrid jiuGong = newJiuGong((NineGrid) nineGridList.remove(nineGridList.size() - 1)); return jiuGong; } else { // System.out.println("题目给定九宫格无解"); return null; } }
return existsGrid;
} public void set_bool(Boolean[][] _bool) {
this.existsGrid = _bool; } public int getX() {
return x; } public void setX(int x) {
this.x = x; } public int getY() {
System.out.println("此题无解, 请检查题目给定九宫格是否错误! "); break; } else { char t = least.charAt(0);//取出x、y坐标标志
package ninegrid; import java.util.ArrayList; import java.util.List;
/**
* 功能说明:九宫格功能实现bean
*
* @author ClarkJia
*
*/
public class NineGrid
{
protected Integer nineGrid[][] = new Integer[9][9]; //九宫格阵列图
if (nineGrid[j][i] == 0) {
temp++; } } if (temp > 0 && temp < xLeast) { yLeast = temp; yI = i; } } }
if (xLeast < yLeast)
{ return "x" + xI;
} else if (yLeast <= xLeast) {
Integer t = (Integer) tempList.get(i);
// 检查这个是否能满足小三宫格 int starti = (x / 3) * 3; int startj = (y / 3) * 3; boolean hasEqual = false;// 表示是否已经存在,若存在则删除 for (int m = starti; m < starti + 3; m++) {
boolean hasValue = false; for (int k = 0; k < 9; k++) {
if (nineGrid[x][k] == i) {
hasValue = true; break; } } // 在x轴中没有找到 if (!hasValue) { tempList.add(i); } }
for (int n = startj; n < startj + 3; n++) {
if (nineGrid[m][n] != null && t.equals(nineGrid[m][n])) {
hasEqual = true; break; } } } if (hasEqual) { tempList.remove(i); i--; } }
// 找xy轴都没有的数字 for (int i = 0; i < tempList.size(); i++) {
Integer t = (Integer) tempList.get(i); boolean hasValue = false; for (int k = 0; k < 9; k++) {
} package ninegrid;
/** * 功能说明:九宫格计算 * * @author ClarkJia * */
public class NineGridTest {
/** * 九宫格功能实现核心算法 * @return */
public NineGrid genGridResult(NineGrid nineGrid) {
for (int j = 0; j < 9; j++) {
System.out.print(" | " + nineGrid[i][j]); } System.out.println(" |"); System.out.println(" ------------------------------------"); } }
package ninegrid; import java.util.ArrayList; import java.util.List; /**
* 功能说明:九宫格堆栈模拟 * * @author ClarkJia * */
public class NineGridList {
private List<NineGrid> nineGridList = new ArrayList<NineGrid>();//模拟九宫格 list 堆栈
if (nineGrid[k][y] == t.intValue()) {
hasValue = true; break; } } // y轴中找到x的数字则删除它 if (hasValue) { tempList.remove(i); i--; } }
for (int i = 0; i < tempList.size(); i++) {
return y; } public void setY(int y) {
this.y = y; } public void setValue(int value) {
nineGrid[x][y] = value; existsGrid[x][y] = true; } public int getValue() { return nineGrid[x][y]; } public int getTimes() { return times; } public void setTimes(int times) { this.times = times; } }
// 初始构造九宫格 public NineGrid(Integer[][] initData) {
//ArrayUtils.cloneArray(nineGrid, initData);//复制原始九宫格 for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
return returnInts; }
/** * 查找横行或竖列中空格最少的那个点位置 * @return */
public String getLeastLocation() {
int xLeast = 10; // x 轴中空缺数最少个数 int xI = 10; // 索引 int yLeast = 100; int yI = 10; for (int i = 0; i < 9; i++) {
//复制九宫格 public NineGrid newJiuGong(final NineGrid jiuGong) {
NineGrid temp = new NineGrid(); Intege] b = new Boolean[9][9]; for (int i = 0; i < 9; i++) {
NineGridList stack = new NineGridList(); int times = 0;//计算次数
while (nineGrid != null && !nineGrid.checkResult()) {
times++; String least = nineGrid.getLeastLocation(); if (least == null) {
/** * 检查是否生成成功 * * @return */
public boolean checkResult() {
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
if (nineGrid[i][j].intValue() == 0) {