コード例 #1
0
        private void toolStripButtonConflictos_Click(object sender, EventArgs e) //botón conflictos
        {
            //Ya consideramos que hemos solucionado los conflictos
            conflictoscomprobados = true;

            //Colocamos todos los vuelos en su posición inicial
            listFP.restarttodos();

            //Dibujamos el avión en el inicio
            DibujarFP(listFP);

            //Si no hay ningún plan de vuelo en la lista
            if (listFP.getcount() == 0)
            {
                MessageBox.Show("Introduce algún plan de vuelo");
            }

            //Si solo hay un plan de vuelo, no va a haber conflictos
            if (listFP.getcount() == 1)
            {
                MessageBox.Show("No hay conflictos");
            }

            //Si hay más de un plan de vuelo, cal comprobarlos
            else
            {
                //Comprobar que esté la información de seguridad
                //Si no está, informamos al usuario
                if (interval == 0 || dseg == 0)
                {
                    conflictoscomprobados = false;
                    MessageBox.Show("Falta información de seguridad");
                }

                //Si está:
                else
                {
                    bool conflict = true;
                    while (conflict == true)
                    {
                        //Comprobamos si hay confictos entre los vuelos de la lista con el método
                        if (listFP.BuscarConflictos(dseg) == false)
                        {
                            conflict = false;
                        }
                        else
                        {
                            //Guardo velocidades en una lista
                            List <double> velocidades = new List <double>();
                            int           g           = 0;
                            while (g < listFP.getcount())
                            {
                                velocidades.Add(listFP.getposicion(g).GetVelocidad());
                                g++;
                            }

                            //Solucionamos los conflictos
                            listFP.SolucionarConflictos(dseg, interval);

                            //Actualizamos los incrementos de velocidad comparando la velocidad que llevan con la guardada en la lista
                            int y = 0;
                            while (y < listFP.getcount())
                            {
                                listFP.getposicion(y).SetIncrementoV(listFP.getposicion(y).GetVelocidad() - velocidades[y]);
                                y++;
                            }
                        }
                    }
                    MessageBox.Show("No hay conflictos");
                }
            }
        }