论坛首页 编程语言技术论坛

使用JavaScript实现数独解题程序

浏览 8002 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-12-17   最后修改:2013-01-18

最近儿子学校让孩子买关于数独的书,还要组织数独比赛。以开发为乐趣的父亲,把自己的解题思路用代码写出来,供大家参考、批评、指正。

 

在线测试地址:http://www.jmeditor.com/shudu/

 

下面是源代码,可能不够优雅,一个晚上时间写出来的,也算有成果了。

(感谢mfkvfn的指正,在布局上做了些调整。)

 

<style>
		li{list-style:none;}
		.numdiv{width:470px;float:left;}
		.numdiv li{width:50px;height:50px;text-align:center;float:left;}
		.numdiv li input{width:40px;height:40px;font-size:36px;text-align:center;border:none 0px;margin-top:3px;}
		.numdiv li input.s{background-color:gray;}
		#outlog,#reslog{height:400px;}
		#outlog{width:300px;}
		#reslog{width:300px;margin-left:10px;}
		.console{width:700px;float:left;margin-left:10px;}
		#msg{margin-left:20px;height:30px;}
		.btn{height:40px;}
		.btn input{height:30px;margin-right:5px;};
		.leftn{border-left:solid blue 1px;}
		.top1{border-top:solid blue 1px;}
		.right1{border-right:solid blue 1px;}
		.bottom1{border-bottom:solid blue 1px;}
		.right2{border-right:solid blue 3px;}
		.bottom2{border-bottom:solid blue 3px;}
	</style>

 

 

由于源代码过长,论坛有时会提示“脚本运行太慢,是否停止?”,所以只能上传附件了。

   发表时间:2012-12-18   最后修改:2012-12-18
在IE下乱码。
在FireFox下布局错误(81个格子按屏幕宽度浮动布局,比如我的分辨率下显示为第一行28个第二行28个第三行25个,而不是期望的9*9)。
Chrome下与FF下相同。

原因是:你应该把.numdiv样式中的display: inline;去掉。因为行内元素是没有宽度的。只有块元素才可以有width。

你要是想对表格和解答进行左右布局可以对.numdiv和.console进行float:left
0 请登录后投票
   发表时间:2012-12-18  
还有在第一行输入123456789解答时说无解。好像应该有解吧?下面这个不行吗?

  • 大小: 46.9 KB
0 请登录后投票
   发表时间:2012-12-18  
看得头晕啊
0 请登录后投票
   发表时间:2012-12-18  
mfkvfn 写道
在IE下乱码。
在FireFox下布局错误(81个格子按屏幕宽度浮动布局,比如我的分辨率下显示为第一行28个第二行28个第三行25个,而不是期望的9*9)。
Chrome下与FF下相同。

原因是:你应该把.numdiv样式中的display: inline;去掉。因为行内元素是没有宽度的。只有块元素才可以有width。

你要是想对表格和解答进行左右布局可以对.numdiv和.console进行float:left


多谢指点,本人对于布局确实不在行。等我再试试。
0 请登录后投票
   发表时间:2012-12-18  
mfkvfn 写道
还有在第一行输入123456789解答时说无解。好像应该有解吧?下面这个不行吗?



这种情况算不算有解,我还没有弄清楚。现在是简单处理的,只要不是唯一解,就认为无解。
0 请登录后投票
   发表时间:2012-12-18  
bd_cool 写道
mfkvfn 写道
在IE下乱码。
在FireFox下布局错误(81个格子按屏幕宽度浮动布局,比如我的分辨率下显示为第一行28个第二行28个第三行25个,而不是期望的9*9)。
Chrome下与FF下相同。

原因是:你应该把.numdiv样式中的display: inline;去掉。因为行内元素是没有宽度的。只有块元素才可以有width。

你要是想对表格和解答进行左右布局可以对.numdiv和.console进行float:left


多谢指点,本人对于布局确实不在行。等我再试试。


布局上做了修了,乱码没有看到现象,只在head加了编码,不知道还有没有问题。
0 请登录后投票
   发表时间:2012-12-19  
泊头鑫锐阀门 ??
0 请登录后投票
   发表时间:2012-12-19  
see this one. http://my.safaribooksonline.com/book/web-development/ruby/9780596516178/introduction/i_sect11_d1e1811
0 请登录后投票
   发表时间:2012-12-19  
mfkvfn 写道
还有在第一行输入123456789解答时说无解。好像应该有解吧?下面这个不行吗?



bd_cool用的什么截图工具?
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics