예제 #1
0
파일: Fase3.cs 프로젝트: rrztr/entdes
        //Cuando el barco llega al fin de la vida

        public void salida_via_rapida()
        {
            Barcos bviar = via_rapida[0];

            via_rapida.RemoveAt(0);
            Fase4.cola_salida.Add(bviar);
        }
예제 #2
0
파일: Fase3.cs 프로젝트: rrztr/entdes
        public void salida_via_lenta()
        {
            Barcos bvial = via_lenta[0];

            via_lenta.RemoveAt(0);
            Fase4.cola_salida.Add(bvial);
        }
예제 #3
0
파일: Fase4.cs 프로젝트: rrztr/entdes
        public void establecer_prioridad()
        {
            if (cola_salida.Count() == 2)
            {
                Barcos b1 = cola_salida[0];
                Barcos b2 = cola_salida[1];

                if (b1.Prioridad == b2.Prioridad)
                {
                    if (b1.Via == "Rapida")
                    {
                        cola_salida[0] = b1;
                        cola_salida[1] = b2;
                    }
                    else
                    {
                        cola_salida[0] = b2;
                        cola_salida[1] = b2;
                    }
                }
                else //Ordenamos los barcos por prioridad.
                {
                    cola_salida = cola_salida.OrderByDescending(barco1 => barco1.Prioridad).ToList();
                }
            }
        }
예제 #4
0
파일: Fase5.cs 프로젝트: rrztr/entdes
        //Cuando el barco llega al fin de la vida

        public void salida_via_rapida()
        {
            Barcos bviar = lista_vuelta_rapido[0];

            lista_vuelta_rapido.RemoveAt(0);
            Fase4.cola_salida.Add(bviar);
        }
예제 #5
0
파일: Fase2.cs 프로젝트: rrztr/entdes
        public bool llevar_a_via_lenta()
        {
            Barcos barco = cola_inicial[0];

            if (barco.Metros > 250)
            {
                if (Fase3.via_lenta.Count() < 3)
                {
                    Fase3.via_lenta.Add(barco);
                    cola_inicial.RemoveAt(0);
                    return(true);
                }
            }
            return(false);
        }
예제 #6
0
파일: Fase1.cs 프로젝트: rrztr/entdes
        public bool llevar_a_colaB()

        {  // Devuelve verdadero si la lista no está vacía  y si no hay barcos en la cola.
            if (lista_barcosB.Count() != 0)
            {
                Barcos barco_B = Fase1.lista_barcosB[0];
                if (Fase2.cola_inicial.Count() == 0)
                {
                    Fase1.lista_barcosB.RemoveAt(0);
                    Fase2.cola_inicial.Add(barco_B);
                    return(true);
                }
            }
            return(false);
        }
예제 #7
0
파일: Fase1.cs 프로젝트: rrztr/entdes
        //Las funciones llevar a cola devuelven false si no hay barcos que mandar.
        public bool llevar_a_colaA()
        {
            // Devuelve verdadero si la lista no está vacía.

            if (lista_barcosA.Count() != 0)
            {
                Barcos barco_A = Fase1.lista_barcosA[0];

                if (Fase2.cola_inicial.Count() == 0)
                {
                    Fase1.lista_barcosA.RemoveAt(0);
                    Fase2.cola_inicial.Add(barco_A);
                    return(true);
                }
            }
            return(false);
        }
예제 #8
0
파일: Form1.cs 프로젝트: rrztr/entdes
        private void button1_Click(object sender, EventArgs e)
        {
            string nombre, tipo;
            int    prioridad;
            int    metros;

            bool completo = true;

            nombre = textBox1.Text;
            metros = int.Parse(label_metros.Text);

            if (textBox1.Text.Trim() == "")
            {
                completo = false;
            }

            if (radio_comerciante.Checked)
            {
                if (metros < 306)
                {
                    tipo = "Buque mercante pequeño";
                }
                else
                {
                    tipo = "Buque mercante gigante";
                }
            }
            else if (radio_pasajeros.Checked)
            {
                if (metros < 135)
                {
                    tipo = "Embarcacion ligera";
                }
                else
                {
                    tipo = "Crucero";
                }
            }
            else
            {
                tipo     = null;
                completo = false;
            }

            prioridad = int.Parse(combo_prioridad.SelectedItem.ToString());


            if (completo)
            {
                Fase1 fase1_add = new Fase1();

                Barcos barco = new Barcos(nombre, tipo, prioridad, metros);
                if (tipo == "Embarcacion ligera")
                {
                    Fase1.lista_barcosA.Add(barco);
                    fase1_add.ordenar_listaA();
                }
                else if (tipo == "Crucero")
                {
                    Fase1.lista_barcosB.Add(barco);
                    fase1_add.ordenar_listaB();
                }
                else if (tipo == "Buque mercante pequeño")
                {
                    Fase1.lista_barcosC.Add(barco);
                    fase1_add.ordenar_listaC();
                }
                else
                {
                    Fase1.lista_barcosD.Add(barco);
                    fase1_add.ordenar_listaD();
                }


                ///Limpiar la pantalla
                textBox1.Clear();
                radio_comerciante.Checked         = false;
                radio_pasajeros.Checked           = false;
                label_metros.Text                 = "0";
                combo_prioridad.SelectedItem      = "1";
                img_barco_elegido.BackgroundImage = null;
            }
            else
            {
                MessageBox.Show("Rellene todos los campos", "ERROR");
            }
        }