Javascript 战舰游戏:允许在长度不超过4的战舰上注册命中

Javascript 战舰游戏:允许在长度不超过4的战舰上注册命中,javascript,Javascript,我正在用JavaScript为一个学校项目制作战舰,我被卡住了 计算机随机生成船只,用户必须通过输入坐标来尝试击沉计算机的所有船只。船上的命中被保存在一个数组中。数组中包含零表示船的长度(因此长度为4的船有一个4个零的数组)。当船被击中时,0变为1。如果所有元素均为1,则船下沉。问题是我的代码记录了命中数,但只有当你击中长度为4的船时,才会将其放入数组中 有人能帮我吗?以下是报告本身: 问题在于内循环中的else,因为您处理了您的每艘飞船(外循环)和所有位置(内循环) 总是将当前的船设为最后一条

我正在用JavaScript为一个学校项目制作战舰,我被卡住了

计算机随机生成船只,用户必须通过输入坐标来尝试击沉计算机的所有船只。船上的命中被保存在一个数组中。数组中包含零表示船的长度(因此长度为4的船有一个4个零的数组)。当船被击中时,0变为1。如果所有元素均为1,则船下沉。问题是我的代码记录了命中数,但只有当你击中长度为4的船时,才会将其放入数组中

有人能帮我吗?以下是报告本身:


问题在于内循环中的else,因为您处理了您的每艘飞船(外循环)和所有位置(内循环)

总是将当前的船设为最后一条船

当你发现被击中时,你也不需要处理任何其他位置或船只,因此,当你发现被击中时,请提前休息,如下所示:

raak = false;
for(var i = 0; i < inputArray.length && !raak; i++) {

        for(var j = 0; j !== boats[i].usedPositions().length; j++) {

            console.log(targetString)

            if(targetString === boats[i].usedPositions()[j].toString()) {
                raak = true;
                boats[i].hits[j] = 1;
                console.log(boats[i].hits);
                currentBoat = boats[i];
                break;
            }
       }  
}
raak=false;
对于(变量i=0;i
问题在于内循环中的else,因为您处理了您的每艘船舶(外循环)和所有位置(内循环)

总是将当前的船设为最后一条船

当你发现被击中时,你也不需要处理任何其他位置或船只,因此,当你发现被击中时,请提前休息,如下所示:

raak = false;
for(var i = 0; i < inputArray.length && !raak; i++) {

        for(var j = 0; j !== boats[i].usedPositions().length; j++) {

            console.log(targetString)

            if(targetString === boats[i].usedPositions()[j].toString()) {
                raak = true;
                boats[i].hits[j] = 1;
                console.log(boats[i].hits);
                currentBoat = boats[i];
                break;
            }
       }  
}
raak=false;
对于(变量i=0;i
一般来说,我们希望所有相关代码都包含在问题中,这样即使到外部站点的链接停止工作,它仍然是有意义和有用的。好的,我包含了“游戏本身”的代码,这就是我认为问题所在。什么是usedPositions()?@Benubird:在问题中提供的Pastebin链接中:。通常我们希望所有相关代码都包含在问题中,这样即使到外部站点的链接停止工作,它仍然有意义并且是有用的。好的,我包含了“游戏本身”的代码,这就是我认为问题所在。什么是usedPositions()?@Benubird:在问题中提供的Pastebin链接中:。太棒了。谢谢我有一个不同版本的代码,包括一个可视化界面,但仍然有一些问题。我可以编辑我的问题吗?还是我应该开始一个新的问题?你真的应该开始一个新的问题。谢谢我有一个不同版本的代码,包括一个可视化界面,但仍然有一些问题。我可以编辑我的问题吗?还是我应该开始一个新问题?你真的应该开始一个新问题
raak = false;
for(var i = 0; i < inputArray.length && !raak; i++) {

        for(var j = 0; j !== boats[i].usedPositions().length; j++) {

            console.log(targetString)

            if(targetString === boats[i].usedPositions()[j].toString()) {
                raak = true;
                boats[i].hits[j] = 1;
                console.log(boats[i].hits);
                currentBoat = boats[i];
                break;
            }
       }  
}