zoukankan      html  css  js  c++  java
  • 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>
    相信世界是平的
    谨记四个字“修身养性”
    大江东去浪淘尽英雄,再牛B的人物最后也是一掊土
    向善不是目的,而是抚慰心灵,更多的感受幸福,感谢别人给你行善的机会
    相信老子的话:万物生于有,有生于无,一切的道理都源于一个无法证明的假设
    我是好是坏就自然而然的摆在那里,并不会因为别人的评价而改变什么,我也不需要别人用一张纸来说明我什么,世间最难得的是自由



    支持大额赞助:
  • 相关阅读:
    洛谷 P1119 灾后重建
    [NOIP 2011] 观光公交
    AtCoder Beginner Contest 071 D
    UOJ #228. 基础数据结构练习题
    bzoj 3673&3674: 可持久化并查集 by zky
    bzoj 2427: [HAOI2010]软件安装
    都市环游
    poj2299——Ultra-QuickSort
    poj1958——Strange Towers of Hanoi
    洛谷 P4139 上帝与集合的正确用法
  • 原文地址:https://www.cnblogs.com/sky-view/p/3246598.html
Copyright © 2011-2022 走看看