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)