예제 #1
0
void campusSeguro::moverHippie(Nombre h)
{
    Posicion posActual = _hippies.Obtener(h);
    DiccPalabra<Posicion>::itDiccP itPos = _estudiantes.Claves();
    Posicion nuevaPos = proxPosicion(posActual, itPos );

    if(!(posActual == nuevaPos))
    {
        grilla.Obtener(posActual).id = 4;
        grilla.Obtener(posActual).tag = "libre";
        grilla.Obtener(posActual).placa = 0;
        //ingresarHippie(h, nuevaPos);

        //diccHash<Agente,Datos> d(0);// dicchash vacio.
        //diccHash<Agente,Datos>::Iterador itNulo = d.CrearIt();// creo un iterador vacio.
        //grilla.Obtener(posActual).datosAgente = itNulo;

        _hippies.Borrar(h);
        _hippies.Definir(h,nuevaPos);
        grilla.Obtener(nuevaPos).id = 2;
        grilla.Obtener(nuevaPos).tag = h;
        grilla.Obtener(nuevaPos).placa = 0;
        //grilla.Obtener(nuevaPos).datosAgente = grilla.Obtener(nuevaPos).datosAgente;
        actualizarEstYHippie(_campus.Vecinos(nuevaPos));
        actualizarVecinos(nuevaPos);
    }
}// fin funcion
예제 #2
0
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);

        }
    }

}
예제 #3
0
void campusSeguro::moverAgente(Agente a)
{
    Posicion posActual = posAgente(a);
    //Conj<campus::Posicion>::Iterador itPos = _hippies.Claves();
    DiccPalabra<Posicion>::itDiccP itPos = _hippies.Claves();
    Posicion nuevaPos = proxPosicion(posActual, itPos );

    if( !(posActual == nuevaPos) )
    {
        grilla.Obtener( nuevaPos ).tag =  grilla.Obtener( posActual ).tag;
        grilla.Obtener( nuevaPos ).id =   grilla.Obtener( posActual ).id;
        grilla.Obtener( posActual).id =  4;
        grilla.Obtener( nuevaPos ).placa =  grilla.Obtener( posActual ).placa;
        grilla.Obtener( nuevaPos ).datosAgente =  grilla.Obtener( posActual ).datosAgente;
        Conj<Posicion> c;
        c.Agregar(nuevaPos);
        actualizarDatosAgentes(c);
        actualizarEstYHippie(_campus.Vecinos(nuevaPos));// en el diseño aca hay un Siguiente(itVecinos) que esta demas.
        actualizarVecinos(nuevaPos);
    }
}