Beispiel #1
0
        bool estaMuyLejosCentro(MinuciaParcial mp)
        {
            Atributos atr = Atributos.getInstance();

            double maxDistancia = ((double)atr.maxDistancia / (double)100) * atr.radioVecinos;
            double distancia    = Funcion.distancia(mp.minuciaCentral.x, mp.minuciaCentral.y, mp.minucia.x, mp.minucia.y);

            return(distancia > maxDistancia);
        }
        bool sonEncajables(ParAlineado pa)
        {
            Atributos atr = Atributos.getInstance();

            double distancia = Funcion.distancia(pa.xT, pa.yT, pa.xDestino, pa.yDestino);

            bool cercanosEnDistancia        = distancia <= (double)atr.radioEncaje;
            bool diferenciaDireccionPequeña = true;

            return(cercanosEnDistancia && diferenciaDireccionPequeña);
        }
Beispiel #3
0
        public void agregarVecinos(List <Minucia> listaMinucias)
        {
            Atributos atr = Atributos.getInstance();

            vecinos = new List <Minucia>();

            foreach (Minucia minucia in listaMinucias)
            {
                if (this != minucia && Funcion.distancia(this.x, this.y, minucia.x, minucia.y) <= atr.radioVecinos)
                {
                    this.vecinos.Add(minucia);
                }
            }
        }
Beispiel #4
0
        //Dada una minucia mp trasladada, mirar si existe en los vecinos del destino
        bool hayAlgunEncaje(MinuciaParcial mp, List <MinuciaParcial> destino)
        {
            Atributos atr    = Atributos.getInstance();
            bool      encaje = false;

            foreach (MinuciaParcial mpdestino in destino)
            {
                int dx = mpdestino.minucia.x;
                int dy = mpdestino.minucia.y;

                double distancia = Funcion.distancia(dx, dy, mp.x, mp.y);

                if (distancia <= atr.radioEncaje)
                {
                    encaje = true;
                    break;
                }
            }

            return(encaje);
        }