私はJavascriptで戦艦ゲームを作っています。現時点では、私はボートを配置し、ボートが互いの上に置かれていないことを確認しています。JavaScriptでの再起動方法
これを行うには、ボートの位置を選択するメソッド、ボートを作成して境界線を作るメソッド、およびこれらの2つのメソッドを実行する3つのメソッドを使用しています。 2番目の方法でボートの周囲に境界線を作成すると、プロパティboatHere
を1
に設定し、3番目の関数で、最初の関数が既にプロパティーboatHere = 1
を持つ位置を選択したかどうかを確認します。私は既にそこにボートがあるかどうかをチェックし、ボートをどこかに置くために3番目の機能を再開したい。ここでは、コードは次のようになります。
placeBoat : function() { //chooses position, checks to see if eligible and builds boat
for (boatNum = 1; boatNum < 4; boatNum++) {
this.selectPos();
if (document.getElementById(boatPos).boatHere == 1) {
return;
}
else {
this.buildBoat();
}
}
},
selectPos : function() { //chooses position
xPos = Math.floor(Math.random() * 8);
yPos = Math.floor(Math.random() * 10 + 1);
boatPos = "cell_" + xPos + "_" + yPos;
},
buildBoat : function() { //builds boat 3 tiles long and boundary 7 tiles long
for (boatLen = 1; boatLen < 4; boatLen++) {
xPos = xPos + 1;
boatPos = "cell_" + xPos + "_" + yPos;
document.getElementById(boatPos).hasBoat = 1;
document.getElementById(boatPos).style.backgroundColor = "brown";
console.log("placed one tile");
}
xPos = xPos - 6;
for (boatBox = 1; boatBox < 8; boatBox++) {
xPos++;
boatPos = "cell_" + xPos + "_" + yPos;
document.getElementById(boatPos).boatHere = 1;
document.getElementById(boatPos).innerHTML = " X";//visual reminder of where boundary is
}
everywere、宣言されていないグローバル変数を注意してください! –