数独游戏java版(一)--核心算法

本文分享了作者使用Java实现数独游戏的过程,特别关注了生成数独地图的核心算法。尽管代码存在不足,作者欢迎读者提出批评和建议。项目源码已上传至GitHub,供学习交流。
摘要由CSDN通过智能技术生成

之前学习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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值