예제 #1
0
        /// <summary>
        /// Roda um ciclo e incrementa a contagem.
        /// </summary>
        private void RodaCiclo()
        {
            if (_simula)
            {
                MainWindow.LogMessage($"Ciclo {_ciclos}.");

                foreach (Agente ag in Ambiente.Agentes)
                {
                    ag.Age();

                    if (!Ambiente.TemLixoChao())
                    {
                        _simula = false;
                        MainWindow.LogMessage("Simulação terminada!");
                        MainWindow.LogMessage($"\n{_ciclos} ciclos foram necessários para que todos os lixos fossem recolhidos.");
                        _ciclos = 0;
                        break;
                    }
                }

                if (Ambiente.TemLixoChao())
                {
                    MainWindow.LogMessage($"Fim do ciclo {_ciclos}.\n");
                }

                _ciclos++;
            }
            _podeExecutar = true;
        }