Java数独生成器(最简单的解决方案)

Hun*_*ves 6 java generator solver sudoku

在我看到的最后一个问题: 数独 - 地区测试 我问如何检查3x3区域,有人能够给我一个满意的答案(虽然它涉及很多修补工作,让我的工作方式如何,因为他们没有'提一下class table_t是什么.)

我完成了这个项目,并且能够创建一个数独生成器,但感觉它是人为的.而且我觉得通过采用非常强力的方法来制作谜题,我在某种程度上使事情变得过于复杂.

基本上我的目标是创建一个9x9网格,其中包含9-3x3区域.每行/列/区域必须仅使用数字1-9一次.

我解决这个问题的方法是使用二维数组随机放置数字,一次3行.一旦完成3行,它将检查3行,3个区域和每个垂直col直到第3个位置.因为它迭代通过它会做同样的事情,直到数组被填充,但由于我正在填充rand,并且多次检查每个行/列/区域,它感觉非常低效.

除了2D阵列之外,还有一种"更简单"的方法可以用于任何类型的数据构造吗?是否有更简单的方法来检查每个3x3区域可能与检查vert或horizo​​ntal更好一致?从计算的角度来看,我无法看到太多方法来更有效地实现它,而不会显着扩大代码的大小.

tas*_*ari 8

我不久前建立了一个数独游戏,并使用Donald Knuth的跳舞链接算法来生成谜题.我发现这些网站对学习和实现算法非常有帮助

http://en.wikipedia.org/wiki/Dancing_Links

http://cgi.cse.unsw.edu.au/~xche635/dlx_sodoku/

http://garethrees.org/2007/06/10/zendoku-generation/

  • 第二个链接无法访问。请上传内容其他地方 (2认同)