예제 #1
0
        public void getStackSaldoFinalTest()
        {
            ConfiguracaoTHBonus config = Configuracao.configPadrao;

            Comum.Mesa m      = new Comum.Mesa(config);
            ICroupier  dealer = new Croupier(m, new Banca(config));

            IJogador j = new DummyJogadorTHB(config, 1500);

            m.AddParticipante(j);

            int stackInicial = 1500, stackFinal = 1500, saldoFinal = 0;
            int qtdPerdida = 0, qtdGanho = 0, qtdEmpate = 0, numJogos = 100;

            for (int i = 0; i < numJogos; i++)
            {
                dealer.ExecutarNovaPartidaCompleta();
            }

            qtdPerdida = j.Historico.Where(x => x.JogadorGanhador == Enuns.VencedorPartida.Banca).Count();
            qtdGanho   = j.Historico.Where(x => x.JogadorGanhador == Enuns.VencedorPartida.Jogador).Count();
            qtdEmpate  = j.Historico.Where(x => x.JogadorGanhador == Enuns.VencedorPartida.Empate).Count();

            stackFinal -= (15 * qtdPerdida);
            stackFinal += (10 * qtdGanho);
            saldoFinal  = (stackFinal - stackInicial);

            Assert.IsTrue(saldoFinal == j.Estatistica.getStackSaldoFinal());
        }
예제 #2
0
        public void CartasMandatorias_1()
        {
            IJogador jogador = new DummyJogadorTHB(DealerPartidaTest.configPadrao);

            Carta[] cartasJogador = new Carta[] {
                new Carta(10, Enuns.Naipe.Copas),
                new Carta(10, Enuns.Naipe.Paus)
            };

            IJogador banca = new Banca(DealerPartidaTest.configPadrao);

            Comum.Mesa m = new Comum.Mesa(DealerPartidaTest.configPadrao);
            int        quantidadeJogos = 5;

            CroupierConstructParam param = new CroupierConstructParam()
            {
                CartasJogador     = cartasJogador,
                Jogador           = jogador,
                Banca             = banca,
                ConfiguracaoPoker = DealerPartidaTest.configPadrao
            };
            ICroupier croupier = new Croupier(param);


            for (int i = 0; i < quantidadeJogos; i++)
            {
                croupier.ExecutarNovaPartidaCompleta();
                IPartida p = jogador.Historico.Last();
                Assert.IsTrue(p.Jogador.Cartas.Contains(cartasJogador[0]) && p.Jogador.Cartas.Contains(cartasJogador[1]));
            }
        }
예제 #3
0
        public void HaJogadoresParaJogar_1()
        {
            IJogador j     = new DummyJogadorTHB(DealerPartidaTest.configPadrao);
            IJogador banca = new Banca(DealerPartidaTest.configPadrao);

            Comum.Mesa     m = new Comum.Mesa(DealerPartidaTest.configPadrao);
            IDealerPartida d = new DealerPartida(m, banca);

            Assert.AreNotEqual(d.Mesa.JogadoresNaMesa.Count, 1);

            d.Mesa.AddParticipante(j);

            Assert.AreEqual(d.Mesa.JogadoresNaMesa.Count, 1);
        }
예제 #4
0
        public void getStackInicialTest()
        {
            ConfiguracaoTHBonus config = Configuracao.configPadrao;

            Comum.Mesa m      = new Comum.Mesa(config);
            ICroupier  dealer = new Croupier(m, new Banca(config));

            IJogador j = new DummyJogadorTHB(config, 1500);

            m.AddParticipante(j);
            int stackInicial = 1500;

            dealer.ExecutarNovaPartidaCompleta();

            Assert.IsTrue(stackInicial == j.Estatistica.getStackInicial());
        }
예제 #5
0
        internal IPartida GetBancaGanhou()
        {
            uint stackInicialJogador = 20000;

            Comum.Mesa m       = new Comum.Mesa(this.ConfiguracaoPadrao);
            ICroupier  dealer  = new Croupier(m, new Banca(this.ConfiguracaoPadrao));
            IJogador   jogador = new DummyJogadorTHB(this.ConfiguracaoPadrao, stackInicialJogador);

            m.AddParticipante(jogador);
            dealer.ExecutarNovaPartidaCompleta();

            while (dealer.HaParticipantesParaJogar() && jogador.Historico.Last().JogadorGanhador != Enuns.VencedorPartida.Banca)
            {
                dealer.ExecutarNovaPartidaCompleta();
            }

            return(jogador.Historico.Last());
        }
예제 #6
0
        public void getQuantidadeJogosJogadosTest()
        {
            ConfiguracaoTHBonus config = Configuracao.configPadrao;

            Comum.Mesa m = new Comum.Mesa(config);
            int        numeroPartidas = 5;
            ICroupier  dealer         = new Croupier(m, new Banca(config));

            IJogador j = new DummyJogadorTHB(config);

            m.AddParticipante(j);

            dealer.ExecutarNovaPartidaCompleta();
            dealer.ExecutarNovaPartidaCompleta();
            dealer.ExecutarNovaPartidaCompleta();
            dealer.ExecutarNovaPartidaCompleta();
            dealer.ExecutarNovaPartidaCompleta();

            Assert.IsTrue(numeroPartidas == j.Estatistica.getQuantidadeJogosJogados());
        }
예제 #7
0
        static void ExecutaCorrida()
        {
            IJogador jogador = new DummyJogadorTHB(Program.configPadrao, 1000, new DummyInteligencia());

            jogador.Corrida = new Corrida(2);

            ISitAndGo SitAndGo =
                new BuilderSitAndGo(new ConfiguracaoTHBonus())
                .addJogador(jogador)
                .ToSitAndGo();

            SitAndGo.Executa();

            IImprimePartida imp     = jogador.ImprimePartida.First();
            string          content = imp.pequenoResumo(jogador.Historico) + Environment.NewLine;

            content += "Resumo das Partidas: " + Environment.NewLine;
            content += imp.pequenoResumoTodasPartidas(jogador.Historico);
            content += Environment.NewLine;
            Program.SalvaArquivo(content);
        }
예제 #8
0
        public void JogadorPassadoParamentroGanhouTest()
        {
            int  qtdItensDeRetornoUnico = 800;
            int  qtdItensNaLista        = 137;
            uint stackInicialJogador    = 20000;

            PartidaFactory partidaFactory = new PartidaFactory();
            IJogador       j  = new DummyJogadorTHB(this.ConfiguracaoPadrao, stackInicialJogador);
            IJogador       j1 = new DummyJogadorTHB(this.ConfiguracaoPadrao, stackInicialJogador);

            // TESTE - retorno unitario partida
            for (int i = 0; i < qtdItensDeRetornoUnico; i++)
            {
                Assert.IsTrue(partidaFactory.GetJogadorGanhou(j1).JogadorGanhador == Enuns.VencedorPartida.Jogador);
            }

            // TESTE - retorno listaf
            IList <IPartida> listaPartida = partidaFactory.GetJogadorGanhou(qtdItensNaLista, j1);

            Assert.IsTrue(listaPartida.Count == qtdItensNaLista);
            Assert.IsTrue(0 == listaPartida.Where(p => p.JogadorGanhador == Enuns.VencedorPartida.Banca).Count());
            Assert.IsTrue(0 == listaPartida.Where(p => p.JogadorGanhador == Enuns.VencedorPartida.Empate).Count());
            Assert.IsTrue(qtdItensNaLista == listaPartida.Where(p => p.JogadorGanhador == Enuns.VencedorPartida.Jogador).Count());
        }
예제 #9
0
        public void PartidaJogadorGanha_1()
        {
            uint
                stackJogadorInicial            = 500,
                valorStackJogadorAposPagarAnt  = 495,
                valorStackJogadorAposPagarFlop = 485,
                valorPortMesaAposPreFlop       = (5 + 10 + 10);

            IJogador  jog    = new DummyJogadorTHB(PartidaIntegracaoTest.configPadrao, stackJogadorInicial);
            IJogador  banca  = new Banca(PartidaIntegracaoTest.configPadrao);
            ICroupier dealer = new Croupier(
                new Comum.Mesa(PartidaIntegracaoTest.configPadrao),
                banca,
                jog
                );

            dealer.IniciarNovaPartida(); //pre Jogo

            // Pre-jogo (Paga ant, distribui carta ao jogador, adiciona rodada)
            IPartida p = dealer.Mesa.PartidasAtuais[jog];

            p.AddToPote(jog.PagarValor(PartidaIntegracaoTest.configPadrao.Ant), TipoJogadorTHB.Jogador);
            jog.ReceberCarta(new Carta(10, Enuns.Naipe.Copas), new Carta(9, Enuns.Naipe.Copas));
            p.AddRodada(new RodadaTHB(Enuns.TipoRodada.PreFlop, p.PoteAgora, null));
            Assert.IsTrue(valorStackJogadorAposPagarAnt == jog.Stack);

            // Pre-flop (Pagar para ver flop)
            p.AddToPote(jog.PagarValor(PartidaIntegracaoTest.configPadrao.Flop), TipoJogadorTHB.Jogador);
            p.AddToPote(banca.PagarValor(PartidaIntegracaoTest.configPadrao.Flop), TipoJogadorTHB.Banca);
            p.AddRodada(new RodadaTHB(Enuns.TipoRodada.Flop, p.PoteAgora, p.CartasMesa));

            Assert.IsTrue(jog.Stack == valorStackJogadorAposPagarFlop); // stack jogador
            Assert.IsTrue(p.PoteAgora == valorPortMesaAposPreFlop);     // pote banca

            // Flop (Revelar Flop - Perguntar pagar turn)
            Carta[] flop = new Carta[] { new Carta(12, Enuns.Naipe.Copas), new Carta(13, Enuns.Naipe.Copas), new Carta(11, Enuns.Naipe.Copas) };
            typeof(Partida).GetProperty("Flop").SetValue(p, flop);
            p.AddRodada(new RodadaTHB(Enuns.TipoRodada.Turn, p.PoteAgora, p.CartasMesa));

            // Turn
            Carta turn = new Carta(4, Enuns.Naipe.Paus);

            typeof(Partida).GetProperty("Turn").SetValue(p, turn);
            p.AddRodada(new RodadaTHB(Enuns.TipoRodada.River, p.PoteAgora, p.CartasMesa));

            // River
            Carta river = new Carta(8, Enuns.Naipe.Ouros);

            typeof(Partida).GetProperty("River").SetValue(p, river);


            banca.ReceberCarta(new Carta(2, Enuns.Naipe.Espadas), new Carta(3, Enuns.Naipe.Espadas));

            Carta[] CartasBanca = new Carta[] {
                p.Banca.Cartas[0],
                p.Banca.Cartas[1]
            };
            Carta[] CartasJogador = new Carta[] {
                p.Jogador.Cartas[0],
                p.Jogador.Cartas[1]
            };
            Carta[] CartasMesa = p.CartasMesa;

            ConstrutorMelhorMao construtorMao    = new ConstrutorMelhorMao();
            MaoTexasHoldem      melhorMaoJogador = construtorMao.GetMelhorMao(CartasMesa.Union(CartasJogador).ToList());

            construtorMao = new ConstrutorMelhorMao();
            MaoTexasHoldem melhorMaoBanca = construtorMao.GetMelhorMao(CartasMesa.Union(CartasBanca).ToList());

            Assert.IsTrue(melhorMaoJogador.Compara(melhorMaoBanca) == 1);

            p.JogadorGanhador = VencedorPartida.Jogador;
            p.Jogador.ReceberValor(p.PoteAgora);

            Assert.IsTrue(p.Jogador.Stack == 510);
        }