Programme c++ demande de couleur

Résolu/Fermé
Freeman - 10 oct. 2010 à 17:08
 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;
}





A voir également:

2 réponses

ydurce Messages postés 78 Date d'inscription samedi 9 octobre 2010 Statut Membre Dernière intervention 12 décembre 2010 18
10 oct. 2010 à 23:24
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
1
Marinettedu05
7 mars 2019 à 11:25
Bonsoir
0
Ok merci de ta réponse mais j'ai réussi à me débrouiller tout seul finalement .
0