public JsonResult ExecutaJogo(string Jogadas, string N1, string N2)
        {
            Models.BLLs.Jogo          bllJogo    = new Models.BLLs.Jogo();
            Models.DTOs.RetornoJogada objRetorno = new RetornoJogada();

            JavaScriptSerializer js = new JavaScriptSerializer();

            Jogada[] arrJoadasRealizadas = js.Deserialize <Jogada[]>(Jogadas);

            objRetorno = bllJogo.VerificaGanhador(arrJoadasRealizadas, N1, N2);

            return(Json(objRetorno));
        }
Exemple #2
0
        internal RetornoJogada VerificaGanhador(Jogada[] arrJogadasRealizadas, string N1, string N2)
        {
            RetornoJogada objRetorno = new RetornoJogada();
            string        strNomeDoVencedor = "", strSinalVencedor = "";
            int           WrongNumberOfPlayersError = 0;
            int           NoSuchStrategyError       = 0;

            int.TryParse(N1, out WrongNumberOfPlayersError);
            int.TryParse(N2, out NoSuchStrategyError);

            //Fazer os IF para ver quem ganhou

            Models.DTOs.Jogada objJogador1 = new Jogada();
            Models.DTOs.Jogada objJogador2 = new Jogada();

            objJogador1 = arrJogadasRealizadas[0];
            objJogador2 = arrJogadasRealizadas[1];

            //--------------------------------------------

            int intExistJogadaJogador1 = 0;
            int intExistJogadaJogador2 = 0;

            intExistJogadaJogador1 = objJogador1.Sinal.Count(s => s == 'S' || s == 's' || s == 'R' || s == 'r' || s == 'P' || s == 'p');
            intExistJogadaJogador2 = objJogador2.Sinal.Count(s => s == 'S' || s == 's' || s == 'R' || s == 'r' || s == 'P' || s == 'p');

            if (intExistJogadaJogador1 > 0 && intExistJogadaJogador2 > 0)
            {
                if (objJogador1.Sinal == "R" || objJogador1.Sinal == "r")
                {
                    if (objJogador2.Sinal == "P" || objJogador2.Sinal == "p")
                    {
                        // P bate R --> Vencedor Jogador 2
                        strNomeDoVencedor = objJogador2.Nome;
                        strSinalVencedor  = "Papel " + "(" + objJogador2.Sinal + ")";
                    }
                    else
                    {
                        // R empata com R --> Vencedor Jogador 1
                        // R bate S --> Vencedor Jogador 1
                        strNomeDoVencedor = objJogador1.Nome;
                        strSinalVencedor  = "Pedra " + "(" + objJogador1.Sinal + ")";
                    }
                }
                else if (objJogador1.Sinal == "S" || objJogador1.Sinal == "s")
                {
                    if (objJogador2.Sinal == "R" || objJogador2.Sinal == "r")
                    {
                        // R bate S --> Vencedor Jogador 2
                        strNomeDoVencedor = objJogador2.Nome;
                        strSinalVencedor  = "Pedra " + "(" + objJogador2.Sinal + ")";
                    }
                    else
                    {
                        // S empata com S --> Vencedor Jogador 1
                        // S bate P --> Vencedor Jogador 1
                        strNomeDoVencedor = objJogador1.Nome;
                        strSinalVencedor  = "Tesoura " + "(" + objJogador1.Sinal + ")";
                    }
                }
                else //if (objJogador1.Sinal == "P" || objJogador1.Sinal == "p")
                {
                    if (objJogador2.Sinal == "S" || objJogador2.Sinal == "s")
                    {
                        // S bate P --> Vencedor Jogador 2
                        strNomeDoVencedor = objJogador2.Nome;
                        strSinalVencedor  = "Tesoura " + "(" + objJogador2.Sinal + ")";
                    }
                    else
                    {
                        // P empata com P --> Vencedor Jogador 1
                        // P bate R --> Vencedor Jogador 1
                        strNomeDoVencedor = objJogador1.Nome;
                        strSinalVencedor  = "Papel " + "(" + objJogador1.Sinal + ")";
                    }
                }
            }
            else
            {
                NoSuchStrategyError++;
            }
            //--------------------------------------------

            objRetorno.NoSuchStrategyError       = NoSuchStrategyError;
            objRetorno.WrongNumberOfPlayersError = WrongNumberOfPlayersError;
            objRetorno.NomeVencedor  = strNomeDoVencedor;
            objRetorno.SinalVencedor = strSinalVencedor;

            return(objRetorno);
        }