static void Main(string[] args) { try { SimuladorRedePetri simulador = new SimuladorRedePetri(); simulador.RecebeLugares(); simulador.RecebeTransicoes(); simulador.RecebePesoArcos(); Console.WriteLine("\n- Simulacao da Rede de Petri -"); while (!simulador.terminada) { simulador.TransacoesHabilitadas(); Tela.imprimirSimulacao(simulador); Console.WriteLine(); Console.WriteLine("Para executar aperte 'Enter'"); if (Console.ReadKey().Key == ConsoleKey.Enter) { simulador.ExecutaCiclo(); } else { Tela.ImprimeSimulacaoFinalizada(); break; } } } catch (RedePetriException e) { Console.Write(e.Message); } }
public static void imprimirCabecalho(SimuladorRedePetri simulador) { Console.WriteLine(); Console.Write("Ciclo | "); foreach (Lugar lugar in simulador.lugares) { Console.Write(lugar.Nome + " | "); } foreach (Transicao transicao in simulador.transicoes) { Console.Write(transicao.Nome + " | "); } }
public static void imprimirCiclo(SimuladorRedePetri simulador) { Console.WriteLine(); Console.Write(simulador.numCiclo.ToString("D5") + " | "); foreach (Lugar lugar in simulador.lugares) { Console.Write(lugar.qtdMarcas.ToString("D2") + " | "); } foreach (Transicao transicao in simulador.transicoes) { if (transicao.PodeExecutar) { Console.Write("S " + " | "); } else { Console.Write("N " + " | "); } } }
public static void imprimirSimulacao(SimuladorRedePetri simulador) { imprimirCabecalho(simulador); imprimirCiclo(simulador); }