Bonjour tout le monde,
J'ai un petit soucis sur mon code. J'ai cr�� un classe Personnage dans laquelle j'ai impl�ment� deux constructeurs :
- 1 avec des valeurs par d�fauts,
- l'autre avec des valeurs d�finies par l'utilisateur.
Jusqu'ici, je pense que tout va bien. Pour comprendre voici mon code concernant la classe Personnage :
Dans mon main(), je demande � l'utilisateur de cr�er le nom de ses perso, de choisir des armes qu'il affecte � chaque perso. Pour cela, j'ai opt� pour la cr�ation de tableaux en utilisant vector.
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 #include "Personnage.h" #include <iostream> #include <string.h> #include <istream> #include <vector> using namespace std; Personnage::Personnage(vector<string> nom): m_arme(0), m_armeSac(0), m_vie(100), m_mana(100) { m_arme = new Arme(); m_armeSac = new Arme(); } Personnage::Personnage(vector<string> nom, vector<string> nomArme, vector<int> degatsArme) : m_arme(0), m_armeSac(0), m_vie(100), m_mana(100) { m_arme = new Arme(nomArme, degatsArme); m_armeSac = new Arme(nomArme, degatsArme); }
J'ai donc :
- un vector<string> avec le nom des Perso entr�s par le User,
- un vector<string> avec les armes affect�es par le User,
- un vector<int> pour les d�g�ts correspondant aux armes affect�es.
L'id�e est de rassembler tous ces �l�ments dans un objet qui, lui-m�me, serait un tableau. OUF, j'ai r�ussi � tout expliquer.
Voici l'ensemble de mon main() =
J'espere que mes explications sont suffisamment claires pour trouver une personne qui pourra m'aider. Attention, je ne suis pas un developpeur chevronn� ou averti. Donc je suis preneur d'explications abordables pour un n�ophyte.
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
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 int main() { int nbrePersoACreer=0; int validChoix; int num=0; vector<string> nomPerso; vector<string> armePerso; vector<int> degatsArme; // Demander de créer des personnages while(nbrePersoACreer<1 || nbrePersoACreer>4){ cout << "Créer vos personnages" << endl << endl; cout << "Pour le moment, 4 combattants maximum !!!" << endl; cout << "Combien de personnages voulez-vous créer : "; cin >> nbrePersoACreer; } do{ num=0; nomPerso.clear(); // efface l'ensemble des données du tableau. for (int i=1 ; i <= nbrePersoACreer ; i++){ num++; string nom; cout << "Entrez le nom du personnage n° " << num << " : "; cin >> nom; nomPerso.push_back(nom); } cout << "" << endl; cout << "Voici les " << nbrePersoACreer << " noms des personnages choisis : " << endl; num=0; for (int i=0; i < nbrePersoACreer ; i++){ num++; cout << "Personnage " << num << " : " << nomPerso[i] << endl; } cout << "" << endl; cout << "Voulez-vous conserver les noms de personnages ?" << endl; cout << "Choix 1 : c'est ok," << endl; cout << "Choix 2 : Finalement, les noms sont merdiques, je change !" << endl; cout << "Vas-y mec, choisi : "; cin >> validChoix; cout << "" << endl; }while(validChoix != 1 && validChoix == 2); cout << "" << endl; // Choisir une arme pour chaque personnage cout << "Choississez une arme pour chaque personnage : " << endl; cout << "choix 1 : épée (degats 10)" << endl; cout << "choix 2 : sabre (degats 10)" << endl; cout << "" << endl; num=0; do{ num=0; armePerso.clear(); // efface l'ensemble des données du tableau. degatsArme.clear(); // efface l'ensemble des données du tableau. for (int i=0; i < nbrePersoACreer ; i++){ num++; int arme; cout << "Personnage " << nomPerso[i] << " : "; cin >> arme; if (arme = 1){ armePerso.push_back("épée"); degatsArme.push_back(10); } if (arme = 2){ armePerso.push_back("sabre"); degatsArme.push_back(10); } } cout << "" << endl; cout << "Voici les armes affectées pour les " << nbrePersoACreer << " personnages : " << endl; num=0; for (int i=0; i < nbrePersoACreer ; i++){ num++; cout << "Personnage " << nomPerso[i] << " : " << armePerso[i] << " (degats " << degatsArme[i] << ")" << endl; } cout << "" << endl; cout << "Voulez-vous valider l'affectation des armes ?" << endl; cout << "Choix 1 : c'est ok," << endl; cout << "Choix 2 : Finalement, je change !" << endl; cout << "Vas-y mec, choisi : "; cin >> validChoix; cout << "" << endl; }while(validChoix != 1 && validChoix == 2); /*créer l'objet Personnage en utilisant les valeurs tapées par l'utilisateur et stockées dans mes différents tableaux.*/ // Début de piste : Personnage *tabPerso[nbrePersoACreer]; tabPerso[nbrePersoACreer] = new Personnage(nomPerso, armePerso, degatsArme); tabPerso[0]->afficheEtat(); return 0; }
Ai-je fait le bon choix pour le stockage de mes valeurs ? N'y a-t-il pas plus simple pour stocker les valeurs entr�es par le User et ensuite les affecter � mon Constructeur Personnage ?
Bref, je suis fan de tous les conseils qui pourront me faire avancer.
PS : Ne faites pas attention � la s�curisation de mon code car je n'ai pas encore travaill� dessus.
Mille Mercis
Partager