Jquery暴力解数独
var arry= new Array();
var nums= new Array();
var snum;
function numchain()
{
snum=0;
for(var i=0;i<9;i++)
{
nums[i]=new Array();
for(var j=0;j<9;j++)
{ if($("#mytb").children().eq(0).children().eq(i).children().eq(j).html()=="")
{
nums[i][j]=0;
arry[snum]=new Array();
arry[snum][0]=i;
arry[snum][1]=j;
snum++;
}
else
{
nums[i][j]=parseInt($("#mytb").children().eq(0).children().eq(i).children().eq(j).html());
} } } }
function fill()
{
for(var i=0;i<9;i++)
{
for(var j=0;j<9;j++)
{
$("#mytb").children().eq(0).children().eq(i).children().eq(j).html(nums[i][j]);
} } }
//解数独--------------------------------------------------------------------------------------
function sukudu()
{
numchain();
alert(snum+" cells to be filled.");
for(var i=0;i<snum;i++)
{
if(check(arry[i][0],arry[i][1],nums[arry[i][0]][arry[i][1]]+1)==0)i=i-2;
if(i==-2){alert("No solution!");break;}
}
fill();
}
//--------------------------------------------------------------------------------------------
//获取可用数字
function check(row,column,start)
{
for (var i=start;i<10;i++)
{
if(checkRC(row,column,i)==true && checkS(row,column,i)==true){nums[row][column]=i;return i;}
}
nums[row][column]=0;
return 0;
} //行列检查
function checkRC(row,column,value)
{
for (var i=0;i<9;i++)
{
if(nums[row][i]==value)return false; if(nums[i][column]==value)return false;
}
return true;
}
//方块检查
function checkS(row,column,value)
{
for (var i=0;i<3;i++)
{
for(var j=0;j<3;j++)
{
if(nums[parseInt(row/3)*3+i][parseInt(column/3)*3+j]==value)return false;
}
}
<table id="mytb" class="tb" contenteditable="true"><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></table>
Jquery暴力解数独的更多相关文章
- 使用python解数独
偶然发现linux系统附带的一个数独游戏,打开玩了几把.无奈是个数独菜鸟,以前没玩过,根本就走不出几步就一团浆糊了. 于是就打算借助计算机的强大运算力来暴力解数独,还是很有乐趣的. 下面就记录一下我写 ...
- 用C++实现的解数独(Sudoku)程序
我是一个C++初学者,控制台实现了一个解数独的小程序. 代码如下: //"数独游戏"V1.0 //李国良于2016年11月11日编写完成 #include <iostream ...
- LeetCode37 使用回溯算法实现解数独,详解剪枝优化
本文始发于个人公众号:TechFlow,原创不易,求个关注 数独是一个老少咸宜的益智游戏,一直有很多拥趸.但是有没有想过,数独游戏是怎么创造出来的呢?当然我们可以每一关都人工设置,但是显然这工作量非常 ...
- hdu 3111 DLX解数独
思路:裸的DLX解数独.关键是建图,感觉还不如写个dfs直接,DLX写这个的代码很烦. #include<set> #include<map> #include<cmat ...
- 【原创】一个基于简单剪枝的DFS解数独程序
问题来源:leetCode Sudoku Solver Write a program to solve aSudoku puzzle by filling the empty cells. Empt ...
- [leetcode]37. Sudoku Solver 解数独
Write a program to solve a Sudoku puzzle by filling the empty cells. A sudoku solution must satisfy ...
- java解数独
先输入要解的数独,采用多维数组来保存其中的值,未填数字的地方,初始化为0,然后采用递归的方法来解数独. 直接上代码: /** * * @author walker * */ public class ...
- 解数独(Python)
0.目录 1.介绍 2.一些通用函数 3.全局变量(宏变量) 4.数独预处理(约束传播) 5.解数独(深度优先搜索+最小代价优先) 6.主函数 7.总代码 1.介绍 数独是一个非常有趣味性的智力游戏, ...
- [LeetCode] Sudoku Solver 解数独,递归,回溯
Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated by th ...
随机推荐
- 《使用this作为返回值的相关问题》
//使用this作为返回值的相关问题: /* 如果在某个方法中把this作为返回值,则可以多次连续的调用同一个方法,从而使得代码 更加简洁,但是,这种把this作为返回值的方法可能造成实际意义的模糊, ...
- PAT 07-3 求素数
求素数,这是一个“古老”的问题,每个学过编程的人都应该碰到过,这里是求第M+1到第N个素数,这么经典的问题,当然得给它写上一笔,下面是题设要求及代码实现 /* Name: Copyright: Aut ...
- C#获取项目程序及运行路径的方法
1.asp.net webform用“Request.PhysicalApplicationPath获取站点所在虚拟目录的物理路径,最后包含“\”: 2.c# winform用 A:“Applicat ...
- mycat启动后,用Navicat Premium 连接报 "2013"
最近在学习mycat,启动后,用Navicat Premium 连接报 "2013" Lost Connection During Query ,经过一顿百度也没发现是怎么回事, ...
- postgreSQL9.1忘记postgres用户密码怎么办
在网络上找了一篇文章http://www.linuxidc.com/Linux/2010-04/25232.htm,如下: Ubuntu 9.10下PostgreSQL 8.4忘记密码的解决方法 Ub ...
- 获取本机IP非127.0.0.1
protected function GetiP() { $preg="/\A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5] ...
- 【LeetCode OJ】Gas Station
Problem link: http://oj.leetcode.com/problems/gas-station/ We can solve this problem by following al ...
- 解决Xcode7.1插件安装的办法
现象一. 运行安装后,没有出现在菜单上. 1. 到githup上下载Alcatraz project https://github.com/supermarin/Alcatraz2. 打开终端 3. ...
- Tomcat服务绑定域名的方法
在搭建了tomcat服务器之后,建议将域名绑定到服务器.绑定方法如下: 域名绑定需要编辑tomcat的配置文件完成.tomcat配置文件是TOMCAT_HOME/conf/server.xml, ...
- oracle 修改字段类型的方法(转)
今天公司因为业务需要,修要修改某个字段数据类型有number(5),变为number(5,2)型 要是没有数据的话直接用以下语句即可 alter table tb_test modify pe ...