Página principal | Lista de namespace | Lista de archivos

casilla.h

00001 /***********************************************************************************
00002  *  CLASE CASILLA
00003  *  Clase que representa las casillas de un tablero de street master's. Es la 
00004  *  clase base de la que derivarán todos los tipos de casilla en los que se centrará
00005  *  la acción del juego.
00006  *  Una casilla base debe conocer los datos comunes a todas (nombre y número), así 
00007  *  como los jugadores que tiene sobre ella (ahorrando tiempo computacional en su
00008  *  búsqueda).
00009  *
00010  *  Requiere:
00011  *     - clase jugador ( jerarquia )
00012  *     - clase algorithm (STL)
00013  *     - clase vector (STL)
00014  *     - clase string (STL)
00015  *
00016  *  Autor: Javier Aragón Zabalegui (PFC para la uc3m: street Master's)
00017  *  Contacto: 100039831@alumnos.uc3m.es
00018  *  version 1.0
00019  **********************************************************************************/
00020 
00021 #ifndef __CASILLA__
00022 #define __CASILLA__
00023 
00024 #include "cadenas.h"    //Libreria creada para el tratamiento de cadenas
00025 #include "jugador.h"
00026 
00027 #include <iostream>
00028 #include <cctype>
00029 #include <algorithm>
00030 #include <vector>
00031 #include <string>
00032 using namespace std;
00033 
00034 class jugador;          //Forward declaration
00035 
00036 class casilla {
00037 
00038  private:
00039   //Atributos
00040   int _numero;                      //número de casilla
00041   string _nombre;                   //nombre de la casilla
00042   string _nombreCorto;              //nombre corto de la casilla
00043 
00044  protected:  
00045   vector <jugador*> estaJugador;    //Jugadores que se encuentran en la casilla.
00046 
00047  public:
00048 
00049   // Constructores
00050   casilla ();  
00051   casilla ( int numero, string nombre, string nombreCorto );
00052   
00053   // Copy constructor
00054   casilla (const casilla& right);
00055 
00056   // Sobrecarga de operadores
00057   // Operador de asignación
00058   casilla& operator= (const casilla& right);
00059 
00060   //operador de inserción
00061   friend ostream& operator<< (ostream& os, casilla* c);
00062 
00063   //operador de extracción
00064   friend istream& operator>> (istream& is, const casilla& c);
00065 
00066   //Opreador distinto
00067   bool operator!= ( const casilla& c);
00068   //Operador igual
00069   bool operator== ( const casilla& c);
00070 
00071   // Destructor
00072   ~casilla ();
00073 
00074   // Métodos GET
00075   int get_numero () const;
00076   string get_nombre () const;
00077   string get_nombreCorto () const;
00078 
00079   // Métodos SET
00080   void set_numero (int value);
00081   void set_nombre ( string nombre );
00082   void set_nombreCorto ( string nombreCorto );
00083 
00084   // MÉTODOS
00085 
00086   // Métodos virtuales (polimorfismos)
00096   virtual string mostrar ();  
00097 
00103   virtual int accion ( jugador *player );
00104 
00110   virtual string dibujarCasillaHorizontal ( int fila, int anchoCasilla );
00111 
00117   virtual string dibujarCasillaVertical ( int fila, int anchoCasilla );
00118   
00126   virtual string dibujarCasillaEnTablero ();
00127 
00132   virtual string leyendaCasilla ( int num, int nombreCorto, int tipo, int nombre, int estado );
00133   
00134   // Otros métodos
00135 
00140   void situarJugadorEnCasilla ( jugador* player );
00141 
00149   void eliminarJugador ( jugador* player );
00150 };
00151 
00152 //Métodos GET
00153 inline int casilla::get_numero () const
00154 {
00155   return _numero;
00156 }
00157 
00158 inline string casilla::get_nombre () const
00159 {
00160   return _nombre;
00161 }
00162 
00163 inline string casilla::get_nombreCorto () const
00164 {
00165   return _nombreCorto;
00166 }
00167 
00168 //Métodos SET
00169 inline void casilla::set_numero (int value)
00170 {
00171   _numero = value;
00172 }
00173 
00174 inline void casilla::set_nombre ( string  nombre )
00175 {
00176   _nombre = nombre;
00177 }
00178 
00179 inline void casilla::set_nombreCorto ( string  nombreCorto )
00180 {
00181   _nombreCorto = nombreCorto;
00182 }
00183 
00184 #endif

Generado el Fri Jun 30 12:38:29 2006 para Street Master's por  doxygen 1.3.9.1