Bonjour,
Je réalise suite a un tuto un jeu mot mystere, un joueur tape un mot, le programme mélange les lettres, et le deuxieme joueur doit retrouver le mot.
Mais j'ai deux problemes, une fois le programme terminé j'ai ajouté certaines fonctionnalités, j'ai ajouté un passage de ligne pour que le joueur 2 ne voit pas le mot donné par le joueur 1, un systeme pour rejouer une partie sans devoir relancer le programme, et un systeme d'essai (au bout de 3 essais, la partie s'arrete), seulement, ces fonctionnalités une par une semble fonctionné, mais mise toute ensemble et bien non ^^.
De plus je chercherai un meilleur moyen de recommencer une partie, le seul moyen que j'ai trouvé c'est avec le nombre de caractere de la réponse (si elle est > a 2 (yes) alors on recommence, si elle est < 2 (no) alors le programme s'arrete.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
#include <iostream>
#include <string>
#include <ctime> // Obligatoire
#include <cstdlib> // Obligatoire
 
using namespace std;
 
    string motDonner, motMelange, proposition, reponse, reponse2; // Variable du mot.
    int nbEssai(3);
    int essaiUser(0); // Variable du nombre d'essai maximum  // Essai du joueur (au début zero)
 
string MelangerMot(string mot) // Fonction pour melanger le mot
{
    srand(time(0)); // Activation des fonctionnalité aléatoire
    int pl; // Création de la variable qui contiendras la position des lettres
    string melange; // Variable du mot mélangé
 
 
    while(mot.size() != 0) // Tant que le mot donné contient encore des lettres
    {
        pl = rand() % mot.size(); // On prend une la position d'une lettre au hasard et on l'ajoute dans pl
        melange += mot[pl]; // On l'ajoute a la variable mélange
        mot.erase(pl,1); // Et enfin on supprime la lettre pour ne pas la prendre plusieurs fois
    }
 
    return melange; // Et voila le rendu final
}
 
int main()
{
 
do
{
 
  // Premiere étape.
    essaiUser = 0;
    cout << "Au joueur 1 de taper un mot !" << endl;
    cin >> motDonner; // Le joueur 1 tape le mot qui sera stocké dans la variable motDonner.
    cout << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl << endl;
 
 
  // Deuxieme étape.
        motMelange = MelangerMot(motDonner); // Application de la fonction dans la variable motmelange a partir du motdonner
 
 
  // Troisieme étape.
  /* Tant que le mot n'est pas trouvé (MotDonner), le programme se repete, une fois trouvé,
   message de felicitation suivis de la fin du programme.*/
 
 
    cout << "Voici le mot melange: " << motMelange << endl; // Affichage du mot mélangé
 
    for(;essaiUser<nbEssai && proposition != motDonner ;essaiUser++) // Tant que les essai du joueur ne dépasse pas les essais maximum (a savoir 3), et que le joueur
	// ne donne pas la bonne réponse, alors on ajoute 1 a la variable essaiUser.
{
    if(essaiUser != 0)
    {
    cout << "Ce n'est pas la bonne réponse, il te reste " << nbEssai - essaiUser << endl; //Si les essai du joueur sont different de zero, ce qui
	// signifie qu'il s'est trompé au moins une fois, alors on affiche un message, ainsi que le nombre d'essai restant.
    cin >> proposition; // On lui donne ensuite la possibilité de donné une autre réponse.
    }
}
 
if(proposition == motDonner) // Si la proposition est égal au motdonne
    {
        cout << "Bravo, vous avez réussis" << endl; // Alors on l'informe que c'est terminé
        cout << "Souhaitez vous faire une autre partie ? Yes/No" << endl; // Proposition de réponse (en anglais :/)
        cin >> reponse2; // Choix du joueur
        proposition = "rien";
        essaiUser = 0;
    }
 
 
if (essaiUser == nbEssai)
{
cout << "Tu n'as plus de chance ! La bonne réponse était: " << motDonner << endl; // Si les essais du joueur sont égal au nombre d'essai maxi
// autrement dit 3, alors on lui dit qu'il a perdu, et on affiche la bonne réponse.
essaiUser = 0;
cin >> reponse; // Choix du joueur
 
}
 
}while(reponse.size() > 2 || reponse2.size() > 2); // Si la réponse possede + de 2 caractere alors la partie continue
 
return 0;
}