CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Javascript] Quelle est mon erreur ?

Olivied
Olivied
Niveau 36
10 décembre 2017 à 21:22:24

Bonjours !

Je débute en Javascript en suivant les cours présents sur OpenClassroom, et je suis amené à réaliser un "jeu" des plus connu, le "Plus ou moins".

En d'autres termes, un nombre est généré aléatoirement et l'utilisateur doit le trouver, en rentrant successivement plusieurs chiffres. À chaque tentative, un message apparaît pour dire si c'est plus ou moins.

Seulement, mon problème est le suivant: la boîte de dialogue s'ouvre pour rentrer le premier nombre, la console affiche si c'est plus ou si c'est moins... et le programme s'arrête là. :(
Impossible donc de saisir un deuxième chiffre pour "continuer" à jouer...

Voici une copie de mon code:


console.log("Bienvenue dans ce jeu de devinette");

var solution = Math.floor(Math.random() * 100 + 1;
var nombre;



do {

     nombre = Number(prompt("Entrez un nombre: "));

    if (nombre > solution) {

        console.log("C'est moins !");

} else {

        console.log("C'est plus !");


} while ( nombre !== solution);


Je ne demande pas spécialement à ce qu'on me donne la solution toute prête sur un plateau mais plutôt à ce qu'on m'oriente sur la bonne piste, vis-à-vis de ce que j'aurais pû oublier. :)

En vous remerciant par avance !

TechnoForce3
TechnoForce3
Niveau 39
10 décembre 2017 à 21:39:42

J'ai testé vite fait ton code. Dans ce que tu nous a fournit, il manque ')' a la fin de ton appel à Math.floor et '}' a la fin de ton else. En changeant ces deux détails ça fonctionne (je te conseillerais quand même faire un else if > pour mettre un message de victoire comme else)

Olivied
Olivied
Niveau 36
10 décembre 2017 à 21:51:44

L'absence de l'accolade est une erreur de ma part dans la recopie du code, mais elle est bien présente dans mon code original. :(

Je vais essayer de mettre la parenthèse dont tu me parles, mais en dehors de ça, ça ne fonctionne pas du tout de mon côté...

TechnoForce3
TechnoForce3
Niveau 39
10 décembre 2017 à 22:22:28

J'ai aussi remplacé les console.log par des alert, je sais pas si ça changera quelque chose (j'ai jamais fais de javascript) ça a fonctionné quand j'ai exécuté sur ce site https://js.do/

MrAnge
MrAnge
Niveau 10
10 décembre 2017 à 22:24:49

} while ( nombre !== solution);

!== test les types des variables et du coup ta variables solution doit etre du même type que ta variable nombre du coup tu sors de ton programme

pour comparer les valeurs on utilise != [[sticker:p/1kkn]]

ps: Si tu entre un "abc" dans ta console tu vas boucler :hap:

TechnoForce3
TechnoForce3
Niveau 39
10 décembre 2017 à 22:33:59

Le 10 décembre 2017 à 22:24:49 MrAnge a écrit :
} while ( nombre !== solution);

!== test les types des variables et du coup ta variables solution doit etre du même type que ta variable nombre du coup tu sors de ton programme

pour comparer les valeurs on utilise != [[sticker:p/1kkn]]

ps: Si tu entre un "abc" dans ta console tu vas boucler :hap:

Tu es sûr? Sur les docs, j'ai lu que !== compare le type et la valeur, là où != fait une conversion implicite puis compare les valeurs :(

Olivied
Olivied
Niveau 36
10 décembre 2017 à 23:07:17

Le 10 décembre 2017 à 22:24:49 MrAnge a écrit :
} while ( nombre !== solution);

!== test les types des variables et du coup ta variables solution doit etre du même type que ta variable nombre du coup tu sors de ton programme

pour comparer les valeurs on utilise != [[sticker:p/1kkn]]

ps: Si tu entre un "abc" dans ta console tu vas boucler :hap:

OpenClassroom explique pourtant dans leur cours que l’opérateur "différent de..." s'écrit " !== " :(

https://image.noelshack.com/fichiers/2017/49/7/1512943791-ocr.png

Mais j'ai malgré tout essayé avec un " != ", et j'ai le même résultat. Pareil en entrant une chaîne de caractères, la boucle s'arrête au premier essai. :(

Message édité le 10 décembre 2017 à 23:10:16 par Olivied
arsh222
arsh222
Niveau 10
10 décembre 2017 à 23:35:21

C'est quoi le problème ? Il marche très bien ce code une fois les erreurs corrigées:(

Le 10 décembre 2017 à 21:39:42 TechnoForce3 a écrit :
J'ai testé vite fait ton code. Dans ce que tu nous a fournit, il manque ')' a la fin de ton appel à Math.floor et '}' a la fin de ton else.

Olivied
Olivied
Niveau 36
11 décembre 2017 à 00:06:09

Le 10 décembre 2017 à 23:35:21 arsh222 a écrit :
C'est quoi le problème ? Il marche très bien ce code une fois les erreurs corrigées:(

Le 10 décembre 2017 à 21:39:42 TechnoForce3 a écrit :
J'ai testé vite fait ton code. Dans ce que tu nous a fournit, il manque ')' a la fin de ton appel à Math.floor et '}' a la fin de ton else.

Je sais pas si le code sera visible ici, mais au cas où, je poste le code que je vous ai marqué, que j'ai tapé sur jsbin: https://jsbin.com/tahomepowi/1/edit?js,console

Là pour moi, ça ne fonctionne pas :(

arsh222
arsh222
Niveau 10
11 décembre 2017 à 00:06:45

Le site est un peu parano ; si tu regardes la console du navigateur il y a ça :
"Exiting potential infinite loop at line 2. To disable loop protection: add "// noprotect" to your code"

Olivied
Olivied
Niveau 36
11 décembre 2017 à 00:52:57

Bon j'ai finalement réussi à le faire fonctionner directement depuis Firefox, le code en soi était visiblement correct, seulement ce bug était présent que sur jsbin. :(

Merci :ok:

Pseudo supprimé
Pseudo supprimé 11 décembre 2017 à 02:16:54

J'en profite car j'ai fais le même exercice et j'ai déjà été noté (8/8 :hap:)

Mais y'a un bug dans mon code, en fait quand on as la bonne réponse à la dernière vie bah ça nous met défaite, je vois un peu près d'ou ça viens mais mon cerveau bug et j'arrive pas à le régler (pourtant c'est easy!) c'est comme quand on a un mot au bout de la langue et que ça sort pas [[sticker:p/1lmk]]

Olivied c'est un code un petit peu plus avancé que le tiens, libre à toi de regarder par curiosité mais ne recopie pas bêtement :hap:
https://image.noelshack.com/fichiers/2017/50/1/1512954806-capture.png

Message édité le 11 décembre 2017 à 02:17:49 par Pseudo supprimé
Olivied
Olivied
Niveau 36
11 décembre 2017 à 15:12:10

Le 11 décembre 2017 à 02:16:54 SIMPSONWAVE a écrit :
J'en profite car j'ai fais le même exercice et j'ai déjà été noté (8/8 :hap:)

Mais y'a un bug dans mon code, en fait quand on as la bonne réponse à la dernière vie bah ça nous met défaite, je vois un peu près d'ou ça viens mais mon cerveau bug et j'arrive pas à le régler (pourtant c'est easy!) c'est comme quand on a un mot au bout de la langue et que ça sort pas [[sticker:p/1lmk]]

Olivied c'est un code un petit peu plus avancé que le tiens, libre à toi de regarder par curiosité mais ne recopie pas bêtement :hap:
https://image.noelshack.com/fichiers/2017/50/1/1512954806-capture.png

J'ai le même bug où, quand on trouve la réponse à la 6ieme tentative, les deux messages "Gagné" et "Perdu" s'affichent simultanément :hap:

J'avais réussi à l'enlever en mettant un "If" après ma boucle, mais pour le coup on était obligé de faire les 6 tentatives pour finir le jeu.

Sinon je comprends ton code, tu as surtout rajouté une boucle pour obliger l'utilisateur à rentrer un nombre compris entre 1 et 100, et une décrémentation au lieu d'une incrémentation pour le compteur, mais sinon c'est quasiment la même chose. :)

Jeufroid
Jeufroid
Niveau 7
11 décembre 2017 à 18:15:11

While vies > 0

MrAnge
MrAnge
Niveau 10
11 décembre 2017 à 18:58:12

ouais my bad je pensais que !== comparais juste le type :hap:

sinon pour ton erreur de vie c'est while vie >= 1 car avec while vie > 1 bah quand il te reste une vie tu t’arrête puisque c'est pas strictement supérieur à 1

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment