Ejemplo n.º 1
0
        public static Carta CriarCartaBloqueio(CorCarta cor)
        {
            Carta carta = new CartaBloqueio();

            carta.Cor = cor;
            return(carta);
        }
Ejemplo n.º 2
0
        public static Carta CriarCartaReversa(CorCarta cor)
        {
            Carta carta = new CartaReversa();

            carta.Cor = cor;
            return(carta);
        }
Ejemplo n.º 3
0
        public static Carta CriarCartaMaisDois(CorCarta cor)
        {
            Carta carta = new CartaMaisDois();

            carta.Cor = cor;
            return(carta);
        }
Ejemplo n.º 4
0
        public static Carta CriarCarta(int valor, CorCarta cor)
        {
            Carta carta = new Carta();

            carta.Valor = valor;
            carta.Cor   = cor;
            return(carta);
        }
Ejemplo n.º 5
0
 private bool valorCorrespondente(CorCarta color)
 {
     return(deck.Any(x => x.Cor == color || x.Cor == CorCarta.CORINGA));
 }
Ejemplo n.º 6
0
        private Rodada jogandoCartas(CorCarta cor)
        {
            var rodada = new Rodada();

            rodada.Resultado = ResultadoRodada.CartaComum;
            var partida = deck.Where(x => x.Cor == cor || x.Cor == CorCarta.CORINGA).ToList();


            if (partida.All(x => x.Valor == ValorCarta.CompraQuatro))
            {
                rodada.carta        = partida.First();
                rodada.corDeclarada = selecionarCor();
                rodada.Resultado    = ResultadoRodada.CompraQuatro;
                deck.Remove(partida.First());

                return(rodada);
            }


            if (partida.Any(x => x.Valor == ValorCarta.CompraDois))
            {
                rodada.carta        = partida.First(x => x.Valor == ValorCarta.CompraDois);
                rodada.Resultado    = ResultadoRodada.CompraDois;
                rodada.corDeclarada = rodada.carta.Cor;
                deck.Remove(rodada.carta);

                return(rodada);
            }

            if (partida.Any(x => x.Valor == ValorCarta.Pular))
            {
                rodada.carta        = partida.First(x => x.Valor == ValorCarta.Pular);
                rodada.Resultado    = ResultadoRodada.Pular;
                rodada.corDeclarada = rodada.carta.Cor;
                deck.Remove(rodada.carta);

                return(rodada);
            }

            if (partida.Any(x => x.Valor == ValorCarta.Pular))
            {
                rodada.carta        = partida.First(x => x.Valor == ValorCarta.Inverter);
                rodada.Resultado    = ResultadoRodada.Pular;
                rodada.corDeclarada = rodada.carta.Cor;
                deck.Remove(rodada.carta);

                return(rodada);
            }

            var corPartida = partida.Where(x => x.Cor == cor);

            if (corPartida.Any())
            {
                rodada.carta        = corPartida.First();
                rodada.corDeclarada = rodada.carta.Cor;
                deck.Remove(corPartida.First());

                return(rodada);
            }

            if (partida.Any(x => x.Valor == ValorCarta.TrocaCor))
            {
                rodada.carta        = partida.First(x => x.Valor == ValorCarta.TrocaCor);
                rodada.corDeclarada = selecionarCor();
                rodada.Resultado    = ResultadoRodada.TrocaCor;
                deck.Remove(rodada.carta);

                return(rodada);
            }

            //Passa o resultado para a rodada
            rodada.Resultado = ResultadoRodada.Comprarjogar;
            return(rodada);
        }