Example #1
0
        public Rodada jogadaAtual(Rodada rodadaAnterior, Baralho pilhaCompra)
        {
            Rodada rodada = new Rodada();

            if (rodadaAnterior.Resultado == ResultadoRodada.Pular ||
                rodadaAnterior.Resultado == ResultadoRodada.CompraDois ||
                rodadaAnterior.Resultado == ResultadoRodada.CompraQuatro)
            {
                return(Ataque(rodadaAnterior.carta, pilhaCompra));
            }
            else if ((rodadaAnterior.Resultado == ResultadoRodada.TrocaCor ||
                      rodadaAnterior.Resultado == ResultadoRodada.CompraIndireta ||
                      rodadaAnterior.Resultado == ResultadoRodada.Comprarjogar) &&
                     valorCorrespondente(rodadaAnterior.corDeclarada))
            {
                rodada = jogandoCartas(rodadaAnterior.corDeclarada);
            }
            else if (valorCorrespondente(rodadaAnterior.carta))
            {
                rodada = jogandoCartas(rodadaAnterior.carta);
            }
            else //Compra carta e verifica se poder ser jogada
            {
                rodada = comprarCarta(rodadaAnterior, pilhaCompra);
            }

            exibirRodada(rodada);
            return(rodada);
        }
Example #2
0
        private Rodada Ataque(Carta descarteAtual, Baralho pilhaDescarte)
        {
            Rodada rodada = new Rodada();

            rodada.Resultado    = ResultadoRodada.CompraIndireta;
            rodada.carta        = descarteAtual;
            rodada.corDeclarada = descarteAtual.Cor;
            if (descarteAtual.Valor == ValorCarta.Pular)
            {
                Console.WriteLine("Jogador: " + Posicao.ToString() + " Bloqueado");
                return(rodada);
            }
            else if (descarteAtual.Valor == ValorCarta.CompraDois)
            {
                Console.WriteLine("Jogador " + Posicao.ToString() + " Comprou 2 cartas");
                deck.AddRange(pilhaDescarte.Compra(2));
            }
            else if (descarteAtual.Valor == ValorCarta.CompraQuatro)
            {
                Console.WriteLine("Jogador " + Posicao.ToString() + " Comprou 4 cartas");
                deck.AddRange(pilhaDescarte.Compra(4));
            }

            return(rodada);
        }
Example #3
0
        private Rodada comprarCarta(Rodada rodadaAnterior, Baralho pilhaDescarte)
        {
            Rodada rodada      = new Rodada();
            var    compraCarta = pilhaDescarte.Compra(1);

            deck.AddRange(compraCarta);

            if (valorCorrespondente(rodadaAnterior.carta))
            {
                rodada           = jogandoCartas(rodadaAnterior.carta);
                rodada.Resultado = ResultadoRodada.Compra;
            }
            else
            {
                rodada.Resultado = ResultadoRodada.Comprarjogar;
                rodada.carta     = rodadaAnterior.carta;
            }

            return(rodada);
        }
Example #4
0
        public Jogando(int qtdPlayers)
        {
            Jogadores   = new List <Player>();
            pilhaCompra = new Baralho();
            pilhaCompra.Embaralhar();

            for (int i = 0; i < qtdPlayers; i++)
            {
                Jogadores.Add(new Player {
                    Posicao = i
                });
            }

            int maximoDeCartas = 7 * Jogadores.Count;
            int cartasJogadas  = 0;

            while (cartasJogadas < maximoDeCartas)
            {
                for (int i = 0; i < qtdPlayers; i++)
                {
                    Jogadores[i].deck.Add(pilhaCompra.Cartas.First());
                    pilhaCompra.Cartas.RemoveAt(0);
                    cartasJogadas++;
                }
            }

            pilhaDescarte = new List <Carta>();
            pilhaDescarte.Add(pilhaCompra.Cartas.First());
            pilhaCompra.Cartas.RemoveAt(0);

            while (pilhaDescarte.First().Valor == ValorCarta.TrocaCor || pilhaDescarte.First().Valor == ValorCarta.CompraQuatro)
            {
                pilhaDescarte.Insert(0, pilhaCompra.Cartas.First());
                pilhaCompra.Cartas.RemoveAt(0);
            }
        }