Exemplo n.º 1
0
        private Equipe SelecionarEquipeDoJogador()
        {
            var equipeAtual = Equipe.Amarelo;

            if (Jogadores.Any() && Jogadores.LastOrDefault().Equipe == Equipe.Amarelo)
            {
                equipeAtual = Equipe.Vermelho;
            }

            return(equipeAtual);
        }
Exemplo n.º 2
0
        public void Jogar()
        {
            int  i       = 0;
            bool passado = true;

            //Exibindo deck dos jogadores
            foreach (var jogador in Jogadores)
            {
                jogador.exibirDeck();
            }

            Console.ReadLine();

            Rodada rodadaAtual = new Rodada()
            {
                Resultado = ResultadoRodada.JogoIniciado, carta = pilhaDescarte.First(), corDeclarada = pilhaDescarte.First().Cor
            };

            Console.WriteLine("Carta de inicio: " + rodadaAtual.carta.valorExibibo);

            while (!Jogadores.Any(x => !x.deck.Any()))
            {
                if (pilhaCompra.Cartas.Count < 4)
                {
                    var cartaAtual = pilhaDescarte.First();

                    //Embaralhar pilha de descarte para mover pra compra
                    pilhaCompra.Cartas = pilhaDescarte.Skip(1).ToList();
                    pilhaCompra.Embaralhar();

                    //Deixa apenas a ultima carta jogada na pilha de descarte
                    pilhaDescarte = new List <Carta>();
                    pilhaDescarte.Add(cartaAtual);

                    Console.WriteLine("Cartas Embaralhadas");
                }

                var jogadorAtual = Jogadores[i];

                rodadaAtual = Jogadores[i].jogadaAtual(rodadaAtual, pilhaCompra);

                descartarCarta(rodadaAtual);

                if (rodadaAtual.Resultado == ResultadoRodada.InverteJogo)
                {
                    passado = !passado;
                }

                if (passado)
                {
                    i++;
                    if (i >= Jogadores.Count) //zera contador de player
                    {
                        i = 0;
                    }
                }
                else
                {
                    i--;
                    if (i < 0)
                    {
                        i = Jogadores.Count - 1;
                    }
                }
            }
            var vencedor = Jogadores.Where(x => !x.deck.Any()).First();

            MessageBox.Show("Jogador " + vencedor.Posicao.ToString() + " Ganhou 🏆🏆🏆" + MessageBoxButtons.OK
                            );
            Console.WriteLine("Jogador " + vencedor.Posicao.ToString() + " Ganhou!");

            Console.ReadKey();
        }