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
Partager