Ejemplo n.º 1
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();
        }
Ejemplo n.º 2
0
        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++;
            }
        }
Ejemplo n.º 3
0
 public void AddRodada(IRodada rodada) => this.Rodadas.Add(rodada);