示例#1
0
void Juego::Mostrar(std::ostream& os)
{
	os << "Instancia de Juego\n";
	os << "=================\n";
	os << "\n";

    // FLORES
	os << "Flores:\n";
	os << "\n";

	int i = 0;

	while(i < _flores.size())
	{
		Flor f = _flores[i];

		f.Mostrar(os);

		i++;
	}
	// FLORES - END

	os << "\n";

	// VAMPIROS
	os << "Vampiros:\n";
	os << "\n";

	i = 0;

	while(i < _vampiros.size())
	{
		Vampiro v = _vampiros[i];

	    v.Mostrar(os);

		i++;
	}
    // VAMPIROS - END

	os << "\n";

	// NIVELES
	os << "Niveles:\n";
	os << "\n";

	i = 0;

	while(i < _niveles.size())
    {
    	Nivel n = _niveles[i];

    	n.Mostrar(os);

    	i++;
    }
	// NIVELES - END
}
示例#2
0
bool cuentaMismosHabilidades(Flor f1, Flor f2){
    int l = f1.habilidadesF().size();
    int i = 0;
    while(i<l && cuenta(f1.habilidadesF()[i],f1.habilidadesF())==cuenta(f1.habilidadesF()[i],f2.habilidadesF()))
    {
     i++;
    }
	return i==l;
}
示例#3
0
void Juego::Guardar(std::ostream& os)
{
	os << "{ J [ ";

    // FLORES
	int i = 0;

	while(i < _flores.size())
	{
		Flor f = _flores[i];

		f.Guardar(os);
        
        os << " ";

		i++;
	}	
	// FLORES - END

	os << "] [ ";
    
    // VAMPIROS
	i = 0;

	while(i < _vampiros.size())
	{
		Vampiro v = _vampiros[i];

		v.Guardar(os);

		os << " ";

		i++;
	}
    // VAMPIROS - END

	os << "] [ ";

    // NIVELES
    i = 0;

    while(i < _niveles.size())
    {
    	Nivel n = _niveles[i];

    	n.Guardar(os);

    	os << " ";

    	i++;
    }
    // NIVELES - END

    os <<"] }";
}
示例#4
0
void Juego::Cargar(istream& is)
{
	string juego;
	getline(is, juego, 'J');
	string basura;
	string cambioTipo;
	getline(is, cambioTipo, ' ');
	char ultimoCambio=cambioTipo.back();
	while (ultimoCambio != ']') {
		Flor cargaF;
		cargaF.Cargar(is);
		this->_flores.push_back(cargaF);
		getline(is, basura, ' ');
		getline(is, cambioTipo, ' ');
		ultimoCambio = cambioTipo.back();
	}
	getline(is, basura, ' ');
	getline(is, cambioTipo, ' ');
	ultimoCambio = cambioTipo.back();
	while (ultimoCambio != ']') {
		Vampiro cargaF;
		cargaF.Cargar(is);
		this->_vampiros.push_back(cargaF);
		getline(is, basura, ' ');
		getline(is, cambioTipo, ' ');
		ultimoCambio = cambioTipo.back();
	}
	getline(is, basura, ' ');
	getline(is, cambioTipo, ' ');
	ultimoCambio = cambioTipo.back();
	while (ultimoCambio != ']') {
		Nivel cargaN;
		cargaN.Cargar(is);
		this->_niveles.push_back(cargaN);
		getline(is, basura, ' ');
		getline(is, cambioTipo, ' ');
		ultimoCambio = cambioTipo.back();
	}
	this->_nivelActual = 0;
}
示例#5
0
void Juego::Cargar(std::istream& is)
{
	using namespace std;

	is.ignore(2);

	string tipo = "";
	getline(is, tipo, ' ');

	if(tipo == "J")
	{
		// FLORES

		is.ignore(2);
		
		vector<Flor> floresJuego;
		string noCargoFlores = "";
		string noHayMasFlores = "";
		noCargoFlores = is.peek();
		
		if (noCargoFlores == "]")
		{
			noHayMasFlores== "]";
			_flores = floresJuego;
		}
		
		else
		{
			while(noHayMasFlores != "]")
			{
				Flor f;
			
				f.Cargar(is);

				floresJuego.push_back(f);

				is.ignore(2);
			
				noHayMasFlores = is.peek();
			}

			_flores = floresJuego;
		}
	// FLORES - END

		is.ignore(4);

	// VAMPIROS		
		vector<Vampiro> vampirosJuego;
		string noCargoVampiros = "";
		string noHayMasVampiros = "";
		noCargoVampiros = is.peek();
		
		if (noCargoVampiros == "]")
		{
			noHayMasVampiros== "]";
			_vampiros = vampirosJuego;
		}
		
		else
		{
			while(noHayMasVampiros != "]")
			{
				Vampiro v;

				v.Cargar(is);

				vampirosJuego.push_back(v);

				is.ignore(2);
			
				noHayMasVampiros = is.peek();
			}

			_vampiros = vampirosJuego;
		}
	// VAMPIROS - END

		is.ignore(4);

	// NIVELES
		vector<Nivel> nivelesJuego;
		string noCargoNiveles = "";
		string noHayMasNiveles = "";
		noCargoNiveles = is.peek();
		
		if (noCargoNiveles == "]")
		{
			noHayMasNiveles == "]";
			_niveles = nivelesJuego;
		}

		else
		{
			while(noHayMasNiveles != "]")
			{
				Nivel n;

				n.Cargar(is);

				nivelesJuego.push_back(n);

				is.ignore(4);

				noHayMasNiveles = is.peek();
			}

			_niveles = nivelesJuego;
		}

	// NIVELES - END

	 }
}
示例#6
0
bool floresIguales(Flor f1, Flor f2){
	return (f1.habilidadesF().size() == f2.habilidadesF().size() && cuentaMismosHabilidades(f1,f2));
}
示例#7
0
void Nivel::Cargar(istream& is){
  string nivel;
  getline(is, nivel, 'N');
  getline(is, nivel, ' ');
  string anchoNivel;
  getline(is, anchoNivel, ' ');
  this->_ancho = atoi(anchoNivel.c_str());
  string altoNivel;
  getline(is, altoNivel, ' ');
  this->_alto = atoi(altoNivel.c_str());
  string turnoNivel;
  getline(is, turnoNivel, ' ');
  this->_turno = atoi(turnoNivel.c_str());
  string solesNivel;
  getline(is, solesNivel, ' ');
  this->_soles = atoi(solesNivel.c_str());
  string basura;
  getline(is, basura, ' ');
  string cambioTipo;
  getline(is, cambioTipo, ' ');
  char ultimoCambio=cambioTipo.back();
  while(ultimoCambio != ']') {
    Flor cargaflor;
    Posicion t;
    Vida v;
    cargaflor.Cargar(is);
    getline(is, basura, '(');
    getline(is, basura, ' ');
    string posicionFx;
    getline(is, posicionFx, ' ');
    t.x = atoi(posicionFx.c_str());
    string posicionFy;
    getline(is, posicionFy, ' ');
    t.y = atoi(posicionFy.c_str());
    getline(is, basura, ' ');
    string vidaFi;
    getline(is, vidaFi, ' ');
    v = atoi(vidaFi.c_str());
    getline(is, basura, ' ');
    FlorEnJuego fCargar(cargaflor,t,v);
    this->_flores.push_back(fCargar);
    getline(is, cambioTipo, ' ');
    ultimoCambio = cambioTipo.back();
  }
  getline(is, basura, ' ');
  getline(is, cambioTipo, ' ');
  ultimoCambio = cambioTipo.back();
  while(ultimoCambio != ']') {
    Vampiro cargaVampiro;
    Posicion p;
    Vida v;
    cargaVampiro.Cargar(is);
    getline(is, basura, '(');
    getline(is, basura, ' ');
    string posicionVx;
    getline(is, posicionVx, ' ');
    p.x = std::atoi(posicionVx.c_str());
    string posicionVy;
    getline(is, posicionVy, ' ');
    p.y = std::atoi(posicionVy.c_str());
    getline(is, basura, ' ');
    string vidaVj;
    getline(is, vidaVj, ' ');
    v = atoi(vidaVj.c_str());
    VampiroEnJuego vCargar(cargaVampiro, p, v);
    this->_vampiros.push_back(vCargar);
    getline(is, basura, ' ');
    getline(is, cambioTipo, ' ');
    ultimoCambio = cambioTipo.back();
  }
  getline(is, basura, ' ');
  getline(is, cambioTipo, ' ');
  ultimoCambio = cambioTipo.back();
  while(ultimoCambio != ']'){
    Vampiro cargarVS;
    int cargarFila;
    int cargarTurnoS;
    cargarVS.Cargar(is);
    getline(is, basura, ' ');
    string fila;
    getline(is, fila, ' ');
    cargarFila = atoi(fila.c_str());
    getline(is, basura, ' ');
    string turnoVs;
    getline(is, turnoVs, ' ');
    cargarTurnoS = std::atoi(turnoVs.c_str());
    VampiroEnEspera vSpawC(cargarVS,cargarFila,cargarTurnoS);
    this->_spawning.push_back(vSpawC);
    getline(is, cambioTipo, ' ');
    ultimoCambio = cambioTipo.back();
  }
}
示例#8
0
void Nivel::agregarFlor(Flor f, Posicion p){
  this->_soles = this->_soles - pow(2,f.habilidadesF().size());
  this->_flores.push_back(FlorEnJuego(f,p,f.vidaF()));
}