Javascript только выполнить «если», если другой «если» не удается - PullRequest
0 голосов
/ 11 февраля 2019

Я начал изучать Javascript месяц назад, и у меня есть сомнения.Я программирую простую игру, которая думает о случайном числе, и вы должны угадать его, прежде чем закончатся попытки.Чтобы определить, угадал ли игрок правильный или неправильный номер, я сделал следующее (сокращенный код):

start(){
num=documentGetElementById("num").value;
attempts=10;
}
try(){
attempts=attempts-1;
if(num==random)documentGetElementById("message").innerHTML="You have won.";
if(attempts==0)documentGetElementById("message").innerHTML="You have lost.";
}

Что происходит здесь, когда вы угадываете число в последней попытке (1 попытка слева)это говорит, что ты проиграл.Итак, мой вопрос: как отдать приоритет if (num == random) ...?

--- EDIT ---

Полный код:

-HTML:

<div id="game">
  <div id="message"></div>
  <div id="status"></div>
  <div id="think"></div>
  <div id="start">
    <button id="start-button" class="boto-inici" onClick="start()"><span>START</span></button>
  </div>
  <div id="try">
    <label for="tryinput">Number:</label>
    <input type="text" id="tryinput"/>
    <button class="try-button" onClick="try()"><span>TRY</span></button>
  </div>
</div>

-JS:

function start(){
  document.getElementById("start").style.display="none";
  document.getElementById("try").style.display="block";
  document.getElementById("message").style.display="block";
  document.getElementById("status").style.display="block";
  document.getElementById("message").innerHTML="I've thought a number between 1 and 100";
  document.getElementById("status").innerHTML="You have 10 attempts.";
  random = Math.floor(Math.random()*100);
  attempts=10;
}

function try(){
  attempts=attempts-1;
  document.getElementById("status").innerHTML="You have " + attempts + " attempts left.";
  var num=document.getElementById("tryinput").value;
  if(num>random)document.getElementById("message").innerHTML="The number you chose is bigger.";
  if(num<random)document.getElementById("message").innerHTML="The number you chose is smaller.";
  if(num==random){
    document.getElementById("message").innerHTML="You won.";
    document.getElementById("status").innerHTML="The number I thought was the " + random + " .";
    document.getElementById("try").style.display="none";
    document.getElementById("start").style.display="block";
  }
  if(attempts==0){
    document.getElementById("try").style.display="none";
    document.getElementById("message").innerHTML="You lost.";
    document.getElementById("status").innerHTML="The number I thought was the " + random + " .";
    document.getElementById("start").style.display="block";
  }
  if(isNaN(num)){
    alert("Please write a number.");
  }
}

Может быть несколько ошибок с идентификаторами, потому что я перевел это.Надеюсь, это поможет.

1 Ответ

0 голосов
/ 11 февраля 2019

Это не вопрос приоритета .Оба теста выполняются в указанном порядке.

Ваша проблема в том, что вы вообще не хотите выполнять второй тест, если первый прошел.

Используйте else, таквторой тест выполняется только в том случае, если первый не пройден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...