我的JavaScript记忆游戏有问题,应该创建一些'com.airbnb.android:lottie:2.8.0'
,它将作为我们的记忆游戏卡,用户可以在按下开始按钮之前输入他想要多少行和多少列拥有。但是不知何故我收到一条错误消息:未捕获的TypeError:无法读取未定义的属性'0'。这是负责创建div表的代码,不仅是:
<div/>
并且控制台说问题出在函数function GameBoard(n,m) {
this.n = n;
this.m = m;
score = 0;
//n*m%2==0
picBoard = new Array(n);
last = -1;
accepTab = new Array(n*m/2);
for (var i=0; i<accepTab.length; i++){
accepTab[i] = 0;
}
for (var i=0; i<picBoard.length; i++){
picBoard[i] = new Array(m);
for (var j=0; j<picBoard[i].length; j++){
picBoard[i][j] = new Picture(accepTab);
}
}
function getPicture(id) {
console.log(picBoard);
return picBoard[id[0]][id[1]].val
}
function show(obj){
val = getPicture(getId(obj.id));
$(obj).html(val);
if(last==-1){
last = val;
lastId = getId(obj.id);
} else {
if(last==val){
$('#score').html(++score);
} else {
setTimeout(function(){
$(obj).html("X");
$("#col"+lastId[0]+"_"+lastId[1]).html("X");
}, 1000);
}
last=-1;
}
}
for(var i=0; i<n; i++){
$("#board").append("<div class=row id=row"+i+"> ");
for(var j=0; j<m; j++){
$("#board #row"+i).append("<span class=col id=col"+i+"_"+j+">X");
$("#col"+i+"_"+j).bind("click", function() {
show(this);
});
}
}
}
上,返回值为getPicture
。以及启动游戏的功能
picBoard[id[0]][id[1]].val
每当我调用不带var board;
function start(){
var n = document.getElementById("rows").value;
var m = document.getElementById("cols").value;
board = new GameBoard(n,m);
sec=0;
$("#start").unbind("click");
}
和GameBoard
变量的函数n
时,但不是像3和4这样的值,一切都可以正常工作,这只是我尝试向用户提供的东西一种选择他想要多大的存储卡表的选项。
答案 0 :(得分:0)
n和m是字符串,而不是数字。因此,您执行的某些操作会导致不同的结果。因此将它们转换为数字
board = new GameBoard(+n,+m);