java算法之数独游戏揭秘?

问题描述

java算法之数独游戏揭秘?

数独游戏的基本解法?

解决方案

Java 8支持Stream API和Lambda表达式,所以和C#写起来几乎是一样的。

解决方案二:

只要穷举即可。http://bbs.csdn.net/topics/390039859

解决方案三:

请指教

 /*
 * 文 件 名:  A.java
 * 版    权:  . Copyright YYYY-YYYY,  All rights reserved
 * 描    述:  <描述>
 * 修 改 人:  ShangZhang
 * 修改时间:  2015-2-22
 * 跟踪单号:  <跟踪单号>
 * 修改单号:  <修改单号>
 * 修改内容:  <修改内容>
 */

/**
 * <一句话功能简述>
 * <功能详细描述>
 *
 * @author ShangZhang
 * @version [版本号, 2015-2-22]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class A
{
    int[] sudu = new int[81];

    /**
     *
     * 数独规则,检查是否重复
     * <功能详细描述>
     *
     * @param a 将插入数字
     * @param i 将插入数字位置
     * @return
     * @see [类、类#方法、类#成员]
     */
    public boolean test(int a, int i)
    {
        // TODO数独规则
        return true;
    }

    /**
     * 插入 下一个空白<功能详细描述>
     *
     * @return 插入成功
     * @see [类、类#方法、类#成员]
     */
    public boolean insert()
    {
        int[] a = sudu;
        for (int i = 0; i < 81; i++)
        {
            if (a[i] == 0) // 下一个空白
            {
                for (int j = 1; j <= 9; j++) // 依次尝试 1-9
                {
                    if (test(j, i)) // 检查是否符合
                    {
                        a[i] = j; // 符合要求,插入数字
                        if (!insert()) // 下一个空白位置1-9尝试均不符合,当前空白尝试下一个数字
                        {
                            continue;
                        }
                    }
                    else
                    // 不符合尝试下一数字
                    {
                        continue;
                    }
                }
                a[i] = 0; // 清空当前所填数字
                return false; // 1-9尝试均不符合,返回失败
            }
        }
        return true; // 插入结束返回成功
    }
}
时间: 2024-08-21 13:45:47

java算法之数独游戏揭秘?的相关文章

求一份java的彩色数独游戏设计

问题描述 求一份java的彩色数独游戏设计....fenge2009@qq.com基本上和九宫数独一样,就是在这基础上,加上颜色的提示,比如这个空框只有1种可能的话就是红色,两种可能就是蓝色.....没有任何可填写的数字就是黑色..... 解决方案 解决方案二:强力推荐hodoku,java写的,开源的可以上网下载到源码和执行文件

利用Android做一个数独游戏

问题描述 利用Android做一个数独游戏 如何在Android中绘制出数独游戏九宫格的画面?是在Java代码中编写?数独游戏的算法如何实现 解决方案 开源项目opensudokuhttp://code.google.com/p/opensudoku-android/

Symbian学习笔记(8)——再尝试着做一个数独游戏

仍是做一个同样界面同样功能的数独游戏,但是所花费的时间远远超出我用Android或者J2ME来做同样的事情,当然运行效率也很明显(我将J2ME实现的数独放在N73上跑过,因为重绘屏幕的代码没有优化,所以效果不好,但同样的算法在BREW或者Symbian上就跑得相当顺畅). 这次我主要谈谈在做这个 Symbian版本中遇到的几个问题,希望以后自己不要再犯同样的错误了. 1.多视图的应用程序框架的问题 我用的是Carbide C++ IDE环境,不知道为什么不能生成多视图的架子,所以只能在Hello

链表-求助Java算法,这两个算法问题有Java代码实现

问题描述 求助Java算法,这两个算法问题有Java代码实现 从N个元素集合里面随机抽取M个元素(M<N). C/C++: void randomChoose(int*data, intn, int *result, int m); Java: void randomChoose(int data[], int result[]); 说明: 1.Data是待抽取的元素集合,n是data的长度,result是抽取的结果,m是结果集的长度. 2.同一个元素不能被反复抽取. 3.每个元素被抽取到的概率

新手,编写的java人机猜拳小游戏,大家帮忙看看

问题描述 新手,编写的java人机猜拳小游戏,大家帮忙看看 运行的时候,要求只能输入012,如果输入其他则提示重新输入.但是如果输入错误的再重新输入正确的时候,输赢判断会有错误,这是什么原因啊?请高手指导 import java.util.*;public class F2 { public static void main(String[] args) { System.out.println(""*************************""); Sys

JAVA算法实现图片透明化渐变

问题描述 JAVA算法实现图片透明化渐变 关于实现图像黑白的颜色渐变可以实现.用每行的红绿蓝都逐渐减少就能实现. 但是上面要求提供一个算法把传进来的图片覆盖一层从透明黑色的阴影逐渐变成透明的效果. 求指导~~ 要是能把源码发来就跟好了~~ 解决方案 源代码肯定是没有的,需要你自己实现. 图片,是什么格式的呢?BMP,还是 PNG? 要处理图片,你首先要能读到图片未处理前的每像素的数值吧,如果能读到,做黑白渐变只是简单的修改读到的 RGB 的数值. 透明黑色的阴影,如果是 PNG 格式,则可以通过

java算法题,公司的笔试题

问题描述 java算法题,公司的笔试题 suppose you have N cakes, N is an interger>0 // at each time, you can either eat 1 cake, or 2 cakes or 3 cakes // PROBLEM: How many ways can you eat all N cakes // for example, N = 4, (1,2,1) and (1,1,2) are considered to be diffe

百度知道-【java算法题】凑凑凑凑凑凑字数

问题描述 [java算法题]凑凑凑凑凑凑字数 题目:标题:猜字母???把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串.???接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母.??得到的新串再进行删除奇数位置字母的动作.如此下去,最后只剩下一个字母,请写出该字母./-----------------------------------从百度知道查看但是不懂 1024 和他的思维求大神解惑 /----------------------

java记忆翻牌游戏代码-JAVA做出记忆翻牌游戏,菜鸟想学习JAVA的游戏制作

问题描述 JAVA做出记忆翻牌游戏,菜鸟想学习JAVA的游戏制作 20C 1.界面打开为网格,每个网格放一张图片,图片两两相同2.点开两张图片若是一样则显示,若是不一样,显示50ms,变为背面.3.每轮游戏结束时显示总共花费时间.4.重复步骤2,直到所有图片显示出来 解决方案 http://download.csdn.net/detail/gaoda871010/2652900http://www.educity.cn/xiazai/8649772.html 解决方案二: 看下我写的这个怎么样.