public void PerguntarPagarFlop() { foreach (var jog in this.Mesa.PartidasAtuais) { IPartida partida = jog.Value; IJogador jogador = jog.Key; IJogador banca = partida.Banca; IRodada rodadaAtual = partida.Rodadas.Last(); IRodada proximaRodada; IAcaoTomada acaoTomada = jogador.PreFlop(this.Mesa.RegrasMesaAtual.Flop); rodadaAtual.AddAcaoTomada(acaoTomada); switch (acaoTomada.Acao) { case AcoesDecisaoJogador.PayFlop: partida.AddToPote(jogador.PagarValor(this.Mesa.RegrasMesaAtual.Flop), TipoJogadorTHB.Jogador); partida.AddToPote(banca.PagarValor(this.Mesa.RegrasMesaAtual.Flop), TipoJogadorTHB.Banca); proximaRodada = new RodadaTHB(TipoRodada.Flop, partida.PoteAgora, partida.CartasMesa); break; case AcoesDecisaoJogador.Fold: proximaRodada = new RodadaTHB(TipoRodada.FimDeJogo, partida.PoteAgora, partida.CartasMesa); partida.JogadorGanhador = VencedorPartida.Banca; break; default: throw new Exception("Ação não esperada."); } partida.AddRodada(proximaRodada); } this.EncerrarPartidasTerminadas(); }
public void Jogar() { foreach (var equipe in equipeMesa) { equipe.GanharPontos(-equipe.PontosEquipe); } preencheMesa(); baralhoMesa = new Baralho(); int r = 1; while (true) { baralhoMesa.embaralhar(); log.logar(); log.logar("--------------------"); log.logar("Iniciando Rodada {0}", r); log.logar("--------------------"); Carta queimada = baralhoMesa.pegarProxima(); log.logar("\n:::::Carta queimada: {0} de {1}", queimada.nomeValor(), queimada.Naipe); foreach (var equipe in equipeMesa) { Console.Write("\n*{0}: {1} Pontos* ", equipe.ToString(), equipe.PontosEquipe); } log.logar("\n"); rodadaMesa = new RodadaTruco(queimada, log); foreach (var jogador in posicoes) { jogador.NovaMao(); for (int i = 0; i < rodadaMesa.getNumCartas(); i++) { jogador.ReceberCarta(baralhoMesa.pegarProxima()); } } rodadaMesa.Rodar(posicoes); baralhoMesa.recolher(); foreach (var equipe in equipeMesa) { if (equipe.PontosEquipe >= 15) { log.logar("\n***** Equipe dos jogadores {0} venceu *****", equipe.ToString()); return; } } posicoes = circulaVetor(posicoes); r++; } }
public void AddRodada(IRodada rodada) => this.Rodadas.Add(rodada);