之前学习javascript时用javascript写过一个数独游戏,最近看了一点java的内容,于是就心血来潮想搞一个java版的数独游戏。
现在将全部代码分享出来和大家学习交流,当然代码中有着各种各样的问题和不足之处,望各位朋友批评指点。
以下是生成数独地图的核心算法,算法不是很好,也是之前参考过网上的一些思想:
package hlc.shudu.src;
/*
* 数独的帮助类,里面提供数据所需的所有算法
*/
public class ShuduHelper {
//数独地图数组
private static int[][] maps = new int[9][9];
//每个小九宫格可放置位置的数
private static int[] canPutSum = new int[9];
//用来存储之前放置过的位置
static int[] used = new int[9];
//是否已经完成地图的生成
static boolean isOk = true;
/*
* 得到数独地图数组
*/
public static int[][] getMap() {
//判断是否已经完成地图的生成,要是没有完成就重新生成。
//从这里就可以看出算法还有待优化,如果回溯的好的话就一直可以通过回溯来重新生成,而这里是通过重新执行生成算法来重新生成。希望感兴趣的朋友可以去实现以下。
do{
isOk = true;
initMaps();
}while(!is