-
Notifications
You must be signed in to change notification settings - Fork 0
/
Joueur.h
285 lines (213 loc) · 8.17 KB
/
Joueur.h
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
/** @brief Fichier H pour Joeur
Gere la structure joueur et ses parametres.
@author Tristan James Benjamin
@file Joueur.h
@version 1.3
@date 2008/05/26
*/
#ifndef Joueur_H
#define Joueur_H
//Librairies Life'Seven Poker
#include "MainCarte.h"
/** @brief Statut du joueur
*/
enum Statut
{
DEF_STATUT=0, /**< Valeur d'initialisation */
SIT_OUT, /**< Joueur pas assis */
SIT, /**< Joueur assis */
CALL, /**< Joueur suis */
CHECK, /**< Joueur check */
RAISE, /**< Joueur relance */
FOLD, /**< Joueur se couche */
ALL_IN, /**< Joueur fait tapis */
FIN_STATUT /**< Joueur erreur*/
};
/** @brief Indique le type du joueur
*/
enum TypeJoueur
{
DEF_TYPE_JOUEUR=0, /**< Valeur d'initialisation */
Humain, /**< Joueur humain mais pas le joueur qui joue (pour le reseau)*/
IA, /**< Joueur simulé par l'ordinateur */
JoueurLocal, /**< Joueur qui joue sur la machine locale */
FIN_TYPE /**< Joueur erreur */
};
/** @struct Joueur
@brief Structure representant le joueur de poker assis à la table.
@param argent Reel représentant la somme d'argent que possede le joueur.
@param pseudo Chaine de caractere representant le pseudo du joueur.
@param idJoueur Identifiant du joueur, unique, correspondant a sa place a la table, ainsi qu'a son indice dans le tableau de joueurs de la table ou il est assis. Egal a -1 s'il nest pas associe a une table (dans ce cas il peut ne pas etre unique).
@param mise La somme des dernieres mises qu'a mis le joueur dans cette manche.
@param statut Indique le statut actuel du joueur sur la table.
@param mainCarte Pointeur vers la main du joueur.
@param type Type du joueur: humain, IA ou joueur local (sinon valeur par defaut).
@param posx Position en X de l'affichage du joueur.
@param posy Position en Y de l'affichage du joueur.
@param tapis La valeur du tapis du joueur si il en a fait un dans cette manche.
@param gainTapis La valeur des gains de ce joueur en cas de tapis victorieux.
*/
struct Joueur
{
int argent;
char* pseudo;
int idJoueur;
int mise;
Statut statut;
MainCarte* mainJoueur;
TypeJoueur type;
int posX;
int posY;
int tapis;
int gainTapis;
};
/** @brief Fonction qui renvoie la valeur du champ tapis d'une structure joueur.
@param [in]
@return Une valeur de type int.
*/
int getTapisJoueur(const Joueur & j);
/** @brief Procedure qui modifie la valeur du champ tapis d'une structure joueur.
@param [in,out] j Un joueur.
@param [in] n La nouvelle valeur de tapis.
*/
void setTapisJoueur(Joueur & j,int n);
/** @brief Fonction qui renvoie la valeur du champ gainTapis de la structure joueur.
@param [in] j Un joueur.
@return Une valeur de type int.
*/
int getGainTapisJoueur(const Joueur & j);
/** @brief Procedure qui modifie la valeur du champ gainTapis de la structure joueur.
@param [in,out] j Un joueur.
@param [in] n La nouvelle valeur de gainTapis.
*/
void setGainTapisJoueur(Joueur & j,int n);
/** @brief Procedure qui ajoute a un joueur ses gains de tapis.
@param [in,out] j Un joueur.
@param [in] n La quantite d'argent que le joueur a gagne lors du tapis.
@note Modifie la valeur du champ 'gainTapis' de la structure joueur.
*/
void ajouteGainTapisJoueur(Joueur & j,int n);
/** @brief Initialise un joueur.
@param [in,out] joueur Un joueur.
@note On initialise le champ idJoueur avec la valeur -1.
*/
void initJoueur(Joueur & joueur);
/** @brief Fonction qui renvoie la position en X de l'affichage d'un joueur.
@param [in] j Un joueur.
*/
int getPositionJoueurX(const Joueur & j);
/** @brief Fonction qui renvoie la position en Y de l'affichage d'un joueur.
@param [in] j Un joueur.
*/
int getPositionJoueurY(const Joueur & j);
/** @brief Procedure qui modifie la valeur du champ posx d'une structure joueur.
@param [in,out] j Un joueur.
@param [in] x La nouvelle valeur de posx.
*/
void setPositionJoueurX(Joueur & j,int x);
/** @brief Procedure qui modifie la valeur du champ posy d'une structure joueur.
@param [in,out] j Un joueur.
@param [in] y La nouvelle valeur de posy.
*/
void setPositionJoueurY(Joueur & j,int y);
/** @brief Initialise un joueur.
@param [in,out] joueur Un joueur.
@param [in] pseudo Nom du joueur (15 caracteres au maximum).
*/
void initJoueur (Joueur & joueur,const char* pseudo);
/** @brief Cree dans le tas une variable joueur puis l'initialise.
@note Appelle la fonction initJoueur.
@return Renvoie l'adresse d'un Joueur.
*/
Joueur* creeJoueur();
/** @brief Change le statut du joueur.
@param [in,out] joueur Un joueur.
@param [in] statut La valeur de statut qui sera attribuee au joueur.
*/
void setStatutJoueur (Joueur & joueur, const Statut statut);
/** @brief Recupere le statut du joueur.
@param [in,out] joueur Un joueur.
@return Renvoie le valeur de statut actuelle de joueur.
*/
Statut getStatutJoueur (const Joueur & joueur);
/** @brief Procedure qui modifie la valeur du champ type d'une structure joueur.
@param [in,out] joueur Un joueur.
@param [in] typejoueur La nouvelle valeur de type.
*/
void setTypeJoueur(Joueur & joueur, const TypeJoueur typejoueur);
/** @brief Fonction qui renvoie la valeur du champ type d'une structure joueur.
@param [in] joueur Un joueur.
*/
TypeJoueur getTypeJoueur(const Joueur & joueur);
/** @brief Libere les allocations memoire internes a la structure joueur.
@param [in,out] joueur Un joueur.
*/
void joueurLibere(Joueur & joueur);
/** @brief Libere puis detruit le joueur et toutes les allocations memoires dependantes.
@param [in, out] joueur Adresse d'un joueur.
@note Appelle la fonction joueurLibere.
*/
void joueurDetruit(Joueur* & joueur);
/** @brief Reinitialise la main d'un joueur.
@param [in,out] joueur Un joueur.
*/
void reinitialiseMainJoueur(Joueur & joueur);
/** @brief Modifie l'id du joueur.
@param [in] n Un entier.
@param [in,out] joueur Un joueur.
*/
void setIdJoueur(Joueur & joueur, int n);
/** @brief Renvoie la valeur d'id du joueur.
@param [in,out] joueur Un joueur.
@return idJoueur Un entier.
*/
int getIdJoueur(const Joueur & joueur);
/** @brief Modifie la mise d'un joueur.
@param [in] n Entier representant la valeur de la mise totale faite par le joueur lors de la manche.
@param [in,out] joueur Un joueur.
*/
void setMiseJoueur(Joueur & joueur, const int & n);
/** @brief Recupere la mise totale qu'a effectue un joueur lors de la manche.
@param [in,out] joueur Un joueur.
@return mise Un entier.
*/
int getMiseJoueur(const Joueur & joueur);
/** @brief Repercute la nouvelle mise d'un joueur sur sa mise totale.
@param [in] n Entier representant la valeur de la mise ajoutee a la valeur de sa mise courrante.
@param [in,out] joueur Un joueur.
@return mise Sa nouvelle valeur de mise (mise d'avant + n)
@note C'est une sorte de get et set sur la mise du joueur dans la meme fonction.
*/
int ajoutMiseJoueur(Joueur & joueur,int n);
/** @brief Renvoie l'adresse de mainJoueur dans la structure joueur.
@param [in] joueur Un joueur.
*/
MainCarte* getMainJoueur(const Joueur & joueur);
/** @brief Modifie la somme d'argent que possede un joueur.
@param [in] n Un entier.
@param [in,out] joueur Un joueur.
*/
void setArgentJoueur(Joueur & joueur, int n);
/** @brief Recupere le montant que possede un joueur.
@param [in,out] joueur Un joueur.
@return argent Un entier representant la somme d'argent que possede joueur.
*/
int getArgentJoueur(const Joueur & joueur);
/** @brief Procedure d'ajout d'argent a un joueur donne.
@param [in,out] joueur Un joueur.
@param [in] n La quantite d'argent que l'on va donner au joueur.
@note Modifie la valeur du champ'argent' de la structure joueur.
*/
void ajoutArgentJoueur(Joueur & joueur, int n);
/** @brief Procedure qui reinitialise le champ mainJoueur d'une structure joueur.
@param [in,out] j Un joueur.
*/
void reinitialisationMainJoueur(Joueur & j);
/** @brief Procedure qui rend effective l'action d'un joueur.
@param [in,out] j Un joueur.
@param [in] s Un statut.
@param [in,out] montant La valeur du montant actuelle des mises.
@param [in] relance La quantite d'argent qu'est pres a mettre le joueur pour continuer la manche.
*/
void actionJoueur(Joueur & j,Statut s,int & montant,int relance);
#endif