`
jacky.jihao
  • 浏览: 152663 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

数独游戏小程序

    博客分类:
  • J2SE
阅读更多
数独游戏小程序

数独的游戏规则很简单:在九个九宫格里,填入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时指定线程栈大小的方法来解决这个问题。
5
2
分享到:
评论
1 楼 edua 2008-08-02  
好的,先看看,我喜欢这个游戏。

相关推荐

Global site tag (gtag.js) - Google Analytics