Jeu de nombres alèatoires

Fermé
Messages postés
25
Date d'inscription
dimanche 7 septembre 2014
Statut
Membre
Dernière intervention
30 décembre 2014
-
Messages postés
34727
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2022
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/100730-jeu-de-nombres-aleatoires

Messages postés
34727
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2022
358
tu as raison au niveau du bouton submit j'ai même mis un lien à ce niveau pourqu'à chaque fois la page puisse se charger si on y clique
....
Et si la page se recharge à chaque fois que le joueur vérifie son nombre.... le nombre à trouver (celui généré par l'ordinateur) change à chaque fois... donc comment veux tu que les joueurs tombent dessus... surtout si ils ont 1000 possibilités.....
D'où ma correction...
Messages postés
25
Date d'inscription
dimanche 7 septembre 2014
Statut
Membre
Dernière intervention
30 décembre 2014

oui! tu as raison au niveau du bouton submit j'ai même mis un lien à ce niveau pourqu'à chaque fois la page puisse se charger si on y clique . Merci pour cette amélioration que je vais essayer d'adapter à mon projet.
Messages postés
34727
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2022
358
Bon... j'avais un peu de temps......
Voici ton code corrigé et légèrement amélioré :

<!DOCTYPE html>
<html lang="fr">
 <head>
  <title>Mini Jeu... corrigé !</title>
 </head>
 <style>
  #divMain{
    border-width:1px;
    border-style:dotted;
    border-color:black;
    width:600px;
  }
  
  body{
  width: 640px;
  margin: auto;
  padding-top: 50px;
  }

  p{
  text-align: center;
  }

  #nombre,#ecran{
   background-color: yellow;
  }

 </style> 
 <body> 
  <div id="divMain"><tr><td>
   <p>L'ordinateur a choisi un nombre aléatoirement entre 0 et 1000. Quel est-il ?</p>
   <input type="hidden" id="NbATrouver" value="">
   <div width="100%" style="text-align:center">
    <input type="button" name="partie" id="partie" value="Nouvelle partie" onClick="return debut();"></p>
   </div>
   <div width="100%">
    <p>
     Entrez un nombre entre 0 et 1000 et appuyez sur "Entrée" :
     <input type="text" name="nombre" id="nombre" value="" size="5">
     <input type="button" name="solution" id="solution" value="Voir la solution" onclick="return verif()">
   </p>
   </div>
   <br>
   <center>
    <textarea name="ecran" id="ecran" cols="70" rows="20" readonly >Cliquez sur le bouton Nouvelle partie pour démarer le jeu !
    </textarea>
   </center>
 </body>
</html>

<script type="text/javascript">
function debut(){
 var inp = document.getElementById('NbATrouver');
 var valToTrouve = Math.floor(Math.random() * 1000) + 1
 inp.value = valToTrouve;
 var MsgStart = "Cliquez sur le bouton Nouvelle partie pour démarer le jeu !";
 document.getElementById('ecran').value = MsgStart;
}

function verif(){
 var NbATrouver = document.getElementById('NbATrouver').value;
 var nbre = document.getElementById('nombre').value;
 var msg ="";
 switch(nbre){
 case "":
   msg="Merci de saisir un nombre"
   break;
 case NbATrouver:
  msg = "Bravo !";
  break;
 default:
   if ((nbre < 0)||(nbre > 1000)){
    msg="le nombre doit être comprise entre 0 et 1000 !";
   }else if (isNaN(nbre)){
    msg ="donnez un nombre";
   }else if(nbre>NbATrouver){
    msg ="Trop grand...";
   }else if(nbre<NbATrouver){
    msg ="Trop Petit...";
   }
  break;
 }
 document.getElementById('ecran').value = document.getElementById('ecran').value + "\n" + nbre + "=> " + msg;
 document.getElementById('nombre').value="";
 document.getElementById('nombre').focus();
}
</script>


Comme tu peux le voir j'ai viré les TABLEAUX ...
J'ai géré l'affichage directement dans la page plutôt que de passer par des ALERT ...
Je reforce le focus dans l'input de saisie du nombre pour ne pas avoir à recliquer à chaque fois....
J'ai ajouté des indications si le nombre saisi est trop grand ou trop petit..
J'ai corrigé le Random pour qu'il prenne un nombre entre 1 et 1000 ( et non...1 et 2 )...
J'ai simplifié quelques IF via un SWITCH
J'ai viré le FORM ( et remplacé le bouton SUBMIT ) ... car sinon ta page se recharge à chaque fois... et le nombre à trouver est modifié.......

Voila...
J'espère que ça te permettra de te perfectionner.....


PS : Comme annoncé, ta source a été supprimée car elle ne respectait pas la charte du site... prends en bonne note pour la prochaine fois.
Messages postés
34727
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2022
358
Bonjour,

Comme d'autres modérateurs te l'ont déjà indiqué sur d'autres de tes sources... la charte de ce forum indique qu'on ne pose QUE des sources ayant un réel interêt....
Hors... Ton "code", non seulement ne sert pas à grand chose (dans le sens où tu ne fais qu'utiliser que quelques IF ...) , mais en plus... est faut....

1 - As tu remarqué que pour vérifier si le chiffre que l'utilisateur entre ... lorsque tu le compare à la valeur cherchée... celle-ci change à chaque fois..... ????
if (nbre==(Math.floor((2)*Math.random()+1))){
 console.log (Math.floor((2)*Math.random()+1));

2 - de plus... Si tu fais un petit test rapide.. tu vas vite te rendre compte que seuls les chiffres 1 ou 2 sont utilisés par ton script ....
for(var i=1;i<5000;i++){
 console.log(Math.floor((2)*Math.random()+1));
}


bref.... ta source va être supprimée prochainement....