Jeu de nombres alèatoires

Fermé
chris604 Messages postés 25 Date d'inscription dimanche 7 septembre 2014 Statut Membre Dernière intervention 30 décembre 2014 - 8 sept. 2014 à 17:08
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 10 sept. 2014 à 15:37
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
10 sept. 2014 à 15:37
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...
chris604 Messages postés 25 Date d'inscription dimanche 7 septembre 2014 Statut Membre Dernière intervention 30 décembre 2014
10 sept. 2014 à 14:10
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.
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
Modifié par jordane45 le 10/09/2014 à 15:18
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.
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
Modifié par jordane45 le 9/09/2014 à 19:21
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....
Rejoignez-nous