JavaScript

Dernière mise à jour : 26/05/2016

Nombre aléatoire

Énoncé

Écrivez un script qui va générer un nombre aléatoire. Vous devrez trouver ce nombre. Pour chaque essai, le script vous dira si le nombre à trouver est plus grand ou plus petit. Lorsque le nombre est trouvé, le script vous dira en combien de coups.

Solution

Fichier "js/script.js"

function verifyReply() {
  var proposedValue = valueField.value;
  var pattern       = /^\d+$/;
  if(pattern.test(proposedValue)) {
    numberTry++;
    proposedValue = parseInt(proposedValue);
    if(proposedValue < valueToFind) {
      document.getElementById('result').innerHTML = "Le nombre à trouver est plus grand";
      valueField.value = '';
      valueField.focus();
    } else if(proposedValue > valueToFind) {
      document.getElementById('result').innerHTML = "Le nombre à trouver est plus petit";
      valueField.value = '';
      valueField.focus();
    } else {
      document.getElementById('result').innerHTML = "Vous avez trouvé la solution en "+numberTry+" coups";
    }
  } else {
    document.getElementById('result').innerHTML = "La valeur proposée doit être un nombre!!";
  }
  return false;
}

var maxValue    = 1024;
var valueToFind = Math.floor((Math.random()*maxValue)+1);
var numberTry   = 0;
var valueField  = document.getElementById('valueField');

if(valueToFind > maxValue) {
  valueToFind = maxValue;
}

document.getElementById('maxValue').innerHTML = maxValue;
valueField.value = '';
valueField.focus();

Fichier "index.html"

<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta author="Sébastien Adam">
    <meta charset="UTF-8">
    <meta name="language" content="fr">
    <title>Nombre aléatoire</title>
  </head>
  <body>
    <p>
      Vous devez trouver un nombre entre 1 et <span id="maxValue"></span>.
    </p>
    <div>
      <form id="myForm" onsubmit="return verifyReply();">
        <div>
          <input type="text" id="valueField" size="4">
          <input type="submit" value="Tester">
        </div>
      </form>
    </div>
    <p id="result"></p>
    <script type="text/javascript" src="js/script.js"></script>
  </body>
</html>