私はシンプルなイベントリスナをいくつかの条件付きで書きましたが、意図的にプッシュされるのではなく、配列のplayerGuessが配列allPlayerGuessesを置き換えます。誰かが私が逃しているものを教えてくれる?イベントリスナ - プッシュメソッドの問題
//global variables
guessX = document.querySelector("#guess-x-input"),
guessY = document.querySelector("#guess-y-input"),
boardSize, /*defined by user. must be between 7 and 12 */
playerGuess = [],
allPlayerGuesses = [],
fireButton.addEventListener("click", function(){
var sameGuess = false,
if (guessX.value === undefined || guessX.value < 1 || guessX.value > boardSize || guessY.value === undefined || guessY.value < 1 || guessY.value > boardSize) {
alert("Wrong coordinates!");
} else if (allPlayerGuesses.length === 0) {
playerGuess[0] = guessX.value - 1;
playerGuess[1] = guessY.value - 1;
allPlayerGuesses.push(playerGuess);
} else if (allPlayerGuesses.length !== 0) {
playerGuess[0] = guessX.value - 1;
playerGuess[1] = guessY.value - 1;
for (var i = 0; i < allPlayerGuesses.length; i++) {
if (playerGuess[0] === allPlayerGuesses[i][0] && playerGuess[1] === allPlayerGuesses[i][1]) {
alert("Coordinate already uncovered. Select another!");
sameGuess = true;
}
}
if (!sameGuess) {
playerGuess[0] = guessX.value - 1;
playerGuess[1] = guessY.value - 1;
allPlayerGuesses.push(playerGuess);
}
}
if (board[playerGuess[0]][playerGuess[1]] === "bp") {
document.querySelector(".ship-cell-" + playerGuess[0] + "-" + playerGuess[1]).classList.remove("hid");
} else {
document.querySelector(".miss-cell-" + playerGuess[0] + "-" + playerGuess[1]).classList.remove("hid");
}
});
allPlayerGuessesの宣言方法を共有できますか?また、プレーヤーでしょうか?もちろん –
!それは約400行の戦艦ゲームコードのスニペットですが、元の投稿を編集し、役立つべきすべての変数を含めて編集します。どうもありがとうございます! – tirmey
**変数を宣言する**。あなたが_必要としないという事実は、あなたが〜持っていないことを意味するものではありません。おそらくそれは問題と関係しているでしょう。完全なコードを表示するか、検証するためのフィドラーを作成します。 – Gabriel