int main (){
string mot;
string solutionJoueur1[3];
string solutionJoueur2[3];
string essai[3];
bool gagne=false;
string combinaisonJoueur1;
string combinaisonJoueur2;
string combiJoueur1;
cout<<"Joueur 1"<<endl;
do {
combinaisonJoueur1=joueur(); //combinaison du joueur1
} while (testerCombinaison(combiJoueur1));
solutionJoueur1[3]= combinaisonJoueur1;//met la combinaison dans un tableau
system ("cls");
cout<<"Joueur 2"<<endl;
do {
combinaisonJoueur2=joueur(); //combinaison du joueur1
} while (testerCombinaison(combiJoueur1));
solutionJoueur2[3]= combinaisonJoueur2;//met la combinaison dans un tableau
cout<<"solution du joueur 1 "<<solutionJoueur1[3]<<endl;
cout<<"solution du joueur 2 "<<solutionJoueur2[3]<<endl;
system ("pause");
return 0;
}
string joueur(){
string combi;
cout<<"Veuillez choisir 4 couleurs parmis les suivantes"<<endl;
cout<<"(r=rouge,v=vert,b=bleu,j=jaune,n=noir,o=orange):"<<endl;
cin>>combi;
return (combi); //retourne la combinaison d'un joueur
}
string essaiJoueur(){
string essai;
cout<<"a vous de jouer ! saisissez a nouveau une combinaison pour trouver si celle-ci est celle de votre adversaire"<<endl;
cin>>essai;
return(essai); //retourne une combinaison pour la comparer
}
bool testerCombinaison(string combi){ // procédure de test de la validité de la combinaison
int longueurCombiJoueur=combi.length(); //donne la longueur de la combinaison
int i;
for (i=0; i<longueurCombiJoueur; i++){ //boucle pour extraire chaque caractère 1 à 1
string extrait= combi.substr(i,1);
if (extrait != "r" & extrait != "v" & extrait != "b"& extrait != "j" & extrait != "n"& extrait != "o"){ //compare chaque caractère pour vérifier la saisie
cout<<"erreur de saisie"<<endl;
return true; //retourn true si erreur
}
}return false; //retourn false si pas d'erreur
}
cs_Chouchou182
Messages postés252Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention25 avril 20111 26 nov. 2009 à 21:56
Bonjour.
Il y a un problème avec les tableaux.
La déclaration:
string sJ1[3];
réserve un tableau à trois cases auxquelles on accède par
sJ1[0];
sJ1[1];
sJ1[2];
Essayer d'accéder à sJ1[3], c'est traverser en-dehors des clous: ça peut être dangereux.
Pourquoi utilises-tu un tableau?
Confonds-tu un objet string avec un tableau de char? Ça a la même fonction, mais des syntaxes différentes!