Javascript战舰游戏

Javascript战舰游戏,javascript,arrays,Javascript,Arrays,我用javascript制作了一个简单的战舰游戏,但没有正确运行。我将位置放在一个数组中,并尝试使用拼接方法从该数组中删除猜测的位置。但当我输入0到6之间的任何数字时,它会提醒“MISS!” 编辑:我使用promt的parseInt方法解决了这个问题 var location1 = Math.floor(Math.random() * 5); var location2 = location1 + 1; var location3 = location2 + 1; var locations

我用javascript制作了一个简单的战舰游戏,但没有正确运行。我将位置放在一个数组中,并尝试使用拼接方法从该数组中删除猜测的位置。但当我输入0到6之间的任何数字时,它会提醒“MISS!”

编辑:我使用promt的parseInt方法解决了这个问题

var location1 = Math.floor(Math.random() * 5);
var location2 = location1 + 1;
var location3 = location2 + 1;

var locations = [];
locations.push([location1, location2, location3]);

var guess;
var hits = 0;
var guesses = 0;

var isSunk = false;

while (isSunk == false) {
    guess = prompt("Enter your guess(0 - 6)");
    if (guess < 0 || guess > 6) {
        alert("Please enter a valid number!");
    } else {
        guesses++;

        if (locations.indexOf(guess) > 0) {
            locations.splice(locations.indexOf(guess), 1);
            hits++;
            alert("HIT!");
            if (hits == 3) {
                isSunk = true;
                alert("You sank my battleship!");
            }
        } else {
            alert("MISS!");
        }
    }
}

var stats = "You took " + guesses + " guesses to sink the battleship, which 
means your shooting accuracy was " + (3 / guesses);
alert(stats);
var location1=Math.floor(Math.random()*5);
var位置2=位置1+1;
var位置3=位置2+1;
var位置=[];
位置。推送([位置1,位置2,位置3]);
var猜测;
var=0;
var猜测=0;
var isSunk=假;
while(isSunk==false){
猜测=提示(“输入你的猜测(0-6)”;
如果(猜测<0 | |猜测>6){
警报(“请输入有效数字!”);
}否则{
猜测++;
如果(位置索引(猜测)>0){
位置。拼接(位置。索引(猜测),1);
hits++;
警惕(“击中!”);
如果(点击次数==3){
isSunk=true;
警惕(“你击沉了我的战舰!”);
}
}否则{
警惕(“小姐!”);
}
}
}
var stats=“你用“+猜测+”猜测击沉战舰,这
表示您的射击精度为“+(3/猜);
警报(统计);

做一件事,用类似

var location=[1,2,3,4,5]

与从中删除数组delete元素的索引不同,
.indexOf()
测试应该是
>=0
而且
prompt()
总是返回一个字符串。@Pointy这是真的,但是javascript会自动在字符串和数字之间进行转换吗?有时是的,有时不会。使用
.indexOf
方法进行
=
比较。@Pointy谢谢。