数独游戏小程序
数独的游戏规则很简单:在九个九宫格里,填入1到9的数字,让每个数字在每个行、列及九宫格里都 只出现一次就可以过关了! 虽然游戏的规则十分简单,但很多人在没有计算机辅助时,常常会不小心造成违规状况。
下面是我做的一个数独小程序 1.0 版本,目前功能如下:
选择外观;
数独自动出题;
数独自动解题;
游戏计时功能;
开启解答辅助功能,出错提示;
开启解答辅助功能,辅助线;
程序基于Java Swing,运行需要JRE1.6以上版本。
可双击执行的JAR包,点此下载。(Napkin的LookAndFeel蛮好玩,我就一起弄在里面了)
对数独有兴趣的朋友可以玩一下这个小工具,欢迎留下宝贵意见,让这个小程序更完善。
可能我会另开一篇日志说一下Source Code相关的东西。
Figure: 填值的出错提示
Figure: 填值的出错提示2
演示如何使用辅助线功能:
首先选中Enable help system选项,
然后选择按钮 1 ,这时候关于 1 的辅助线开启,把不能填1的单元格都画了线,画线规则是,1所在的行画桃红色横线,1所在的列画橙色竖线,1所在的九宫格画粉色X线,如下图,这时候我们发现,在第五行只有第二列这一单元格格没有被画上线,那么这一个肯定只能填上1。
这时候我们就可以把1填入到 第五行第二列,这时辅助线会自动更新。如下图,此时没有可以确定填入1的单元格了,我们可以换一个数看辅助线。
OK,我们选择3,这时候辅助线如下,我们发现第五行第四格可以确定填入3这个值。
填入3之后的图如下:
解答成功之后,会弹出恭喜解答成功的对话框。
自动解答功能可能出现的异常情况
当题目比较复杂的时候,可能会弹出如下的提示异常的对话框,这是因为解答数独用了递归的解法,难度大时递归深度很深,导致栈溢出,可以通过运行JVM时指定线程栈大小的方法来解决这个问题。
posted on 2008-08-02 17:32
jht 阅读(2696)
评论(4) 编辑 收藏 所属分类:
J2SE 、
数独程序