2015-10-06 87 views
-1

最终,我正在制作一个带有表格的滑块谜题,但目前我正在生成一个新的拼图并对这些拼图进行洗牌,但似乎我的代码中的某些内容正在使这项工作不正确。 (并非所有表格单元格都填充了,等等)任何想法可能会导致这种情况?JavaScript滑块难题

在我写程序,我用肢体的onload建设难题,但由于某种原因,将不会在小提琴的工作:

</head> 
<body onload="newPuzzle(_r, _c)"> 
</body> 

Fiddle Example

回答

0

尝试改变

//declare and populate array 
var _array = new Array(); 

for (var i = 0; i <= r*c; i++) 
{ 
    _array[i] = i; 
} 

//declare and populate array 
var _array = new Array(); 

for (var i = 1; i < r*c; i++) 
{ 
    _array[i] = i; 
} 
    _array[0] = ""; 

并改变这一点:

var rand = Math.floor(Math.random() * _array.length) + i; 

这样:

var rand = Math.floor(Math.random() * _array.length); 

只是注意,因为你正在使用一个新的数组洗牌,有没有这方面的第一配置(0〜8) ,这样你就可以删除两个FOR,并且在生成它时(在混洗之前)设置一个固定值。 像这样:

gridTable[0].rows[i].cells[j].innerHTML = "0"; 
+0

我给你建议的修改和其他几个小修正的,但不幸的是我仍然有同样的问题。我不确定你最后的意思是什么?我应该删除哪两个? – user5407906

+0

最后一部分只是一个提示。仔细想想,如果你没有阅读这些值,你为什么需要在生成时使用'0到8'填充这个难题?当你洗牌时,你正在定义一个“新阵列”,与游戏的价值无关。所以,在洗牌之前设置'0到8'或'FOO'或'BAR'并不重要。 – FirstOne

+0

基本上,如果这些值在洗牌后不再使用,那么您不必在'loop'内部完成'loop'的所有工作,只需创建一个具有'0至8'的矩阵即可。 – FirstOne