java算法之数独游戏揭秘?

数独游戏的基本解法?图片说明

只要穷举即可。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; // 插入结束返回成功
    }
}

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