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 }
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; }
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 <<"] }"; }
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; }
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 } }
bool floresIguales(Flor f1, Flor f2){ return (f1.habilidadesF().size() == f2.habilidadesF().size() && cuentaMismosHabilidades(f1,f2)); }
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(); } }
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())); }