IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Jeux du plus ou moins


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut Jeux du plus ou moins
    Bonjour,

    J'ai presque terminé le jeu du plus ou moins en JavaScript, mais parfois il me met plus grand et bravo en même temps.. pourquoi ?

    Je n'ai pas trouver d'erreur là dedans :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <html>
      <head>
        <title> TEST Javascript </title>
    	<script src="exo3.js" type ="text/javascript"></script>
     
      </head>
      <body>
     
    <h1><blink>Nombre au hazard</blink></h1>
     
    <p>
    	<script  type="text/javascript" >
            
            var nombreHazard = Math.floor(Math.random()*101);
              
            do{
                    var nombreEntre = prompt("Donnez un nombre compris entre 0 et 100 : ","");
                    
                    if (nombreEntre > nombreHazard)
                    {
                            document.write("Plus petit <br/>");
                    }
                    if (nombreEntre < nombreHazard)
                    {
                            document.write("Plus grand <br/>");
                    }
                    else 
                    {
                            document.write("Bravo ! <br/>");
                    }
                    
            }while (nombreEntre != nombreHazard);
        
            
            </script>
    </p>
     
    	</body>
    </html>
    Dernière modification par ProgElecT ; 19/09/2018 à 15h55.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    mais parfois il me met plus grand et bravo en même temps..
    Je pense que c'est plutôt plus petit et bravo en même temps... Tout simplement parce que tu ne fais pas la différence entre if et else if.
    Du coup, quand tu rentres dans le premier if, il marque "plus petit" puis ne peut pas rentrer dans le second if et donc rentre dans le else lié au second if...

    D'autre part, ton code à base de document.write, c'est
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour emer62,

    Je te conseillerai de séparer le HTML du javascript : c'est à dire d'éviter au grand maximum le javascript dans la partie <html> de ta page. Laisse le javascript dans l'entête de la page. Pour ce qui est de document.write() je te suggère de l'oublier c'est une source d'erreur chez les débutants.

    Quant à la balise blink, elle ne pique pas trop les yeux ? Elle n'est pas considérée comme obsolète d'ailleurs ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Exercice n°1 :
    il te manque un autre test : vérifier que le joueur entre bien un NOMBRE ENTIER.
    (actuellement, en tapant "coucou" ou "sdfq sdfqs" , ça met aussi "Bravo !" !!)

    Exercice n°2 :
    Et, pourquoi pas, marquer pour chaque essai :
    Essai n° 1 : Plus grand que 50
    Essai n° 2 : Plus grand que 75
    Essai n° 3 : Plus petit que 88
    Essai n° 4 : Plus grand que 80
    Essai n° 5 : Bravo ! C'est bien 84 !
    Dernière modification par Invité ; 04/11/2012 à 20h07.

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    et puis évite aussi tout le reste: prompt, qui bloque le navigateur, do while (idem), hazard, qui n'existe dans aucune langue, etc.

    tiens, je retrouve mon ame d'enfant

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!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">
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
    <title>...</title>
     
    </head>
     
    <body>
     
    <div>
    	<label for="test" id="mess">Trouvez Le nombre mystère entre 0 et 100.</label><br />
    	<input type="text" id="test" size="3" />
    	<input type ="button" id="go" value="résultat" />
    </div>
     
    <script type="text/javascript">
     
    for(var i=0,t=[];i<document.getElementsByTagName("*").length;i++){
            t[document.getElementsByTagName("*")[i].id]=document.getElementsByTagName("*")[i]
    }
     
    var has = Math.floor(Math.random()*101);
    var plus=1;
     
    t.go.onclick=function(){
            if(this.value!="résultat"){
                    t.mess.firstChild.data="Trouvez Le nombre mystère entre 0 et 100."
                    t.test.value="";
                    this.value="résultat";
                    };
            if(!t.test.value || isNaN(t.test.value)){
                    return
            };
            
            if(t.test.value < has){
                    t.mess.firstChild.data="plus grand";
                    plus++;
            }
            if(t.test.value > has){
                    t.mess.firstChild.data="plus petit";
                    plus++;
            }
            if(t.test.value == has){
                    t.mess.firstChild.data="Bravo";
                    this.value="Nouvelle partie";
                    has = Math.floor(Math.random()*101);
                    alert("Nombre de coups: " + plus);
                    plus=1;
            }
    }
     
    </script>
     
    </body>
    </html>

  6. #6
    Invité
    Invité(e)
    Par défaut Merci pour les réponses
    Bonsoir,

    Merci beaucoup pour les réponses, je vais donc revoir les conditions.

    Par contre, je suis en BTS IRIS et les professeurs nous ont donc donné un exemple avec document.write().

    Autre chose, parfois on fait des exercices en faisant un fichier js, qui contient les fonctions et un en HTML+ JavaScript... très mauvais je suppose non ?

    Je vais aussi travailler pour l'améliorer...
    Merci !

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    http://javatwist.imingo.net/plusmoins.htm

    un fichier js externe est toujours une bonne solution et ne change rien aux fonctionnalités;

    par contre, on compte sur toi pour dire à tes profs que developpez.net désapprouve à voix haute l'utilisation de document.write et des hallucinogènes;

  8. #8
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par javatwister Voir le message
    par contre, on compte sur toi pour dire à tes profs que developpez.net désapprouve à voix haute l'utilisation de document.write et des hallucinogènes;
    En lisant ça dans le bétisier, j'étais sur de trouver d'où ça vient

    +1

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Mais alors, à la place de document.write, que puis-je mettre ?

    Merci.

  10. #10
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par emer62 Voir le message
    mais alors, à la place de document.write, que puis-je mettre ?
    innerHTML par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function afficheMessage()
    {
       document.getElementById("blabla").innerHTML = "coucou tout le monde !";
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <body onload="afficheMessage()">
    <div id="blabla"></div>
     
    </body>

  11. #11
    Invité
    Invité(e)
    Par défaut
    Ah oui, déjà bien plus complexe...

    Merci.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    petite question bonus :
    en combien de coups MAXIMUM est-on quasiment sûr de gagner ?
    (indice : dichotomie)

  13. #13
    Invité
    Invité(e)
    Par défaut
    Si on a de la chance....en une fois non ?

  14. #14
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par jreaux62
    en combien de coups MAXIMUM est-on quasiment sûr de gagner ?
    (indice : dichotomie)
    Citation Envoyé par emer62 Voir le message
    Si on a de la chance....en une fois non ?
    Ce qui répond à la question inverse, car c'est effectivement le MINIMUM.

    La question reste donc posée. ^^

    PS : la présence du terme "quasiment" dans l'énoncé me parait à peu près aussi bienvenue que celle d'un homme-orchestre épileptique au milieu d'une messe d'enterrement.

  15. #15
    Invité
    Invité(e)
    Par défaut
    J'ai rajouté (après réflexion !) "quasiment" pour prendre en compte ceux qui tapent 80 après qu'on leur ait dit : plus petit que 10 ! lol
    Je repose donc la question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    En combien de coups MAXIMUM est-on sûr de GAGNER, si on connait la signification (et le principe !) de la dichotomie ?
    N.B.
    Le nombre MINIMUM de coups est bien UN.
    Le nombre MAXIMUM de coups est CENT. (mais il ne faut vraiment pas avoir de bol !!)

    Question subsidiaire (pour ceux qui ont la réponse à la première question. N'est-ce pas, Romain ! ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    En combien de coups MAXIMUM est-on sûr de GAGNER si on doit trouver un nombre de 1 à 1000 ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PC portable] Programmation et jeux plus ou moins recent
    Par bachir006 dans le forum Ordinateurs
    Réponses: 3
    Dernier message: 02/01/2010, 14h19
  2. [C#] 3 chiffres ni plus ni moins
    Par niPrM dans le forum Windows Forms
    Réponses: 1
    Dernier message: 02/06/2004, 10h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo