随笔-46  评论-64  文章-2  trackbacks-0
数独游戏小程序

数独的游戏规则很简单:在九个九宫格里,填入1到9的数字,让每个数字在每个行、列及九宫格里都 只出现一次就可以过关了! 虽然游戏的规则十分简单,但很多人在没有计算机辅助时,常常会不小心造成违规状况。

下面是我做的一个数独小程序 1.0 版本,目前功能如下:

选择外观;
数独自动出题;
数独自动解题;
游戏计时功能;
开启解答辅助功能,出错提示;
开启解答辅助功能,辅助线;

程序基于Java Swing,运行需要JRE1.6以上版本。
 
可双击执行的JAR包,点此下载。(Napkin的LookAndFeel蛮好玩,我就一起弄在里面了)
程序的源码,点此下载。(有兴趣修改源码的朋友可以DIY出自己喜欢的版本。)

或者也可以从 http://groups.google.com/group/afun 这个group的files里面找到上面的两个文件。

对数独有兴趣的朋友可以玩一下这个小工具,欢迎留下宝贵意见,让这个小程序更完善。 可能我会另开一篇日志说一下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数独程序

评论:
# re: 数独游戏小程序 2008-08-02 19:24 | 黑蝙蝠
楼主强悍,貌似把swing已经用到了随心所欲的地步了~ 顶起!  回复  更多评论
  
# re: 数独游戏小程序 2008-08-02 20:25 | way
swing还有人在用?  回复  更多评论
  
# re: 数独游戏小程序 2008-11-14 17:52 | cuso4321
楼主能不能分享下自动出题那部分的算法?

先谢过楼主了,如果可以请楼主给我发邮件行不?

lai54678540@126.com  回复  更多评论
  
# re: 数独游戏小程序 2010-08-28 18:03 | tgh
&#49324
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: