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