Menu

Programme c++ demande de couleur [Résolu/Fermé]

- - Dernière réponse :  Marinettedu05 - 7 mars 2019 à 11:25
Bonjour,
J'ai voulu créer un programme demandant 6 couleurs et si les couleurs saisi ne sont pas bonne alors lui redemandai jusqu'à qu'il donne une bonne réponse sauf que je suis opposé à un problème . Le programme me dit tout le temps que mon choix 1 est mauvais alors que j'ai tapé "R" à chaque fois et que j'ai défini R comme une bonne réponse . J'aurai besoin d'une petite aide (je précise que je suis largement novice donc m'en veuillez pas si vous voyez des fautes atroces dans le programme :=))
Voici le programme

#include <iostream>

using namespace std;

int main()
{
int nb_essais;
const int NBMIN=5, NBMAX=20;
char pion_reponse1, pion_reponse2, pion_reponse3, pion_reponse4, pion_reponse5, pion_reponse6;
do
{
cout<<"combien de tentatives autorisees?"<<endl;
cin>>nb_essais;
}
while (NBMIN > nb_essais || nb_essais > NBMAX);

cout<<"choisissez une combinaison parmi les 6 couleurs suivantes:"<<endl;
cout <<"Rouge (R), Vert (V), Bleu (B), Noir (N), Jaune (J), Mauve (M)"<<endl;
cin>>pion_reponse1>>pion_reponse2>>pion_reponse3>>pion_reponse4>>pion_reponse5>>pion_reponse6;

bool courant_valide=('R'||'V'||'B'||'N'||'J'||'M');

switch (courant_valide)
{
case 1 : while (pion_reponse1!=courant_valide)
{ cout<<"choix 1 mauvais:"<<endl;
cout <<"Rouge (R), Vert (V), Bleu (B), Noir (N), Jaune (J), Mauve (M)"<<endl;
cin >>pion_reponse1;}

case 2 : while (pion_reponse2!=courant_valide)
{ cout<<"choix 2 mauvais:"<<endl;
cout <<"Rouge (R), Vert (V), Bleu (B), Noir (N), Jaune (J), Mauve (M)"<<endl;
cin >>pion_reponse2;}

case 3 : while (pion_reponse3!=courant_valide)
{ cout<<"choix 3:"<<endl;
cout <<"Rouge (R), Vert (V), Bleu (B), Noir (N), Jaune (J), Mauve (M)"<<endl;
cin >>pion_reponse3;}

case 4 : while (pion_reponse4!=courant_valide)
{ cout<<"choix 4:"<<endl;
cout <<"Rouge (R), Vert (V), Bleu (B), Noir (N), Jaune (J), Mauve (M)"<<endl;
cin >>pion_reponse4;}

case 5 : while (pion_reponse5!=courant_valide)
{ cout<<"choix 5:"<<endl;
cout <<"Rouge (R), Vert (V), Bleu (B), Noir (N), Jaune (J), Mauve (M)"<<endl;
cin >>pion_reponse5;}

case 6 : while (pion_reponse6!=courant_valide)
{ cout<<"choix 6:"<<endl;
cout <<"Rouge (R), Vert (V), Bleu (B), Noir (N), Jaune (J), Mauve (M)"<<endl;
cin >>pion_reponse6;}

default : cout<<"vous avez saisi des valeur valides"<<endl;
}

return 0;
}





Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
78
Date d'inscription
samedi 9 octobre 2010
Dernière intervention
12 décembre 2010
24
1
Merci
bonjour,

c'est pas trés clair:
bool courant_valide=('R'||'V'||'B'||'N'||'J'||'M');
donne une valeur true à courant_valide, donc le switch tombera toujours sur le même case (le case 1 puisque la valeur true vaut 1)
dans le while du case , tu compares 2 types de données différents (un char avec un bool)

fais un tableau avec les valeurs attendues:
char Tab[6]={'R','V',.....};
puis compare les pions un à un avec

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 47519 internautes nous ont dit merci ce mois-ci

0
Merci
Ok merci de ta réponse mais j'ai réussi à me débrouiller tout seul finalement .