#include <AffichageGrille.h>
Inheritance diagram for AffichageGrille:
Public Member Functions | |
AffichageGrille (Socket *s, Mutex *m) | |
Constructeur de la classe: recopie une socket et un mutex La classe appelante doit utiliser la même socket et le même mutex. | |
void * | Traitement () |
Méthode de traitement qui écoute sur la socket et affiche la grille. | |
bool | GameOver () |
Permet de savoir si le thread a détecté dans le status que la partie était terminée. | |
bool | AfficherGrille (string grille) |
Affichage de la grille sur la console. | |
Public Attributes | |
Socket * | mSocket |
Pointeur sur la socket de communication (utilisée par la classe appelante). | |
Mutex * | mVerrou |
Pointeur sur le mutex (utilisée par la classe appelante). | |
bool | mOver |
Indique si la partie est terminée. |
Definition at line 42 of file AffichageGrille.h.
Constructeur de la classe: recopie une socket et un mutex
La classe appelante doit utiliser la même socket et le même mutex.
..
s | Pointeur sur une socket | |
m | Pointeur sur un mutex |
Definition at line 51 of file AffichageGrille.h.
References mOver, mSocket, and mVerrou.
void* AffichageGrille::Traitement | ( | ) | [inline, virtual] |
Méthode de traitement qui écoute sur la socket et affiche la grille.
Implements Thread.
Definition at line 61 of file AffichageGrille.h.
References AfficherGrille(), Socket::Ecouter(), Socket::Envoyer(), Mutex::Lock(), mOver, mSocket, mVerrou, and Mutex::Unlock().
00061 { 00062 while(1){ 00063 mVerrou->Lock(); 00064 //On demande la grille 00065 mSocket->Envoyer("GRID"); 00066 string grille=mSocket->Ecouter(); 00067 if(AfficherGrille(grille)){ 00068 mVerrou->Unlock(); 00069 break; 00070 } 00071 mVerrou->Unlock(); 00072 sleep(1); 00073 system("clear"); 00074 00075 } 00076 printf("\e[33m GAME OVER\e[m\n"); 00077 mOver=true; 00078 }
Here is the call graph for this function:
bool AffichageGrille::GameOver | ( | ) | [inline] |
Permet de savoir si le thread a détecté dans le status que la partie était terminée.
Definition at line 84 of file AffichageGrille.h.
References mOver.
Referenced by ClientSJ::TraitementDeplacement().
00084 {return mOver;}
bool AffichageGrille::AfficherGrille | ( | string | grille | ) | [inline] |
Affichage de la grille sur la console.
grille |
Definition at line 91 of file AffichageGrille.h.
Referenced by Traitement().
00091 { 00092 //On récupère le status 00093 string cmd=grille; 00094 istringstream iss(cmd); 00095 string loginP, scoreP, loginF1, scoreF1, loginF2, scoreF2, loginF3, scoreF3, nbPomme, status; 00096 getline(iss,loginP,' '); getline(iss,scoreP,' '); getline(iss,loginF1,' '); getline(iss,scoreF1,' '); 00097 getline(iss,loginF2,' '); getline(iss,scoreF2,' '); getline(iss,loginF3,' '); getline(iss,scoreF3,' '); 00098 getline(iss,nbPomme,' '); getline(iss,status,' '); 00099 getline(iss,grille,' '); 00100 cout<<loginP<<": "<<scoreP<<", "<<loginF1<<": "<<scoreF1<<", "<<loginF2<<": "<<scoreF2<<", "<<loginF3<<": "<<scoreF3<<" "<<nbPomme<<" pommes restantes"<<endl; 00101 for(unsigned int i=0, j=0; i<grille.length(); i++, j++){ 00102 switch(grille[i]){ 00103 case '+' : { 00104 printf( "\e[30;47m \e[m"); 00105 break; 00106 } 00107 case 'x' : { 00108 printf( "\e[30;47m\e[33m%c \e[m\e[m",grille[i]); 00109 break; 00110 } 00111 case 'P' : { 00112 printf( "\e[30;47m\e[34m%c \e[m\e[m",grille[i]); 00113 break; 00114 } 00115 case 'F' : { 00116 printf( "\e[30;47m\e[31m%c \e[m\e[m",grille[i]); 00117 break; 00118 } 00119 case 'I' : { 00120 printf( "\e[30;47m%c \e[m",grille[i]); 00121 break; 00122 } 00123 } 00124 if(j==19){ 00125 cout<<endl; 00126 j=-1; 00127 } 00128 } 00129 cout<<endl; 00130 if(status=="GAMEOVER") return true; 00131 return false; 00132 }
Pointeur sur la socket de communication (utilisée par la classe appelante).
Definition at line 138 of file AffichageGrille.h.
Referenced by AffichageGrille(), and Traitement().
Pointeur sur le mutex (utilisée par la classe appelante).
Definition at line 143 of file AffichageGrille.h.
Referenced by AffichageGrille(), and Traitement().
Indique si la partie est terminée.
Definition at line 148 of file AffichageGrille.h.
Referenced by AffichageGrille(), GameOver(), and Traitement().