運行moveRight()函數時出現錯誤,它不識別map [x] [y],說這是未定義的。只有當「玩家」處於最後一個y循環時纔會發生這種情況。我不明白爲什麼會發生這種情況,有人可以幫忙解釋一下嗎?嵌套循環存在問題
var map = [
["Blank", "Blank", "Blank", "Blank"],
["Blank", "Blank", "Blank", "Blank"],
["Blank", "Blank", "Blank", "Blank"],
["Blank", "Player", "Blank", "Blank"],
["Blank", "Blank", "Blank", "Blank"],
["Blank", "Blank", "Blank", "Blank"],
["Blank", "Blank", "Blank", "Blank"]
];
function moveRight() {
var breakLoop = false;
for (y = 0; y < map.length; y++) {
for (x = 0; x < map[y].length; x++) {
var posX = map[x][y].indexOf("Player");
if (posX <= -1) continue;
if (y >= map[y].length-1) {
breakLoop = true;
break;
}
breakLoop = true;
console.log("x: " + x);
console.log("y: " + y);
map[x][y] = "Blank";
map[x][y+1] = "Player";
break;
}
if (breakLoop) break;
}
}
當你想聲明一個變量(比如'y'或'x')時,你應該在它前面放一個'var'。你的'y'和'x'正在泄漏到全球範圍內。 – thejh