Javascript战舰游戏
我用javascript制作了一个简单的战舰游戏,但没有正确运行。我将位置放在一个数组中,并尝试使用拼接方法从该数组中删除猜测的位置。但当我输入0到6之间的任何数字时,它会提醒“MISS!” 编辑:我使用promt的parseInt方法解决了这个问题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
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谢谢。