Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercice du mot mystère.

Aidez-moi svp.

16 février 2018 à 18:29:08

Bonjour à tous,

Voilà, je suis en train de suivre le cours sur le C++ et je suis bloqué sur l'exercice du "mot mystère".

J'arrive à faire l'exercice de base sans problème, ça tourne.

Voici le lien de l'exercice et des consignes:

http://exercices.openclassrooms.com/assessment/65?courseIdentifier=programmez-avec-le-langage-c&login=8510780&tk=c95b2fc278fbae268ae6226e3efe9d31&sbd=2016-02-01&sbdtk=fa78d6dd3126b956265a25af9b322d55

En fait j'ai du mal à résoudre la condition de la grande boucle DO WHILE pour la première amélioration, je comprends bien le principe de cette boucle mais après une vingtaine d'essais différents je ne trouve pas la solution.

Pour l'amélioration 2, j'ai essayé de la résoudre avec la boucle FOR mais sans succès je ne parviens pas à placer la boucle au bon endroit pour qu'elle fasse ce que je lui demande et c'est plutôt frustrant.

En espérant que quelqu'un puisse m'aider, toute aides ou conseils seront les bienvenus!

Thomas.

  • Partager sur Facebook
  • Partager sur Twitter
17 février 2018 à 14:42:37

Salut,

Je pense (mais ce n'est que mon avis) que si tu n'arrives pas a placer correctement la boucle do.. while, c'est que tu as du mal comprendre son fonctionnement, ou que tu ne vois pas vraiment comme ça doit se passer.

La boucle do.. while est une boucle while qui s’exécute au moins une fois, on l'utilise ici parce que ton utilisateur veut au moins faire une partie (sinon il aurait pas ouvert le programme xd), mais si il le souhaite il doit pouvoir rejouer, en langage naturel ca donne quelque chose comme

Faire
	le jeu...
Tant que (utilisateur le veut)

A toi de voir comment tu traduis ça :p

Pour la partie 2, je pense que tu n'est pas partie sur la bonne boucle, on veut que l'utilisateur puisse essayer tant qu'il n'a pas fait 5 essaies et qu'il n'a pas trouver : la réponse est dans la phrase, je te laisse la chercher et la traduire

N’hésite pas a redemander si tu ne trouves vraiment pas, ou que tu as mal compris quelque chose

En espérant t'avoir aider ^^

EDIT : Si tu fais cet exo, je suppose que tu suis le cours de OC

Malheureusement celui-ci n'est pas bon , et il est préférable d'en changer maintenant (d'autre t’expliquerons 100x mieux que moi pourquoi, et leurs explications sont trouvables en quelque recherche sur le forum)

-
Edité par K4kugen 17 février 2018 à 14:46:04

  • Partager sur Facebook
  • Partager sur Twitter
17 février 2018 à 21:21:19

Merci beaucoup pour ton aide,

en fait je comprends bien la boucle do while mais c'est la condition que je n arrive pas a traduire. (recommence si le joueur veut refaire une partie)

J'ai essayer avec des strings,des char et meme des int. Mais rien a faire il y a toujours quelque chose qui ne fonctionne pas, je n'arrive pas a égaler les deux variables, je pense que je ne choisis pas les bonnes variables.

Soit le code beug, soit la boucle ne fonctionne pas, j'ai besoin d'une solution svp.

Merci beaucoup à toi!

  • Partager sur Facebook
  • Partager sur Twitter
18 février 2018 à 16:38:07

declaration d'un bool ilveutjouer = true

do

propose le mot()

     demande mot à utilisateur    <-------|

      si mot pas trouvé           ------------------|

      quand mot trouvé : demander si  utilisateur veux encore jouer

      si reponse non alors  ilveutjouer = false

while ilveutjouer = true

dire merci et au revoir

fin prog

-
Edité par Djarkan 18 février 2018 à 16:38:55

  • Partager sur Facebook
  • Partager sur Twitter
18 février 2018 à 16:49:16

Salut,

Avec un tout petit peu de code (au minimum la boucle qui te pose problème), nous aurions beaucoup plus facile à t'aider (utilise le bouton en forme de < / > qui se trouve en haut de la zone d'édition pour rajouter ton code ;) )

Mais, de manière générale, si la condition est "l'utilisateur veut continuer", la première chose que tu devras faire (à la fin de la boucle), c'est sans doute ... lui poser la question...

Tu devras alors récupérer sa réponse, sous la forme la plus adaptée à tes besoins, et en faisant attention au fait qu'il peut répondre "oui", "OUI", "O", "non", "NON", "N" ou ... n'importe quoi ("hello world", par exemple), et que tu devras réagir correctement à toutes ces possibilités (par exemple, en reposant la question dans le cas de "hello world").

Notes au passage que le SRP devrait t'inciter à créer une fonction particulière qui s'occupe de toute cette logique ;)

  • Partager sur Facebook
  • Partager sur Twitter
Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait