Esempio n. 1
0
        public Carta quartoJogar(List <Carta> cartasMesa, Carta manilha)
        {
            Carta carta = _mao[0];

            if (TrucoAuxiliar.gerarValorCarta(cartasMesa[1], manilha) > TrucoAuxiliar.gerarValorCarta(cartasMesa[0], manilha) && TrucoAuxiliar.gerarValorCarta(cartasMesa[1], manilha) > TrucoAuxiliar.gerarValorCarta(cartasMesa[2], manilha))
            {
                carta = _mao[0];
                _mao.RemoveAt(0);
            }
            else
            {
                Carta maior = null;
                if (TrucoAuxiliar.gerarValorCarta(cartasMesa[0], manilha) > TrucoAuxiliar.gerarValorCarta(cartasMesa[2], manilha))
                {
                    maior = cartasMesa[0];
                }
                else
                {
                    maior = cartasMesa[2];
                }
                for (int i = 0; i < _mao.Count; i++)
                {
                    if (TrucoAuxiliar.compara(_mao[i], maior, manilha) > 0)
                    {
                        carta = _mao[i];
                        _mao.RemoveAt(i);
                        break;
                    }
                }
            }
            return(carta);
        }
Esempio n. 2
0
        public Carta segundoJogar(List <Carta> cartasMesa, Carta manilha)
        {
            Carta carta = _mao[0];

            for (int i = 0; i < _mao.Count; i++)
            {
                if (TrucoAuxiliar.compara(_mao[i], cartasMesa[0], manilha) > 0)
                {
                    carta = _mao[i];
                    _mao.RemoveAt(i);
                    break;
                }
            }

            return(carta);
        }
Esempio n. 3
0
        public Carta terceiroJogar(List <Carta> cartasMesa, Carta manilha)
        {
            Carta carta = _mao[0];

            if (TrucoAuxiliar.gerarValorCarta(cartasMesa[0], manilha) > TrucoAuxiliar.gerarValorCarta(cartasMesa[1], manilha))
            {
                carta = _mao[0];
                _mao.RemoveAt(0);
            }
            else
            {
                for (int i = 0; i < _mao.Count; i++)
                {
                    if (TrucoAuxiliar.compara(_mao[i], cartasMesa[1], manilha) > 0)
                    {
                        carta = _mao[i];
                        _mao.RemoveAt(i);
                        break;
                    }
                }
            }
            return(carta);
        }
        public override Carta Jogar(List <Carta> cartasRodada, Carta manilha)
        {
            // encontra maior da mesa
            if (_mao.Count == 3)
            {
                ordenar(manilha);
            }

            RegraTrucar(manilha);
            Carta carta;

            switch (_mao.Count)
            {
                #region case 3
            case 3:
                //Carta maiorMesa = cartasRodada.LastOrDefault();

                if (cartasRodada.Count == 0)
                {
                    if (TrucoAuxiliar.gerarValorCarta(_mao[1], manilha) > 7)
                    {
                        carta = _mao[1];
                        _mao.RemoveAt(1);
                        return(carta);
                    }
                    else
                    {
                        carta = _mao[0];
                        _mao.RemoveAt(0);
                        return(carta);
                    }
                }

                if (cartasRodada.Count == 1)
                {
                    if (TrucoAuxiliar.compara(_mao[1], cartasRodada[0], manilha) > 0)
                    {
                        carta = _mao[1];
                        _mao.RemoveAt(1);
                        return(carta);
                    }
                    else
                    {
                        carta = _mao[0];
                        _mao.RemoveAt(0);
                        return(carta);
                    }
                }

                if (cartasRodada.Count == 2)
                {
                    if (TrucoAuxiliar.compara(cartasRodada[0], cartasRodada[1], manilha) > 0)
                    {
                        carta = _mao[0];
                        _mao.RemoveAt(0);
                        return(carta);
                    }
                    else
                    {
                        for (int i = 0; i < _mao.Count; i++)
                        {
                            carta = _mao[i];
                            if (TrucoAuxiliar.comparar(carta, cartasRodada[1], manilha) > 0)
                            {
                                _mao.RemoveAt(i);
                                return(carta);
                            }
                        }
                        carta = _mao[0];
                        _mao.RemoveAt(0);
                        return(carta);
                    }
                }

                if (cartasRodada.Count == 3)
                {
                    if (TrucoAuxiliar.compara(cartasRodada[1], cartasRodada[0], manilha) > 0 && TrucoAuxiliar.compara(cartasRodada[1], cartasRodada[2], manilha) > 0)
                    {
                        carta = _mao[0];
                        _mao.RemoveAt(0);
                        ganhoPrimeira = true;
                        return(carta);
                    }
                    else
                    {
                        for (int i = 0; i < _mao.Count; i++)
                        {
                            carta = _mao[i];
                            if (TrucoAuxiliar.comparar(carta, cartasRodada[0], manilha) > 0 && TrucoAuxiliar.comparar(carta, cartasRodada[2], manilha) > 0)
                            {
                                _mao.RemoveAt(i);
                                ganhoPrimeira = true;
                                return(carta);
                            }
                        }
                        carta = _mao[0];
                        _mao.RemoveAt(0);
                        return(carta);
                    }
                }

                return(null);

                #endregion

                #region case 2
            case 2:


                //Carta maiorMesa = cartasRodada.LastOrDefault();

                if (cartasRodada.Count == 0)
                {
                    ganhoPrimeira = true;
                    carta         = _mao[0];
                    _mao.RemoveAt(0);
                    return(carta);
                }

                if (cartasRodada.Count == 1)
                {
                    carta = _mao[0];
                    _mao.RemoveAt(0);
                    return(carta);
                }
                if (cartasRodada.Count == 2)
                {
                    carta = _mao[1];
                    _mao.RemoveAt(1);
                    return(carta);
                }
                if (cartasRodada.Count == 3)
                {
                    if (TrucoAuxiliar.compara(cartasRodada[1], cartasRodada[0], manilha) > 0 && TrucoAuxiliar.compara(cartasRodada[1], cartasRodada[2], manilha) > 0)
                    {
                        carta = _mao[0];
                        _mao.RemoveAt(0);
                        return(carta);
                    }
                    else
                    {
                        for (int i = 0; i < _mao.Count; i++)
                        {
                            carta = _mao[i];
                            if (TrucoAuxiliar.comparar(carta, cartasRodada[0], manilha) > 0 && TrucoAuxiliar.comparar(carta, cartasRodada[2], manilha) > 0)
                            {
                                _mao.RemoveAt(i);
                                return(carta);
                            }
                        }
                        carta = _mao[0];
                        _mao.RemoveAt(0);
                        return(carta);
                    }
                }

                return(null);

                #endregion

                #region case 1
            case 1:
                carta = _mao[0];
                _mao.RemoveAt(0);
                return(carta);

            default: return(null);

                #endregion
            }
        }