Bonjour,

Je me suis mis à la programmation en C++ récemment pour le plaisir. J'ai donc commencé par suivre un tutoriel C++ , et le cours C/C++ de Christian Casteyde sur ce site en complément.
J'ai appris à écrire une classe, à la mettre dans un autre fichier que le main.ccp, et j'en suis à coder un mini-RPG très simple via la console. Voici mon problème :
j'ai une classe nommée Personnage, et dedans une fonction Tour, appelée par le main lorsque l'initiative du personnage atteint une valeur seuil. La voici :
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
void Personnage::tour()
{
     do
     {
          cout << "Tour de " << m_nomPersonnage << " : que voulez-vous faire ? /n    [potion] [attaquer] [rien]" << endl;
          cin >> m_action;
          if (m_action=="potion") 
          {
                boirePotionDeVie(20);
           }
           else if (m_action=="attaquer")
           { 
                 m_cibleattaque=????
                 attaquer(m_cibleAttaque);
            } 
            else if (m_action=="rien")
            {
                 nefaisrien();
            }
      }while (estActif()==1);
      cout << endl;
}

ou nefaisrien() et boirepotiondevie(20) sont des fonctions qui marchent.
Seulement la fonction attaquer(Personnage) ci-dessous prend en argument un objet de type personnage, et je n'arrive pas à l'intégrer dans ma fonction tour. L'idée est de demander à l'utilisateur le personnage à attaquer, mais je ne vois pas comment faire. J'ai essayé de déclarer un objet de type personnage en attribut, et d'utiliser un pointeur mais rien ne marche. Une idée?



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
void Personnage::attaquer(Personnage &cible)
{
         cout << m_nomPersonnage << " attaque " << cible.getName() << "."               << endl;
         cible.recevoirDegats(m_arme.getDegats());
         cout << endl;
         m_estActif=false;
}

Merci d'avance,
bl4cksky