-
Notifications
You must be signed in to change notification settings - Fork 0
/
AfficheDynamique.h
218 lines (171 loc) · 6.1 KB
/
AfficheDynamique.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
/**
@brief Fichier H pour l'affichage dynamique
Gere l'affichage dynamique en utilisant le moteur de rendu SDL (Simple Directmedia Layer).
@author Tristan James Benjamin
@file AfficheDynamique.h
@version 1.3
@date 2008/05/25
*/
#ifndef AfficheDynamique_H
#define AfficheDynamique_H
//Librairies Standard.
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cassert>
//Librairies SDL.
#include <SDL/SDL.h>
#include "SDL/SDL_image.h" //Gestion des images.
#include "SDL/SDL_ttf.h" //Gestion des polices True Type Fonts.
#include <SDL/SDL_rotozoom.h>
#include "SDL/SDL_mixer.h" //Gestion du multi channeling audio.
#include "Joueur.h"
#include "Table.h"
#include "AfficheTxt.h"
#include "AfficheSdl.h"
#include "Jeu.h"
#include "IArtificielle.h"
#include "AfficheTxt.h"
/** @brief détermine le ou les vainqueurs et fait l'affichage en fonction
@param [in,out] affichage
@param [in,out] langue fichier de langue
@param [in] t
@param [in] afficheCarteGagnant à true si on doit afficher les cartes du gagnant
@param [in] gagnantForfait si afficheCarteGagnant est a true represente le gagnat
*/
void affAffichageVainqueur(SDL_Surface* affichage,Table & t,const char langue[][50],bool afficheCarteGagnant,int gagnantForfait);
/** @brief reparti l'argent entre les joueurs, est appelée si le meilleur joueur a fait un tapis
@param t table
@param tabResultat tableau a 3dimension contenant les vainqueurs
@note aucune
*/
void calulVainqueurTapis(Table & t,int tabResultat[][6][2]);
/** @brief fonction de centrage
@param source sur quoi on doit centrer
@param destinationce qui doit etre centré
@param option de centrage 0 : centrage h et v 1 : centrage h,2 : centrage v
@return SDL_Rect contient les coordonnées de centrage
@note
*/
SDL_Rect AffCentrer(SDL_Surface* source, SDL_Surface* destination, int option);
/** @brief affiche le logo du debut
@param affichage
@param tapis le fond
@note
*/
void AffStartUp(SDL_Surface* affichage,SDL_Surface* tapis);
/** @brief affiche le pot
@param affichage
@param t table
@param langue fichier de langue
@note
*/
void AffAffichePot(SDL_Surface* affichage,const Table & t,const char langue[][50]);
/** @brief affiche le menu
@param affichage
@param [in] langue fçichier de langue
@return int renvoit un code qui correspond à ceux sur quoi l'on a clique
@note
*/
int AffMenu(SDL_Surface* affichage,const char langue[][50]);
/** @brief affiche les infos des joueurs (non locaux)
@param affichage
@param j le joueurZ
@param table
@param joueurJouant le joueur a qui c'est au tour de jouer
@param langue fichier de langue
@note
*/
void AffAfficheJoueur(SDL_Surface* affichage,const Joueur & j,const Table & table,int joueurJouant,const char langue[][50]);
/** @brief affiche des infos sur tous les joueurs et les dispose suivant leurs nombre sur la table
@param affichage
@param t table
@param joueurJouant le joueur a qui c'est au tour de jouer
@param langue fichier de langue
@note appel AffAfficheJoueur
*/
void AffAffichageInfosJoueurs(SDL_Surface* affichage,const Table & t,int joueurJouant,const char langue[][50]);
/** @brief affiche les cartes des joueurs face cachée (sauf les siennes)
@param [in,out] affichage
@param [in] t
@note utilise AffAfficheCarte
*/
void AffCartesJoueursJeu(SDL_Surface* affichage,const Table & t);
/** @brief affiche les cartes des joueurs
@param [in,out] affichage
@param [in] t
@param [in] cache si vraie affiche les cartes des autres joueurs face cachee
@note utilise AffAfficheCarte
*/
void AffCartesJoueursJeu(SDL_Surface* affichage,const Table & t,bool cache);
/** @brief affiche les cartes qui sont disposées sur le tapis
@param t table
@param affichage
@param evidence
@note appel la fonction AffCarteDecouvertes(const Table & t,SDL_Surface* affichage,bool evidence,int tabResultat[6][2]);
*/
void AffCarteDecouvertes(const Table & t,SDL_Surface* affichage);
/** @brief affiche les cartes qui sont disposées sur le tapis, si evidence est à true affiche en évidence celle présente dans le tableau
@param affichage
@param evidence à true pour mettre les cartes en évidence
@param tabResultat contient les cartes à mettre en évidence
@note
*/
void AffCarteDecouvertes(const Table & t,SDL_Surface* affichage,bool evidence,int tabResultat[6][2]);
/** @brief affiche les cartes du gagnant en surbrillance
@param [in,out] affichage
@param [in] t
@param tabResultat
@param i id du gagnant
@note
*/
void AffCartesJoueursJeuFinale(SDL_Surface* affichage,const Table & t,int tabResultat[6][2],int i);
/** @brief affichage des infos perso du joueur local
@param affichage
@param j
@param table
@param langue fichier de langue
@note
*/
void AffInfosJoueur(SDL_Surface* affichage,const Joueur &j,const Table & table,const char langue[][50]);
/** @brief gestion de l'affichage du bouton relance
@param affichage
@param relance valuer de la relance
@param dessus est ce que la souris est dessus ?
@param langue
@note
*/
void AffAfficheBoutonRelance(SDL_Surface* affichage,int relance,bool dessus,const char langue[][50]);
/** @brief scan les actions du joueur, affiche des boutons pour récupérer ces actions
@param affichage
@param relance
@param s statut
@param montant mise maximale
@param j joueur
@param t table
@param langue
@return renvoit un entier au cas ou il clique sur le menu
@note
*/
int scanActionJoueur(SDL_Surface* affichage,int & relance,Statut & s,int & montant,const Joueur & j,const Table & t,const char langue[][50]);
/** @brief met l'ensemble des mises dans le pot
@param t table
@note
*/
void miseDansPot(Table & t);
/** @brief calcul combien gagnge au maximum un joueur lorsquil fait un tapis
@param t table
@note
*/
void calculGainTapisJoueur(Table & t);
/** @brief lance la partie de poker
@param affichage
@param tapis
@param langue fichier langue a prendre pour la partie (anglais ou francais)
@param NOMBRE_JOUEUR_PC nombre de joueur manoeuvre par le PC
@param argentDepart argent de départ pour chaque joueur
@return int
@note
*/
int lancePartie(SDL_Surface* affichage,SDL_Surface* tapis,const char langue[][50],int NOMBRE_JOUEUR_PC,int argentDepart,const char* nomJoueur);
#endif