private void ProcessaVeiculoSimulacao() { if (ImprimirLogTela) { Console.WriteLine("Iniciando rotina de Geração de veículos"); } foreach (var rua in RuasSimulacao) { Aresta ArestaCorrespondente = grafo.GetAresta(rua.IdAresta); Vertice VerticeOrigem = grafo.GetVertice(ArestaCorrespondente.Origem); if (VeiculosEsperaVertice[ArestaCorrespondente.Origem].Count > 0) { if (rua.AdicionaVeiculo(VeiculosEsperaVertice[ArestaCorrespondente.Origem].Peek(), SegundoSimulacao)) { if (ImprimirLogTela) { Console.WriteLine($"O veículo {VeiculosEsperaVertice[ArestaCorrespondente.Origem].Peek().Id} entrou na rua {rua.Id}"); } VeiculosEsperaVertice[ArestaCorrespondente.Origem].Dequeue(); } } #region TrativaLogs LogOcupacaoVias.Add(new LogOcupacaoVias() { IdAresta = rua.IdAresta, EspacoOcupado = (int)rua.MediaOcupacaoVias(), InstanteTempo = SegundoSimulacao }); #endregion TrativaLogs } }
private void ProcessaVeiculoSimulacao() { if (ImprimirLogTela) { Console.WriteLine("Iniciando rotina de Processamento de veículos"); } foreach (var rua in RuasSimulacao) { Aresta ArestaCorrespondente = grafo.GetAresta(rua.IdAresta); Vertice VerticeOrigem = grafo.GetVertice(ArestaCorrespondente.Origem); if (VeiculosEsperaVertice[ArestaCorrespondente.Origem].Count > 0) { // verifica se a rua suporta adicionar mais um veículo if (rua.AdicionaVeiculo(VeiculosEsperaVertice[ArestaCorrespondente.Origem].Peek(), SegundoSimulacao)) { if (ImprimirLogTela) { Console.WriteLine($"O veículo {VeiculosEsperaVertice[ArestaCorrespondente.Origem].Peek().Id} entrou na rua {rua.Id}"); } VeiculosEsperaVertice[ArestaCorrespondente.Origem].Dequeue(); } } #region TrativaLogs LogOcupacaoVias.Add(new LogOcupacaoVias { IdAresta = rua.IdAresta, EspacoOcupado = (int)rua.MediaOcupacaoVias(), InstanteTempo = SegundoSimulacao, QuantidadadeVeiculos = rua.NumeroVeiculosNaVia }); #endregion TrativaLogs // trata veiculos já na via } ProcessaVeiculosVias(); TrocaVeiculosRua(); }