Beispiel #1
0
        private int defineMao(List <Carta> cartasJogador)
        {
            ResultadoJogo jogo       = new ResultadoJogo();
            int           maoJogador = 0;

            int naipe = cartasJogador[0].naipe;//pegando o naipe da primeira carta

            if (naipe.Equals(cartasJogador[1].naipe) && naipe.Equals(cartasJogador[2].naipe) &&
                naipe.Equals(cartasJogador[3].naipe) && naipe.Equals(cartasJogador[4].naipe))
            {//caso seja falso, a mão não será nenhum tipo de flush
                int pesoAtual;
                int contadorSequencia = 0;

                for (int i = 0; i <= 3; i++)
                {
                    pesoAtual = cartasJogador[i].peso;

                    if (cartasJogador[i + 1].peso != pesoAtual + 1)
                    {
                        contadorSequencia++;
                    }
                }

                if (contadorSequencia == 0)
                {
                    if (cartasJogador[0].peso == 8) // se a primeira carta for um 10, a mão só poderá ser um royal flush
                    {
                        maoJogador = 9;             // Royal Flush
                    }
                    else
                    {
                        maoJogador = 8; // Straight Flush
                    }
                }
                else
                {
                    int contador = 0;

                    for (int i = 1; i <= 4; i++)
                    {
                        if (cartasJogador[i - 1].peso == cartasJogador[i].peso) // como as cartas estarao em ordem crescente
                                                                                // de valor de peso, cartas de mesmo peso
                                                                                //estao sempre juntas
                        {
                            contador++;
                        }
                    }

                    if (contador == 3)
                    {
                        maoJogador = 7; // Four of a kind
                    }
                    else
                    {
                        if (contador != 3)
                        {
                            contador = 0;
                            int contadoraux = 0;
                            int auxiliar    = cartasJogador[0].peso;

                            for (int i = 1; i <= 4; i++)
                            {
                                if (auxiliar == cartasJogador[i].peso)
                                {
                                    contador++;
                                }
                                else
                                {
                                    if (cartasJogador[i - 1].peso == cartasJogador[i].peso)
                                    {
                                        contadoraux++;
                                    }
                                }
                            }

                            if ((contador == 2 && contadoraux == 1) || (contador == 1 && contadoraux == 2))
                            {
                                maoJogador = 6; // Full House
                            }

                            else
                            {
                                maoJogador = 5; // Flush
                            }
                        }
                    }
                }
            }
            else   //fecha os flushs
            {
                int contadorSequencia2 = 0, contadorTripla = 0, contadorDupla = 0;


                for (int i = 1; i <= 4; i++)
                {
                    if (cartasJogador[i - 1].peso + 1 == cartasJogador[i].peso)
                    {
                        contadorSequencia2++;
                    }

                    if (i < 4)
                    {
                        if (cartasJogador[i - 1].peso == cartasJogador[i].peso && cartasJogador[i].peso ==
                            cartasJogador[i + 1].peso)
                        {
                            contadorTripla++;
                        }
                    }

                    if (cartasJogador[i - 1].peso == cartasJogador[i].peso)
                    {
                        contadorDupla++;
                    }
                }// fecha o for

                if (contadorSequencia2 == 4)
                {
                    maoJogador = 4; //Straight
                }
                else
                {
                    if (contadorTripla == 1)
                    {
                        maoJogador = 3; // Three of a kind
                    }
                    else
                    {
                        if (contadorDupla == 2)
                        {
                            maoJogador = 2; // Two Pair
                        }
                        else
                        {
                            if (contadorDupla == 1)
                            {
                                maoJogador = 1; // One pair
                            }
                            else
                            {
                                maoJogador = 0; // High Card
                            }
                        }
                    }
                }
            }

            return(maoJogador);
        }
Beispiel #2
0
        internal ResultadoJogo startGame()
        {
            ResultadoJogo jogo = new ResultadoJogo();

            jogo.possiveisMaos = new List <String>();

            jogo.possiveisMaos.Add("High Card");       //0
            jogo.possiveisMaos.Add("One Pair");        //1
            jogo.possiveisMaos.Add("Two Pair");        //2
            jogo.possiveisMaos.Add("Three of a Kind"); //3
            jogo.possiveisMaos.Add("Straight");        //4
            jogo.possiveisMaos.Add("Flush");           //5
            jogo.possiveisMaos.Add("Full House");      //6
            jogo.possiveisMaos.Add("Four of a Kind");  //7
            jogo.possiveisMaos.Add("Straight Flush");  //8
            jogo.possiveisMaos.Add("Royal Flush");     //9

            jogo.cartasJogador1 = new List <Carta>();
            jogo.cartasJogador2 = new List <Carta>();

            jogo.cartasJogador1 = defineCartasJogador(jogo.cartasJogador1);
            jogo.cartasJogador2 = defineCartasJogador(jogo.cartasJogador2);

            Carta.nomes.Add("Dois");     //0
            Carta.nomes.Add("Três");     //1
            Carta.nomes.Add("Quatro");   //2
            Carta.nomes.Add("Cinco");    //3
            Carta.nomes.Add("Seis");     //4
            Carta.nomes.Add("Sete");     //5
            Carta.nomes.Add("Oito");     //6
            Carta.nomes.Add("Nove");     //7
            Carta.nomes.Add("Dez");      //8
            Carta.nomes.Add("Valete");   //9
            Carta.nomes.Add("Dama");     //10
            Carta.nomes.Add("Rei");      //11
            Carta.nomes.Add("Ás");       //12

            Carta.naipes.Add("Ouros");   //0
            Carta.naipes.Add("Paus");    //1
            Carta.naipes.Add("Espadas"); //2
            Carta.naipes.Add("Copas");   //3

            jogo.maoJogador1 = defineMao(jogo.cartasJogador1);
            jogo.maoJogador2 = defineMao(jogo.cartasJogador2);

            int vencedor = jogo.defineResultado(jogo.maoJogador1, jogo.maoJogador2);

            jogo.nomesCartasJogador1  = new List <string>();
            jogo.nomesCartasJogador2  = new List <string>();
            jogo.naipesCartasJogador1 = new List <string>();
            jogo.naipesCartasJogador2 = new List <string>();

            for (int i = 0; i <= 4; i++)
            {
                jogo.nomesCartasJogador1.Add(Carta.nomes[jogo.cartasJogador1[i].peso] + " de " +
                                             Carta.naipes[jogo.cartasJogador1[i].naipe]);
                //jogo.naipesCartasJogador1.Add(Carta.naipes[jogo.cartasJogador1[i].naipe]);

                jogo.nomesCartasJogador2.Add(Carta.nomes[jogo.cartasJogador2[i].peso] + " de " +
                                             Carta.naipes[jogo.cartasJogador2[i].naipe]);
                //jogo.naipesCartasJogador2.Add(Carta.naipes[jogo.cartasJogador2[i].naipe]);
            }

            if (vencedor == 1 || vencedor == 2)
            {
                jogo.resultado = "O jogador " + vencedor + " venceu!!!";
            }
            else
            {
                jogo.resultado = "Deu empate!!!";
            }

            jogo.nomeMaoJogador1 = jogo.possiveisMaos[jogo.maoJogador1];
            jogo.nomeMaoJogador2 = jogo.possiveisMaos[jogo.maoJogador2];

            return(jogo);
        }