Exemple #1
0
        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();
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        //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;
            }
        }
Exemple #4
0
        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));
            }
        }