Задать вопрос
IgorBee
@IgorBee
JS,VBS,3D.Web с 07.2015

JS ошибка в коде игра" морской бой" как исправить?

var location1 = 3;
 var location2 = 4;
 var location3 = 5;


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


var isSunk = false;

while (isSunk == false) {
    guess = prompt("Готовься,я стреляю! (введите число от 0-6):"); /*вызывает окно для ввода данных типа алерта*/
    
    if (guess < 0 || guess > 6) {
        alert("Введите,пожалуйста правильны номер");
    }
    else {
        guess = parseInt(guess) +1;                // ЗДЕСЬ раньше было просто guess= guess+1;
        
        if (guess == location1 || guess == location2 || guess == location3) {
            hits = hits +1;
          
            if (hits == 3) {
                isSunk = true;
                alert("Ты уничтожил мои корабли :(");
            
            }
        }
        
        
    }
    
}

var status ;


в чём проблема?

Если поставить просто guess= guess+1; то он вечно выдает один и тот же цикл,но если заменить на
guess = parseInt(guess) +1; то он работает не правильно а именно если 3 раза в диалоговом окне ввести 3 то он выдает что всего его корабли уничтожены,хотя у него есть 3,4,5...

как быть?

Вопрос решил:
Уважаемый Павел!

guesses = guesses + 1;
опячатка была
  • Вопрос задан
  • 287 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Gomerkucher
@Gomerkucher
Frontend developer
var locationShips = [3, 4, 5];
var guess; 
var hits = 0;
var isSunk = false;

while (!isSunk) {
    guess = +prompt("Готовься,я стреляю! (введите число от 0-6):"); 

    if (guess < 0 || guess > 6) { 
      alert("Пожалуйста, введите правильны номер");
      continue;
    }      

    for(var i = 0; i < locationShips.length; i++) {
        if (guess == locationShips[i]) {
   	        locationShips[i] = 'ранен!';
           alert(locationShips[i]);

   	        if (++hits == 3) { 
             isSunk = true;
             alert("Ты уничтожил мои корабли :(");
           }
       }
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы