예제 #1
0
        /// <summary>
        /// Seleciona os parâmetros do ambiente pela opção da combo box.
        /// </summary>
        /// <param name="sender">Quem disparou o método.</param>
        /// <param name="e">Argumentos de quem disparou.</param>
        private void AmbienteTamanho_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBoxItem itemSelecionado = ambienteTamanho.SelectedItem as ComboBoxItem;
            int          tamanhoSelecionado;

            if (itemSelecionado != null && Int32.TryParse((string)itemSelecionado.Tag, out tamanhoSelecionado))
            {
                if (tamanhoSelecionado != -1)
                {
                    try
                    {
                        _executor.Abort();
                    }
                    catch { }

                    _executor = new Thread(ExecutorRun);

                    LimpaLog();
                    Ambiente.Criar(tamanhoSelecionado, tamanhoSelecionado);

                    if (tamanhoSelecionado == 8)
                    {
                        if (!AlocaEntidadesAmbiente(2, 6, 2, 6, 2))
                        {
                            LogMessage("Não foi possível alocar as entidades pelos parâmetros informados.");
                            return;
                        }
                    }
                    else if (tamanhoSelecionado == 15)
                    {
                        if (!AlocaEntidadesAmbiente(3, 8, 4, 8, 4))
                        {
                            LogMessage("Não foi possível alocar as entidades pelos parâmetros informados.");
                            return;
                        }
                    }
                    else if (tamanhoSelecionado == 20)
                    {
                        if (!AlocaEntidadesAmbiente(20, 50, 20, 50, 20))
                        {
                            LogMessage("Não foi possível alocar as entidades pelos parâmetros informados.");
                            return;
                        }
                    }

                    DesenhaAmbiente();
                    AtualizaEntidades();

                    Ambiente.AmbienteChange += Ambiente_AmbienteChaged;

                    _simula = true;
                    _executor.Start();
                }
            }
        }