private void AtualizarRepresentacaoBalanca(EquacaoEmConstrucao equacaoEmConstrucao) { var representacao = equacaoEmConstrucao.ObterRepresentacao(); AreaDropEsquerda.Children.Clear(); // AreaDropDireita.Children.Clear(); if (representacao.IncognitasEsquerda != 0) { var peso = new TrianguloArrastavel { TipoTermo = TipoTermo.Incognita, Valor = representacao.IncognitasEsquerda }; AreaDropEsquerda.Children.Add(peso); } if (representacao.UnidadesEsquerda != 0) { var peso = new TrianguloArrastavel { TipoTermo = TipoTermo.Unidade, Valor = representacao.UnidadesEsquerda }; AreaDropEsquerda.Children.Add(peso); } /*if (representacao.IncognitasDireita != 0) * { * var peso = new TrianguloArrastavel * { * TipoTermo = TipoTermo.Incognita, * Valor = representacao.IncognitasDireita * }; * AreaDropDireita.Children.Add(peso); * } * * if (representacao.UnidadesDireita != 0) * { * var peso = new TrianguloArrastavel * { * TipoTermo = TipoTermo.Unidade, * Valor = representacao.UnidadesDireita * }; * AreaDropDireita.Children.Add(peso); * } */ AreaDropEsquerda.UpdateLayout(); // AreaDropDireita.UpdateLayout(); }
private void IniciarNovoJogo() { ControladorJogo.Inicializar(DificuldadeSelecionada); var equacaoPorResolver = ControladorJogo.ProximaEquacao(); TextoEquacaoAtual = equacaoPorResolver.ToString(); EquacaoEmConstrucao = new EquacaoEmConstrucao(equacaoPorResolver.EquacaoProcessada.ValorDeX); // Proximo cenário CenarioAtual = Cenario.MontarEquacao; SelecionarTipoTermoParaMontagem(TipoTermo.Unidade); ValorNovoElemento = 1; //TODO montar string de acordo com o que foi arrastado VisibilidadeValorAjustavel = Visibility.Collapsed; TrianguloArrastavel.Visibility = Visibility.Collapsed; }
//TODO é possível animar | "Não temos tempo pra isso - deixa assim" private void AtualizarEquilibrioBalanca(EquacaoEmConstrucao equacaoEmConstrucao) { const int anguloQuandoDesequilibrada = 10; var equilibrio = equacaoEmConstrucao.AvaliarEquilibrio(); switch (equilibrio) { case Equilibrio.PendendoParaDireita: AnguloPlataforma = anguloQuandoDesequilibrada; break; case Equilibrio.PendendoParaEsquerda: AnguloPlataforma = -anguloQuandoDesequilibrada; break; default: AnguloPlataforma = 0; break; } }
private void AdicionarPesoEReavaliarObjetivo(TrianguloArrastavel trianguloArrastavel, Lado lado, EquacaoEmConstrucao equacaoEmConstrucao) { //equacaoEmConstrucao.Adicionar(trianguloArrastavel.Texto, lado); AtualizarEquilibrioBalanca(equacaoEmConstrucao); AtualizarRepresentacaoBalanca(equacaoEmConstrucao); var equacaoAtual = ControladorJogo.ObterEquacaoAtual().EquacaoProcessada; if (equacaoEmConstrucao.EhQuivalente(equacaoAtual)) { this.ObterViewModel().AvancarParaEtapaDeResolucao(); //Dispatcher.BeginInvoke(new Action(delegate //{ // this.ObterViewModel().AvancarParaEtapaDeResolucao(); //}), DispatcherPriority.Send, TimeSpan.FromMilliseconds(2000)); } }