Beispiel #1
0
        public void PerguntarAumentarPreRiver()
        {
            foreach (var jog in this.Mesa.PartidasAtuais)
            {
                IJogador    jogador     = jog.Key;
                IPartida    partida     = jog.Value;
                IJogador    banca       = partida.Banca;
                IAcaoTomada acaoJogador = jogador.Turn(jog.Value.CartasMesa, 0);

                switch (acaoJogador.Acao)
                {
                case AcoesDecisaoJogador.Check:
                    partida.AddRodada(new RodadaTHB(TipoRodada.River, partida.PoteAgora, partida.CartasMesa));
                    break;

                case AcoesDecisaoJogador.Call:
                    partida.AddToPote(jogador.PagarValor(this.Mesa.RegrasMesaAtual.River), TipoJogadorTHB.Jogador);
                    partida.AddToPote(banca.PagarValor(this.Mesa.RegrasMesaAtual.River), TipoJogadorTHB.Banca);
                    partida.AddRodada(new RodadaTHB(TipoRodada.River, partida.PoteAgora, partida.CartasMesa));
                    break;

                case AcoesDecisaoJogador.Raise:
                    partida.AddToPote(jogador.PagarValor(this.Mesa.RegrasMesaAtual.River), TipoJogadorTHB.Jogador);
                    partida.AddToPote(banca.PagarValor(this.Mesa.RegrasMesaAtual.River), TipoJogadorTHB.Banca);
                    partida.AddRodada(new RodadaTHB(TipoRodada.River, partida.PoteAgora, partida.CartasMesa));
                    break;

                default: throw new Exception("Ação não esperada.");
                }
            }

            this.EncerrarPartidasTerminadas();
        }
Beispiel #2
0
        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();
        }