Кол-во потопленных кораблей увеличивается на 1 после 3 попаданий по любому из не потопленных кораблей ( всего их три ).
Если потоплен 1 корабль, то все отображается корректно. Если 3, тоже. Но если сбиты только 2, то выводится 1.9999999999999998.
Пробовал использовать округление ( Math.ceil и Math.round) - не помогает, получается 0.
Очень прошу помочь.
isSunk(ship){
for(var i = 0; i < this.widthShips; i++){
if(ship.hits[i] !== 'hit'){
return false;
}
return true;
}
}
for(var i = 0; i < this.numShips; i++){
var ship = this.ships[i];
var index = ship.location.indexOf(guess);
if(index >= 0){
view.displayHit(guess);
view.displayMassege('Hit!');
ship.hits[index] = 'hit';
if(this.isSunk(ship)){
view.displayMassege('One battleship is sunk!');
this.sunkShips = this.sunkShips+1 / 3;
};
return true;
}
}
Проверяется кол-во потопленных кораблей после выстрела.
Я округляю значение sunkShips .
this.sunkShips+1 / 3- за такое форматирование руки поотрывать. – Qwertiy Aug 19 '21 at 08:58this.sunkShips = Math.ropund(this.sunkShips+1/3);Впрочем, как сюда ceil ни пристраивай, всё рано получится 1, 2, 3... – Qwertiy Aug 19 '21 at 09:17