数独不但可以锻炼逻辑推理能力,也比较好玩,非常容易上手,作为程序员,怎么可能不想编写一个数独游戏来一探数独的算法呢。实验楼上线项目教程——【Java 编写数独计算器】,就是带你编写数独计算器的。
项目简介:
该项目使用Java实现数独游戏的核心算法,在感受数独的魅力中通过Java编写桌面程序完成数独计算器,完成对Java基础知识点的学习和巩固。
效果图:
效果图
项目开发:
编写数独核心算法—— Calculate 类
Calculate 类是本算法中最重要的部分,为了便于使用,很多函数和变量都声明为静态的。在类中,我们将完成数独空格的填充和计算。
Calculate 中所有的成员:
class Calculate implements Runnale{
public static boolean[][] boo = new boolean[9][9];
public static int upRow = 0;
public static int upColumn = 0;
public static int[][] b = new int[9][9];
public static void flyBack(boolean[][] judge,int row,int column){}
public static void arrayAdd(ArrayList array,TreeSet tree){}
public static ArrayList assume(int row,int column){}
public void run(){}
}
分析:
二维数组 boo 用于判断该格是否为空,如果已经填入了数值,就不用再填了。
二维数据 b 将存储九宫格中的数据,
flyBack 函数用于查找没有填入数值的空格,
arrayAdd 函数添加新的数值(1~9)到一行中,如果数据已经有了,跳过,没有就继续赋值。
assume 函数将大九宫格分成9个小九宫格,主要是判断在同行同列同一个小九宫格内哪些数值已经被填充了,添加该格备选的数值,就是候选法的思想。
run 函数开始运行整个程序,生成最后的结果。
至于具体的函数的编写,点击【Java 编写数独计算器】即可查看了~
编写界面
由于我们开发的是9宫格数独,所以需要九个 TextField 外加两个 button 控件。
关于具体的界面编写,点击【Java 编写数独计算器】即可查看了~