Je me suis lancé il y'a peu sur le cours proposé par OC sur le langage C++ avec une grande motivation.
Je suis arrivé au premier exercice de la semaine 1 (qui consiste à deviner un mot dont les lettres ont été mélangées) et je bloque complètement sur une chose qui doit être simple:
Je ne réussis pas a faire respecter deux conditions différentes sur un do...while. J'ai conscience d'avoir deux variables de type différents en condition, peut etre est-ce la le réel problème?
Si oui, alors après avoir longuement cherché, je ne trouve toujours pas la solution alternative...
Un while de fin va renvoyer au do de début. Ton premier while ligne 65 va renvoyer ligne 43 si l'utilisateur n'a pas trouvé ou bien s'il reste des coups (donc même s'il a trouvé on continue!! revois ton test.)
Ton second while ligne 82 va renvoyer au do ligne 74 tant que rejouer n'est pas 1 ou 2. Là c'est okay, on va redemander.
Ton troisième while ligne 84 va renvoyer au do ligne 27 tant que l'utilisateur veut rejourer. Là aussi c'est okay, mais difficile à lire à cause de l'indentation.
L'erreur ne semble pas due à la mauvaise compréhension des do while mais serait sur le test de ton premier while. Il faut recommencer tant qu'on n'a pas trouvé ------- que l'on a encore droit des des coups. en remplaçant ------- par le bon mot (est-ce OU ou est-ce ET ?)
Je me suis lancé il y'a peu sur le cours proposé par OC sur le langage C++ avec une grande motivation.
Je viens te prévenir, le cours de OC est devenu obsolète depuis des années... il n'est plus à jour et t'apprendra des mauvaises pratiques.
Pour commencer l'usage de using namespace std qui est une mauvaise pratique.
srand/rand sont des fonctions dépréciés du C, sans parler qu'en C++ il y a la fonction std::shuffle, "shuffle" qui veut dire mélanger, est exactement faite pour ça.
Cette condition sera toujours vrai car nombreCoups est de type non-signé, donc toujours supérieur ou égal à 0. Et comme dit @Dalfab, l'opérateur choisi n'est peut-être pas le bon (ET ou OU, tel est la question ^^).
Ils pourraient quand même le dire que le cours est obsolète...
@GuitoXx , il s'agit là de faire sortir le premier mot entré du champ de vision afin que le second joueur ne le voit pas. C'est il me semble ce qui était conseillé dans le TP mot Mystere.
Ils pourraient quand même le dire que le cours est obsolète...
Du moment que ça leur rapporte de l'argent ils vont surement pas le dire
@GuitoXx , il s'agit là de faire sortir le premier mot entré du champ de vision afin que le second joueur ne le voit pas. C'est il me semble ce qui était conseillé dans le TP mot Mystere.
Oui ça il le sait ^^, c'est juste que tu peux remplacer ça par une boucle comme il l'a écrit, c'est mieux car si tu voulais faire un espace de 1000 lignes c'est plus pratique d'écrire tout simplement "1000" dans la boucle.
salut pour éviter que le second joueur puisse voir le mot tu peux(si tu es sous Windows) utiliser
system("cls")//efface le contenu de la console
Boucle do...while a deux conditions (C++)
× 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.
En recherche d'emploi.
...