SDCal是我在高二完成的一个数独解答程序,能提供对于某个数独问题的求解(所有解),或单步求解,显示求解的步骤。

从去年11月开始,我开始编写SDCal的改进版,SDCal绝大部分被重写。我把它称作SDCal Pro,相当于SDCal的2.0版。12月份由于期考等各种事务,工作停滞。终于,经过努力,SDCal Pro beta发布了。

SDCal有了很大的改进,主要如下:

  • 有一个不错的图形界面,用Gtk+编写。数独编辑功能强大。
  • 支持估计数独题难度。
  • 可以显示解题步骤。
  • 加入了数独生成算法,可以根据设定的难度范围,随机生成数独。但是效率还有改进的余地。
  • 多操作系统支持。

前几天我完成了SDCal Pro的修改,Windows的beta版已经发布在http://sdcal.sf.net,在这个页面可以下载。很抱歉,现在还没来得及做中文包及Linux版(源文件应该可以在含libgtk2.0-dev库的Linux下编译运行,欢迎大家帮忙用gettext做一个中文包)。

关于SDCal算法

SDCal算法分为两个部分:sdcal和sdcreate。

sdcal用于数独求解。它使用一组算法来得到数独的解,其中主干部分是逻辑推理(模拟算法),此外还使用guessing(搜索算法)加以辅助。这个模块可以得到以很快的速度得到数独的多个解。目前,sdcal求得数独解的上限被设定为99。sdcal包含数独难度估计算法,它分析解题时每一步的难度,并将整个数独题难度记为每一步难度的总和。

sdcreate用于生成数独问题。它依赖于sdcal。sdcreate首先生成一个多解、很难的数独题,使用sdcal求解并估计难度,最后设法将题目变为单一解、难度适中的题目。sdcreate支持自定义题目难度范围、空格数、对称性等参数,并过滤掉不符合要求的问题;但是过滤是个漫长的过程,这降低了sdcreate的效率。

感谢

SDCal 1.0测试者:Sherry Zhou。

SDCal Pro Alpha测试者:严酷的魔王(其实这个不用感谢),时间矢,Liangent。

本博客数独事业关注者:rombalance。

本文由 最后的叶子 创作,转载或引用前请联系我们

相关文章:

  1. SDCal Pro 正式发布!

标签:,

2010年1月16日 星期六

11条评论

留下您的足迹

2010 f(Program,Poet)=Programet.
Powered by Wordpress. Theme by Pharmacy Drugs and LastLeaf.