예제 #1
0
 public void setVerticeMarcado(Vertice v)
 {
     if (vMarcado != null)
     {
         vMarcado.desmarcar();
     }
     vMarcado = v;
     Refresh();
 }
예제 #2
0
        public void clicouVertice(Vertice v)
        {
            if (v.getMarcado())
            {
                v.desmarcar();
                vMarcado = null;
            }
            else
            {
                v.marcar();
                if (vMarcado != null)
                {
                    int peso;

                    if (getPesosAleatorios())
                    {
                        peso = (int)(randNum.Next(1, 100));
                    }
                    else
                    {
                        peso = 1;
                    }

                    Aresta a = new Aresta(peso, Color.Black, this); // cria a nova aresta
                    if (matAdj[vMarcado.getNum(), v.getNum()] == null)
                    {
                        matAdj[vMarcado.getNum(), v.getNum()] = matAdj[v.getNum(), vMarcado.getNum()] = a;
                        vMarcado.desmarcar();
                        vMarcado = v;
                    }
                    else
                    {
                        a = null;
                        v.desmarcar();
                    }
                }
                else
                {
                    vMarcado = v;
                }
            }
            Refresh();
        }