void campusSeguro::actualizarDatosAgentes(Conj<Posicion> c) { Posicion posActual; Conj<Posicion>::Iterador it = c.CrearIt(); while( it.HaySiguiente() ) { posActual=it.Siguiente(); if( posCapturable(posActual,_campus) ) { Conj<Posicion> vecinosDePosActual = _campus.Vecinos(posActual); Conj<Posicion>::Iterador itVec = vecinosDePosActual.CrearIt(); while( itVec.HaySiguiente()) { Posicion vecActual = itVec.Siguiente(); if( esAgente(vecActual) && esHippie(posActual) ) { diccHash<Agente,Datos>::Iterador datosVec = grilla.Obtener(vecActual).datosAgente; datosVec.SiguienteSignificado().hippiesAtrapados++; Nat cantAtrapadosVec = datosVec.SiguienteSignificado().hippiesAtrapados; if(cantAtrapadosVec > _masVigilante.cantAtrapados ) { (_masVigilante).agente = datosVec.SiguienteClave(); (_masVigilante).cantAtrapados = cantAtrapadosVec; } if( (cantAtrapadosVec == (_masVigilante).cantAtrapados) && ( datosVec.SiguienteClave()< (_masVigilante).agente) ) { (_masVigilante).agente = datosVec.SiguienteClave(); (_masVigilante).cantAtrapados = cantAtrapadosVec; } } if( esAgente(vecActual) && esEstudiante(posActual) ) { //diccHash<Agente,Datos>::Iterador datosVec = grilla.Obtener(vecActual).datosAgente; //datosVec.SiguienteSignificado().Sanciones++; //Nat vecSancionesActual = datosVec.SiguienteSignificado().Sanciones; Agente ac = grilla.Obtener(posActual).placa; datosAgentes.Obtener(ac).Sanciones ++; //Nat vecSancionesActual = datosAgentes.Obtener(ac).Sanciones; //datosAgentes.Obtener(ac).claseConMismasSanciones.ItActualizarElem(vecSancionesActual); //datosVec.SiguienteSignificado().claseConMismasSanciones.ItActualizarElem(vecSancionesActual); // CREOOO QUE ES DE CONJEQU (KSanciones).buffer = false; } itVec.Avanzar(); } } it.Avanzar(); } }
void campusSeguro::actualizarVecinos(Posicion p) { Conj<Posicion> vec = _campus.Vecinos(p); Conj<Posicion>::Iterador itVecinos = vec.CrearIt(); actualizarDatosAgentes(vec, p); while( itVecinos.HaySiguiente() ) { Posicion vec1 = itVecinos.Siguiente(); Conj<Posicion> vecinosDeVecino = DameCampus().Vecinos(vec1); Conj<Posicion>::const_Iterador itVecinosVec = vecinosDeVecino.CrearIt(); while( itVecinosVec.HaySiguiente() ) { if( posConvertibleAEstudiante(vec1,_campus) && esHippie(vec1) ) { Nombre name = grilla.Obtener(vec1).tag ; (_estudiantes).Definir(name,vec1 ); (_hippies).Borrar( name ); } else { if( posCapturable(vec1,_campus) && esHippie(vec1) ) { Nombre name = grilla.Obtener(vec1).tag ; (_hippies).Borrar( name ); grilla.Obtener(vec1).id = 4; grilla.Obtener(vec1).tag = ""; grilla.Obtener(vec1).placa = 0 ; diccHash<Agente,Datos>::Iterador itVacioHash; grilla.Obtener(vec1).datosAgente =itVacioHash; Conj<Posicion>::Iterador itVecVec = (_campus.Vecinos(vec1)).CrearIt() ; while( itVecVec.HaySiguiente() ) { Posicion posVec= itVecVec.Siguiente(); if( esAgente(posVec) ) { diccHash<Agente,Datos>::Iterador itH = grilla.Obtener(posVec).datosAgente; itH.SiguienteSignificado().hippiesAtrapados++; actualizarMasVigilante(itH,posVec); } itVecVec.Avanzar(); } } else { if( posCapturable(vec1,_campus) && esEstudiante(vec1) ) { Nombre name = grilla.Obtener(vec1).tag ; Conj<Posicion> VecinosDe_vecinosDeVecino = DameCampus().Vecinos(vec1); Conj<Posicion>::Iterador itVecVec = VecinosDe_vecinosDeVecino.CrearIt(); while( itVecVec.HaySiguiente() ) { Posicion posVec = itVecVec.Siguiente(); if( esAgente(posVec) ) { //diccHash<Agente,Datos>::Iterador itH = grilla.Obtener(posVec).datosAgente; //itH.SiguienteSignificado().Sanciones++; Agente ac = grilla.Obtener(posVec).placa; datosAgentes.Obtener(ac).Sanciones ++; //Nat san = itH.SiguienteSignificado().Sanciones; //ConjsEqu<Agente>::Iterador itMSanciones = itH.SiguienteSignificado().claseConMismasSanciones; //itMSanciones.ItActualizarElem(san); } itVecVec.Avanzar(); } } } } itVecinosVec.Avanzar(); } itVecinos.Avanzar(); } }