private Equipe SelecionarEquipeDoJogador() { var equipeAtual = Equipe.Amarelo; if (Jogadores.Any() && Jogadores.LastOrDefault().Equipe == Equipe.Amarelo) { equipeAtual = Equipe.Vermelho; } return(equipeAtual); }
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(); }