AffichageGrille Class Reference

Implémentation d'un thread pour que le client puisse afficher la grille en meme temps qu'il gere le déplacement. More...

#include <AffichageGrille.h>

Inheritance diagram for AffichageGrille:

Inheritance graph
[legend]
Collaboration diagram for AffichageGrille:

Collaboration graph
[legend]
List of all members.

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

SocketmSocket
 Pointeur sur la socket de communication (utilisée par la classe appelante).
MutexmVerrou
 Pointeur sur le mutex (utilisée par la classe appelante).
bool mOver
 Indique si la partie est terminée.

Detailed Description

Implémentation d'un thread pour que le client puisse afficher la grille en meme temps qu'il gere le déplacement.

Definition at line 42 of file AffichageGrille.h.


Constructor & Destructor Documentation

AffichageGrille::AffichageGrille ( Socket s,
Mutex m 
) [inline]

Constructeur de la classe: recopie une socket et un mutex
La classe appelante doit utiliser la même socket et le même mutex.

..

Parameters:
s Pointeur sur une socket
m Pointeur sur un mutex
Returns:

Definition at line 51 of file AffichageGrille.h.

References mOver, mSocket, and mVerrou.

00051                                             {
00052                 mSocket=s;
00053                 mVerrou=m;
00054                 mOver=false;
00055         }


Member Function Documentation

void* AffichageGrille::Traitement (  )  [inline, virtual]

Méthode de traitement qui écoute sur la socket et affiche la grille.

Returns:

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.

Returns:

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.

Parameters:
grille 
Returns:

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         }


Member Data Documentation

Socket* AffichageGrille::mSocket

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().

Mutex* AffichageGrille::mVerrou

Pointeur sur le mutex (utilisée par la classe appelante).

Definition at line 143 of file AffichageGrille.h.

Referenced by AffichageGrille(), and Traitement().

bool AffichageGrille::mOver

Indique si la partie est terminée.

Definition at line 148 of file AffichageGrille.h.

Referenced by AffichageGrille(), GameOver(), and Traitement().


The documentation for this class was generated from the following file:
Generated on Wed Jan 2 14:01:56 2008 for Pacman by  doxygen 1.5.1