最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascriptsudoku数独智力游戏生成代码_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:48:07
文档

javascriptsudoku数独智力游戏生成代码_javascript技巧

javascriptsudoku数独智力游戏生成代码_javascript技巧: 代码如下: // var sudokuArray = [[],[],[],[],[],[],[],[],[],[]]; function onLoadTable() { do { sudokuArray = getNewArray(); sudokuArray = getSudokuArray(sudokuArray); } while(!ch
推荐度:
导读javascriptsudoku数独智力游戏生成代码_javascript技巧: 代码如下: // var sudokuArray = [[],[],[],[],[],[],[],[],[],[]]; function onLoadTable() { do { sudokuArray = getNewArray(); sudokuArray = getSudokuArray(sudokuArray); } while(!ch


代码如下:






// 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{
for(var 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";
}
}
// ]]>

文档

javascriptsudoku数独智力游戏生成代码_javascript技巧

javascriptsudoku数独智力游戏生成代码_javascript技巧: 代码如下: // var sudokuArray = [[],[],[],[],[],[],[],[],[],[]]; function onLoadTable() { do { sudokuArray = getNewArray(); sudokuArray = getSudokuArray(sudokuArray); } while(!ch
推荐度:
标签: 智商 游戏 小游戏
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top