1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
| #include <stdio.h>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class joueur
{
private:
string nom;
int nb_points;
int etat_pendaison;
public:
joueur(string name, int points, int etat);
~joueur();
string get_nom() const {return nom;}
int get_etat_pandaison() const {return etat_pendaison;}
int get_nb_points() const {return nb_points;}
string set_nom(string name) {nom=name;}
int set_etat_pandaison(int etat) {etat_pendaison=etat;}
int set_nb_points(int points) {nb_points=points;}
};
joueur:: joueur(string name, int points, int etat)
{
nom = name;
nb_points = points;
etat_pendaison = etat;
}
joueur::~joueur()
{
}
void proposition(string mot,int joueur_propose_mot,int nb_joueur,vector<joueur>& tab_joueur)
{
//test pour savoir si le mot a été trouvé
int gagne = 0;
char lettre;
int i = 0;
//recupere les joueurs qui vont proposé des lettres
//string mot_a_lecran= new string;
char* mot_a_lecran = new char;
//char* mot_a_lecran = new char(mot.size()*2);
//char mot_a_lecran[mot.size()*2];
int num_joueur[nb_joueur];
int longueur_mot = mot.size();
//cpt du nombre lettre trouvé
int cpt_long = 0;
//initialisation du mot_a_lecran
while(mot[i]!='\0')
{
mot_a_lecran[i]=(char)" -";
i++;
}
//recuperation des joueurs qui vont proposer un mot
int y=0;
for(i=0;i<nb_joueur;i++)
{
if (i!=joueur_propose_mot)
{
num_joueur[y] = i;
y++;
}
}
while(gagne==0)
{
//voici les proposition de mots
for(i=0;i<y;i++)
{
//sil le mot a deja été trouvé pas de proposition
if (gagne == 0)
{
int numero_joueur_propose_lettre = num_joueur[i];
if (tab_joueur[numero_joueur_propose_lettre].get_etat_pandaison()>0)
{
cout << "MOT : "<<mot_a_lecran<<endl;
cout << "Joueur "<< tab_joueur[numero_joueur_propose_lettre].get_nom()<< " proposer une lettre"<<endl;
cin >>lettre;
int x = 0;
bool trouve = false;
while(mot[x]!='\0')
{
if (mot[x] == lettre)
{
mot_a_lecran[x] = lettre;
trouve = true;
cpt_long++;
}
x++;
}
//une lettre a été trouvé
if (trouve == true)
{
cout << "Bravo: "<< mot_a_lecran<<endl;
}else
{
cout << "Pas de chance :" <<endl;
tab_joueur[numero_joueur_propose_lettre].set_etat_pandaison(tab_joueur[numero_joueur_propose_lettre].get_etat_pandaison()-1);
cout << "Il vous reste "<<tab_joueur[numero_joueur_propose_lettre].get_etat_pandaison()<<" coups avant d'etre pendu"<<endl;
}
//le mot a été trouvé
if (longueur_mot == cpt_long)
{
cout << "-> Gagné" <<endl;
gagne = 1;
tab_joueur[numero_joueur_propose_lettre].set_nb_points(tab_joueur[numero_joueur_propose_lettre].get_nb_points()+2);
}
}
}
}
}
}
int main(int argv, char* argc[])
{
int nb_joueur;
string nom_joueur;
//tableau d'objet joueur
vector<joueur> tab_joueur;
//joueur tab_joueur[nb_joueur];
cout <<"indiquer le nombre de joueur"<<endl;
cin >>nb_joueur;
for(int i=0;i<nb_joueur;i++)
{
cout <<"nom du joueur "<<i+1<<endl;
cin >> nom_joueur;
tab_joueur.push_back(*(new joueur(nom_joueur,0,13)));
//tab_joueur.push_back(new joueur(nom_joueur,0,13));
}
for(int i=0;i<nb_joueur;i++)
{
string mot;
cout << "Au joueur "<<tab_joueur[i].get_nom() << " de proposer un mot"<<endl;
cout << "les autres joueurs ne regardent pas"<<endl;
cout <<"Entrer le mot :"<<endl;
cin >> mot;
//clear();
proposition(mot,i,nb_joueur,tab_joueur);
}
exit(0);
return 0;
} |