Ejemplo n.º 1
0
 private Arista encontrarArista(Vertice v_1, Vertice v_2)
 {
     for (int i = 0; i < v_1.getLista().Count; i++)
     {
         if (v_1.getLista()[i].getDestino().getID() == v_2.getID())
         {
             return(v_1.getLista()[i]);
         }
     }
     return(null);
 }
Ejemplo n.º 2
0
 private bool pertenece(Vertice vrt)
 {
     for (int i = 0; i < compConexos.Count; i++)
     {
         if (vrt.getID() == compConexos[i].getID())
         {
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 3
0
 Arista encontrarVertice(Vertice v_1, Vertice v_2)
 {
     for (int i = 0; i < v_2.getLista().Count; i++)
     {
         if (v_1.getID() == v_2.getLista()[i].getDestino().getID())
         {
             return(v_2.getLista()[i]);
         }
     }
     MessageBox.Show("Regresando null");
     return(null);
 }
Ejemplo n.º 4
0
        public List <Arista> ejecutarDFS()
        {
            bool    flag = true;
            Vertice aux;

            aux = pila.Peek();
            while (pila.Count != 0)
            {
                for (int i = 0; i < aux.getLista().Count; i++)
                {
                    if (validos.Exists(x => x.getID() == aux.getLista()[i].getID()))
                    {
                        if (!visitados.Exists(x => x.getID() == aux.getLista()[i].getDestino().getID()))
                        {
                            pila.Push(aux);
                            visitados.Add(aux);
                            camino.Add(aux.getLista()[i]);
                            aux  = aux.getLista()[i].getDestino();
                            flag = false;
                            break;
                        }
                    }
                }

                if (flag)
                {
                    visitados.Add(aux);
                    Vertice aux2 = pila.Pop();

                    if (aux.getID() != aux2.getID())
                    {
                        camino.Add(encontrarArista(aux, aux2));
                    }

                    aux = aux2;
                }
                else
                {
                    flag = true;
                }
            }
            return(camino);
        }
        bool actualizarAgentes()
        {
            for (int i = 0; i < aList.Count; i++)
            {
                if (!revisarSoluciones())
                {
                    MessageBox.Show("Ningún agente logró llegar");
                    return(false);
                }

                if (!aList[i].moverAgente())
                {
                    aList[i].setSolucion(false);
                }

                dibujarEspectro(aList[i].getListaCamino(), true);

                if (aList[i].getId() == objetivo.getID())
                {
                    return(false);
                }
            }
            return(true);
        }