void campusSeguro::actualizarEstYHippie(Conj<Posicion> c) { Posicion posActual; Conj<Posicion>::Iterador it = c.CrearIt(); while( it.HaySiguiente() ) { posActual = it.Siguiente(); if( posConvertibleAHippie(posActual,_campus) && esEstudiante(posActual) ) { grilla.Obtener(posActual).id = 2; (_estudiantes).Borrar( grilla.Obtener(posActual).tag ); (_hippies).Definir( grilla.Obtener(posActual).tag, posActual ); } else { if( posConvertibleAEstudiante(posActual,_campus) && esHippie(posActual) ) { grilla.Obtener(posActual).id = 1; (_hippies).Borrar( grilla.Obtener(posActual).tag ); (_estudiantes).Definir( grilla.Obtener(posActual).tag , posActual ); } } } it.Avanzar(); }
void campusSeguro::moverEstudiante(Nombre e,Direccion dir) { Posicion posActual = _estudiantes.Obtener(e); if( seRetira(posActual,dir) ) { _estudiantes.Borrar(e); grilla.Obtener(posActual ).id = 4; grilla.Obtener(posActual ).tag = "libre"; grilla.Obtener(posActual ).placa = 0; //diccHash<Agente,Datos> d(0);// dicchash vacio. //diccHash<Agente,Datos>::Iterador itNulo = d.CrearIt();// creo un iterador vacio. //grilla.Obtener(posActual).datosAgente = itNulo; } else { Posicion nuevaPos = _campus.ProximaPos(posActual,dir); if(!(posActual==nuevaPos)) { grilla.Obtener( posActual ).id = 4; grilla.Obtener( posActual ).tag = "libre"; grilla.Obtener( posActual ).placa = 0; //diccHash<Agente,Datos> d(0);// dicchash vacio. //diccHash<Agente,Datos>::Iterador itNulo = d.CrearIt();// creo un iterador vacio. //grilla.Obtener(posActual).datosAgente = itNulo; if( posConvertibleAHippie(nuevaPos,_campus) ) { _hippies.Definir(e,nuevaPos); grilla.Obtener( nuevaPos ).id = 2; grilla.Obtener( nuevaPos ).tag = e; grilla.Obtener( nuevaPos ).placa = 0; _estudiantes.Borrar(e); //grilla.Obtener( nuevaPos ).datosAgente = grilla.Obtener( nuevaPos ).datosAgente; } else { _estudiantes.Borrar(e); _estudiantes.Definir(e,nuevaPos); grilla.Obtener( nuevaPos ).id = 1; grilla.Obtener( nuevaPos ).tag = e; grilla.Obtener( nuevaPos ).placa = 0; //grilla.Obtener( nuevaPos ).datosAgente = grilla.Obtener( nuevaPos ).datosAgente; } actualizarEstYHippie(_campus.Vecinos(nuevaPos)); actualizarVecinos(nuevaPos); } } }
void campusSeguro::ingresarEstudiante(Nombre e, Posicion p) { if( posConvertibleAHippie(p, _campus) ) { _hippies.Definir(e, p); grilla.Obtener(p).id = 2 ; grilla.Obtener(p).tag = e ; grilla.Obtener(p).placa = 0 ; //grilla.Obtener(p).datosAgente = grilla.Obtener(p).datosAgente;// esta demas, pero lo pongo asi es mas claro. } else { _estudiantes.Definir(e,p); grilla.Obtener(p).id = 1 ; grilla.Obtener(p).tag = e ; grilla.Obtener(p).placa = 0 ; //grilla.Obtener(p).datosAgente = grilla.Obtener(p).datosAgente;// esta demas, pero lo pongo asi es mas claro. } actualizarVecinos(p); }