Partage
  • Partager sur Facebook
  • Partager sur Twitter

Initiation au javascript

Jeu du plus ou moins - test programme

Sujet résolu
    30 mai 2010 à 12:10:28

    Bonjour,

    J'apprends le javascript et j'en suis au td "Jeu du plus ou moins". J'ai suivi la correction mais avant de passer à la suite, j'aimerais essayer quelques petits programmes avec cette fonction vu que j'aime bien comprendre comment les choses marchent^^

    Donc j'ai essayé un programme dans le même genre mais il ne marche pas. Peut-être que je suis complètement à la masse et que mon code est très très mauvais donc je m'excuse par avance de vous infliger ça^^

    Est-ce que vous pourriez m'expliquer pourquoi ça ne marche pas et ce qu'il faudrait faire ?

    </code><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Titre de la page</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<script type="text/javascript">
    		<!--
    		function nb_aleatoire(min, max)
    		{
    			var nb = min + (max-min+1)*Math.random();
    			return Math.floor(nb);
    		}
    		
    		//-->
    		</script>
    	</head>
    	<body>
    		<script type= "text/javascript">
    		<!--
    		var nb = nb_aleatoire(1, 100);
    		var cpt = 0;
    		var nbre = prompt("Donnez un chiffre entre 1 et 100");
    			
    		if !isNaN(nb)
    		{
    			do
    			{
    				if (nbre == nb)
    				{
    					alert("Vous avez gagné !");
    				}	
    				else
    				{
    					prompt("Donnez un chiffre entre 1 et 100");
    					cpt++;
    				}
    			{
    			while(nb != nbre);
    			alert("Vous avez gagné !\nVous avez fait " + cpt + " erreurs :p");
    		}
    		else
    		{
    			alert("Il faut mettre un nombre !");
    		}
    		//-->
    		</script>
    </body>
    </html>
    


    Voilà merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      30 mai 2010 à 12:28:38

      Salut,
      Il faut que tu apprenne à utiliser la console javascript de ton navigateur. Celle de firefox est bien (CTRL+MAJ+J) tu verra facilement les trois erreurs de syntaxe qui trainent dans ton code.

      Ensuite il y a d'autres problèmes :

      Ligne 24 (hormis les parenthèse manquantes) : tu test nb alors que tu devrais tester nbre

      Ligne 34 : tu ne récupère pas la valeur entrée par l'utilisateur.

      Tu devrais utiliser une boucle while simple (pas do) pour éviter d'ecrire 2 fois les mêmes choses

      Et si l'utilisateur clique sur annuler (prompt renverra null) tu devrais arreter la boucle.


      • Partager sur Facebook
      • Partager sur Twitter
        30 mai 2010 à 13:23:31

        D'accord, merci beaucoup. Je vais essayer de faire une boucle "while" alors.

        Par contre il y a encore une erreur de syntaxe apparemment (que m'indique le CTR + MAJ + J), au niveau du "else" de la ligne 41 mais je ne vois pas ce qu'il faut que je fasse :o

        EDIT: En fait non c'est bon pour ce code, j'ai trouvé l'erreur de syntaxe^^

        Bon j'ai fait la boucle "while" mais je ne comprends pas trop pourquoi "isNaN" ne marche pas. Normalement avec le "if" ligne 24, si jamais on met autre chose qu'un nombre ça devrait passer dans le "else" non ?

        Voilà ce que ça donne pour le code:

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
        	<head>
        		<title>Titre de la page</title>
        		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        		<script type="text/javascript">
        		<!--
        		function nb_aleatoire(min, max)
        		{
        			var nb = min + (max-min+1)*Math.random();
        			return Math.floor(nb);
        		}
        		
        		//-->
        		</script>
        	</head>
        	<body>
        		<script type= "text/javascript">
        		<!--
        		var nb = nb_aleatoire(1, 100);
        		var cpt = 0;
        		var nbre = prompt("Donnez un chiffre entre 1 et 100");
        		
        		if (!(isNaN(nbre)))
        		{
        			while (nbre != nb)
        			{
        				if (nbre > nb)
        				{
        				nbre = prompt("C'est moins");
        				cpt++;
        				}
        				else
        				{
        				nbre = prompt("C'est plus");
        				cpt++;
        				}
        			}
        		alert("Vous avez gagné !\nVous avez fait " + cpt + " erreurs :p");
        		}
        		else
        		{
        			nbre = ("Il faut mettre un nombre !");
        		}
        		//-->
        		</script>
        </body>
        </html>
        
        • Partager sur Facebook
        • Partager sur Twitter
          30 mai 2010 à 14:28:56

          Le test isNan doit être fait dans la boucle, à chaque demande. Là, il n'est fait qu'une fois.
          • Partager sur Facebook
          • Partager sur Twitter
            30 mai 2010 à 15:37:58

            Ah ok, ça m'a bien aidé.

            Merci infiniment :)
            • Partager sur Facebook
            • Partager sur Twitter

            Initiation au javascript

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown