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); }
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); } }
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; } }