コード例 #1
0
        private static List <Aviao> GeraAvioes(FilaEnum tipo)
        {
            var    lista            = new List <Aviao>();
            int    idAviao          = tipo == FilaEnum.Pousar ? idMaximoAterrissagem : idMaximoDecolagem;
            Random rnd              = new Random();
            int    quantidadeAvioes = rnd.Next(4);
            Aviao  aviao;

            for (int i = 0; i < quantidadeAvioes; i++)
            {
                if (tipo == FilaEnum.Pousar)
                {
                    aviao = new Aviao(true)
                    {
                        Id_Aviao = idAviao
                    };

                    idMaximoAterrissagem = idAviao;
                }
                else
                {
                    aviao = new Aviao
                    {
                        Id_Aviao = idAviao
                    };

                    idMaximoDecolagem = idAviao;
                }

                lista.Add(aviao);
                idAviao += 2;
            }

            return(lista);
        }
コード例 #2
0
        private static void RemoverAviaoFila(Queue <Aviao> fila, int idPista, FilaEnum tipoFila, Aviao aviao = null)
        {
            if (fila.Any())
            {
                var aviaoAux = aviao != null ? aviao : fila.First();

                if (aviao == null)
                {
                    fila.Dequeue();
                }
                else
                {
                    var queue_aux = new Queue <Aviao>();

                    foreach (var item in fila)
                    {
                        if (item.Id_Aviao != aviao.Id_Aviao)
                        {
                            queue_aux.Enqueue(aviao);
                        }
                    }

                    fila.Clear();
                    fila = queue_aux;
                }

                RemoverAviaoFila(idPista, tipoFila, aviaoAux);
            }
        }
コード例 #3
0
        private static void RemoverAviaoFila(int idPista, FilaEnum tipoFila, Aviao aviaoAux)
        {
            switch (tipoFila)
            {
            case FilaEnum.Decolar:
                avioesDecolados.Add(new Tuple <int, int, int?>(aviaoAux.Id_Aviao, idPista, aviaoAux.NivelGasolina));
                break;

            case FilaEnum.Pousar:
                avioesPousados.Add(new Tuple <int, int, int?>(aviaoAux.Id_Aviao, idPista, aviaoAux.NivelGasolina));
                break;

            default:
                break;
            }
        }