private void GeradoraVeiculos() { if (ImprimirLogTela) { Console.WriteLine("Iniciando rotina de geração de veículos"); } int n = grafo.NumeroVertices; for (int i = 0; i < n; i++) { if (RoletaSorteio.ExecutaRoleta(TaxaGeracao[i])) { Veiculo veiculoAdicionar = geradorVeiculos.GeraVeiculoAleatorio(IdVeiculo, grafo, i); veiculoAdicionar.LogVeiculo = new LogVeiculo() { IdVeiculo = veiculoAdicionar.Id, InstanteCriacao = SegundoSimulacao, VerticeOrigem = i, VerticeDestino = veiculoAdicionar.PercursoVeiculo.Last() }; VeiculosEsperaVertice[i].Enqueue(veiculoAdicionar); if (ImprimirLogTela) { Console.WriteLine($"Realizado inserção de veículo no vértice {i}."); } #region TratativaLogs LogGeracaoVeiculos.Add(new LogGeracaoVeiculo() { VerticeIncersao = i, IdVeiculo = IdVeiculo, SegundoSimulacao = SegundoSimulacao }); LogTrajetos.Add(new LogTrajetosVeiculos { IdVeiculo = IdVeiculo, PercursoVeiculo = veiculoAdicionar.PercursoVeiculo }); #endregion TratativaLogs IdVeiculo++; } } #region TratativaLogs for (int i = 0; i < n; i++) { LogQtdVeiculosEsperaTempo.Add( new LogQtdVeiculosEsperaVertice() { InstanteTempo = SegundoSimulacao, QtdVeiculos = VeiculosEsperaVertice[i].Count }); } #endregion TrativaLogs }
private void GeradoraVeiculos() { if (ImprimirLogTela) { Console.WriteLine("Iniciando rotina de geração de veículos"); } int n = grafo.NumeroVertices; for (int i = 0; i < n; i++) { //se a taxa de geração da rotina do vertice atual if (RoletaSorteio.ExecutaRoleta(TaxaGeracao[i])) { // gera veiculo e inicializa log de veiculos Veiculo veiculoAdicionar = geradorVeiculos.GeraVeiculoAleatorio(IdVeiculo, grafo, i); veiculoAdicionar.LogVeiculo = new LogVeiculo() { IdVeiculo = veiculoAdicionar.Id, InstanteCriacao = SegundoSimulacao, VerticeOrigem = i, VerticeDestino = veiculoAdicionar.PercursoVeiculo.Last() }; // veiculo no vertice aguardando para começar a trafegar VeiculosEsperaVertice[i].Enqueue(veiculoAdicionar); #region TratativaLogs if (ImprimirLogTela) { Console.WriteLine($"Realizado inserção de veículo no vértice {i}."); } LogGeracaoVeiculos.Add(new LogGeracaoVeiculo() { VerticeIncersao = i, IdVeiculo = IdVeiculo, SegundoSimulacao = SegundoSimulacao }); LogTrajetos.Add(new LogTrajetosVeiculos { IdVeiculo = IdVeiculo, PercursoVeiculo = veiculoAdicionar.PercursoVeiculo }); #endregion TratativaLogs //adiciona na coleção de veículos VeiculosSimulacao.Add(veiculoAdicionar); IdVeiculo++; } } #region TratativaLogs for (int i = 0; i < n; i++) { LogQtdVeiculosEsperaTempo.Add( new LogQtdVeiculosEsperaVertice() { InstanteTempo = SegundoSimulacao, QtdVeiculos = VeiculosEsperaVertice[i].Count, Vertice = i, EspacoOcupado = VeiculosEsperaVertice[i].Sum(x => x.Comprimento) }); } #endregion TrativaLogs }