Example #1
0
        } //Con teorema de los 4 colores

        public void despintarNodosAdyacentesA(CVertice vertice)
        {
            foreach (CVertice v in vertice.getVecinos())
            {
                v.setRelleno(Color.LightGoldenrodYellow.ToArgb());
                v.setPintado(false);
            }
        }
Example #2
0
        public bool hayVecinoConColor(CVertice vertice, int color)
        {
            foreach (CVertice vecino in vertice.getVecinos())
            {
                if (vecino.estaPintado())
                {
                    if (vecino.getArgbRelleno() == colores[color].ToArgb())
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Example #3
0
        public void pintaNodoNColores(CVertice vertice)
        {
            int color_asignado = AZUL;

            foreach (CVertice vecino in vertice.getVecinos())
            {
                if (vecino.estaPintado())
                {
                    if (vecino.getArgbRelleno() == colores[color_asignado].ToArgb())
                    {
                        if (color_asignado != NEGRO)
                        {
                            color_asignado++;
                        }
                    }
                }
            }

            vertice.setRelleno(colores[color_asignado].ToArgb());
            vertice.setPintado(true);
        } //General numero cromatico arbitrario
Example #4
0
        public void coloreoDeGrafo4Colores(TabPage tp)
        {
            if (hayNodoSinPintar() && !band)
            {
                CVertice vert_mge = getNodoDeMayorGradoDeErrorSinPintar();
                if (vert_mge != null)
                {
                    int color = -1;
                    if (hayColorDisponibe(vert_mge, ref color) && color != -1)
                    {
                        pintaNodo4Colores(vert_mge, color);
                    }
                    else
                    {
                        if (vert_mge.getVecinos().Count != G.getNumeroVertices() - 1)
                        {
                            vert_mge.aumentaGE();
                            despintarNodosAdyacentesA(vert_mge);
                        }
                        else
                        {
                            band = true;
                        }
                    }

                    coloreoDeGrafo4Colores(tp);
                }
            }
            else
            {
                if (hayNodoSinPintar())
                {
                    coloreoDeGrafoNColores(tp);
                }

                G.dibujate(tp, G.getBMP());
            }
        }
Example #5
0
        public void pintaNodoNColores(CVertice vertice)
        {
            int color_asignado = AZUL;

            foreach (CVertice vecino in vertice.getVecinos())
            {
                if (vecino.estaPintado())
                {
                    if (vecino.getArgbRelleno() == colores[color_asignado].ToArgb())
                    {
                        if (color_asignado != NEGRO)
                        {
                            color_asignado++;
                        }
                    }
                }
            }

            vertice.setRelleno(colores[color_asignado].ToArgb());
            vertice.setPintado(true);
        }
Example #6
0
        public bool hayVecinoConColor(CVertice vertice, int color)
        {
            foreach (CVertice vecino in vertice.getVecinos())
            {
                if (vecino.estaPintado())
                {
                    if (vecino.getArgbRelleno() == colores[color].ToArgb())
                        return true;
                }
            }

            return false;
        }
Example #7
0
 public void despintarNodosAdyacentesA(CVertice vertice)
 {
     foreach(CVertice v in vertice.getVecinos())
     {
         v.setRelleno(Color.LightGoldenrodYellow.ToArgb());
         v.setPintado(false);
     }
 }