最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript sudoku 數(shù)獨智力游戲生成代碼

 更新時間:2010年03月27日 00:21:53   作者:  
javascript sudoku 數(shù)獨智力游戲生成代碼,喜歡的朋友可以參考下。
復(fù)制代碼 代碼如下:

<p><input value="Get New SuDoKu" type="button" onclick="onLoadTable()" id="refreshButton" /></p>
<table border="1" style="border-color: Red;" id="mainTable">
<tbody>
</tbody>
</table>
<script type="text/javascript" language="javascript">// <![CDATA[
var sudokuArray = [[],[],[],[],[],[],[],[],[],[]];
function onLoadTable()
{
do
{
sudokuArray = getNewArray();
sudokuArray = getSudokuArray(sudokuArray);
}
while(!checkArray(sudokuArray))
//document.getElementById("result").innerHTML=checkArray(sudokuArray);
var table = document.getElementById("mainTable");
table.removeChild(table.firstChild);
for(var i=0;i<9;i++)
{
table.insertRow(i);
for(var j=0;j<9;j++)
{
     table.rows[i].insertCell(j);
     table.rows[i].cells[j].innerHTML = sudokuArray[i][j];//Math.round(Math.random()*8+1);
setStyle(i,j,table.rows[i].cells[j]);
}
}
}
function getSudokuArray(filledArray)
{
var failed = false;
for(var i=0;i<9;i++)
{
        for(var j=0;j<9;j++)
        {
         var tempArray = getAvaildableArray(i, j, filledArray);
         if(tempArray.length > 0)
         {
         filledArray[i][j] = tempArray[Math.round(Math.random()*(tempArray.length-1))];
         }
         else
         {
         //window.location.reload();
         }
        }
    }
    return filledArray;
}
function checkArray(array)
{
for(var i=0;i<9;i++)
{
        for(var j=0;j<9;j++)
        {
         if(array[i][j] == undefined)
         {
         return false;
         }
        }
}
return true;
}
function getAvaildableArray(rowIndex, cellIndex, array)
{
var availdableArray = [1,2,3,4,5,6,7,8,9];
for(var n=0;n<9;n++)
{
if(!isNaN(array[rowIndex][n]) && array[rowIndex][n] != undefined)
{
availdableArray[array[rowIndex][n]-1] = NaN;
}
if(!isNaN(array[n][cellIndex]) && array[n][cellIndex] != undefined)
{
availdableArray[array[n][cellIndex]-1] = NaN;
}
}
var rowStartIndex = Math.floor(rowIndex/3);
var cellStartIndex = Math.floor(cellIndex/3);
for(var x=rowStartIndex*3;x<rowStartIndex+3;x++)
{
for(var y=cellStartIndex*3;y<cellStartIndex+3;y++)
{
if(!isNaN(array[x][y]) || array[x][y] != undefined)
{
availdableArray[array[x][y]-1] = NaN;
}
}
}
var returnArray = [];
for(var m=0;m<9;m++)
{
if(!isNaN(availdableArray[m]))
{
returnArray.push(availdableArray[m]);
}
}
return returnArray;
}
function getNewArray()
{
return [[],[],[],[],[],[],[],[],[],[]];
}
function setStyle(rowIndex,cellIndex,cell)
{
cell.height="20";
cell.width="20";
if(cellIndex%3==2)
{
     cell.style.borderRightColor="red";
}
if(cellIndex%3==0)
{
     cell.style.borderLeftColor="red";
}
if(rowIndex%3==2)
{
     cell.style.borderBottomColor="red";
}
if(rowIndex%3==0)
{
     cell.style.borderTopColor="red";
}
}
// ]]></script>

相關(guān)文章

  • 原生JavaScript創(chuàng)建不可變對象的方法簡單示例

    原生JavaScript創(chuàng)建不可變對象的方法簡單示例

    這篇文章主要介紹了原生JavaScript創(chuàng)建不可變對象的方法,結(jié)合簡單實例形式分析了基于原生JavaScript創(chuàng)建不可變對象的相關(guān)原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2020-05-05
  • 使用濾鏡設(shè)置透明導(dǎo)致 IE 6/7/8/9 解析異常的解決方法

    使用濾鏡設(shè)置透明導(dǎo)致 IE 6/7/8/9 解析異常的解決方法

    使用濾鏡設(shè)置透明導(dǎo)致 IE 6/7/8/9 解析異常的解決方法,需要的朋友可以參考下。
    2011-04-04
  • 詳解基于webpack&gettext的前端多語言方案

    詳解基于webpack&gettext的前端多語言方案

    這篇文章主要介紹了詳解基于webpack&gettext的前端多語言方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • js帶前后翻頁的圖片切換效果代碼分享

    js帶前后翻頁的圖片切換效果代碼分享

    這篇文章主要介紹了js帶前后翻頁的圖片切換效果,圖片切換效果特別適合做產(chǎn)品展示,感興趣的小伙伴可以參考下。
    2015-09-09
  • JS數(shù)組的高級使用方法示例小結(jié)

    JS數(shù)組的高級使用方法示例小結(jié)

    這篇文章主要介紹了JS數(shù)組的高級使用方法,結(jié)合實例形式總結(jié)分析了JavaScript數(shù)組的增刪改查、排序、隨機數(shù)等相關(guān)操作技巧,需要的朋友可以參考下
    2020-03-03
  • JavaScript封裝Vue-Router實現(xiàn)流程詳解

    JavaScript封裝Vue-Router實現(xiàn)流程詳解

    這篇文章主要介紹了JavaScript封裝Vue-Router實現(xiàn)流程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • js動態(tài)獲取時間的方法分析

    js動態(tài)獲取時間的方法分析

    這篇文章主要介紹了js動態(tài)獲取時間的方法,結(jié)合實例形式分析了javascript日期時間計算與頁面元素動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2019-08-08
  • JS 設(shè)計模式之:單例模式定義與實現(xiàn)方法淺析

    JS 設(shè)計模式之:單例模式定義與實現(xiàn)方法淺析

    這篇文章主要介紹了JS 設(shè)計模式之:單例模式,結(jié)合實例形式分析了JS 單例模式原理、定義、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2020-05-05
  • vue iView 上傳組件之手動上傳功能

    vue iView 上傳組件之手動上傳功能

    iView 主要服務(wù)于 PC 界面的中后臺業(yè)務(wù),是一套高質(zhì)量的開源 UI 組件庫。這篇文章主要介紹了iView 上傳組件之手動上傳功能,需要的朋友可以參考下
    2018-03-03
  • JavaScript 中的 this 工作原理

    JavaScript 中的 this 工作原理

    這篇文章主要介紹了JavaScript 中的 this 工作原理,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06

最新評論

枞阳县| 南充市| 应城市| 漳平市| 山西省| 手游| 托里县| 玉林市| 满洲里市| 花莲市| 靖边县| 渭南市| 孟津县| 册亨县| 大余县| 甘孜| 穆棱市| 营山县| 蕉岭县| 稻城县| 广南县| 寿阳县| 黄梅县| 曲水县| 勐海县| 华安县| 鸡西市| 栾川县| 穆棱市| 繁峙县| 江孜县| 宜阳县| 东至县| 思茅市| 齐齐哈尔市| 和政县| 蕉岭县| 盐池县| 肇源县| 冕宁县| 健康|