Esempio n. 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
Esempio n. 2
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);
    }
}
Esempio n. 3
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 = h;
    grilla.Obtener(posActual).placa = -1;
    diccHash<Agente,Datos> d(0);// dicchash vacio.
    diccHash<Agente,Datos>::Iterador itNulo = d.CrearIt();// creo un iterador vacio.
    grilla.Obtener(posActual).datosAgente = itNulo;
    if( posConvertibleAEstudiante(nuevaPos,_campus)  )
      {
        _estudiantes.Definir(h,nuevaPos);
        grilla.Obtener(nuevaPos).id = 1;
        grilla.Obtener(nuevaPos).tag = h;
        grilla.Obtener(nuevaPos).placa = 0;
        grilla.Obtener(nuevaPos).datosAgente = grilla.Obtener(nuevaPos).datosAgente;
      }
      else
      {
        if( posCapturable(nuevaPos,_campus) )
        {
          grilla.Obtener(nuevaPos).id = 4;
        }
        else
        {
           _hippies.Definir(h,nuevaPos);
           grilla.Obtener(nuevaPos).id = 2;
           grilla.Obtener(nuevaPos).tag = h;
        }
      }
      actualizarVecinos(nuevaPos);
  }// fin 1er If
}// fin funcion