예제 #1
0
        /// <summary>
        /// Monta a lista de mesas com base nas informações anteriores
        /// </summary>
        /// <returns>Lista de mesas geradas</returns>
        public List <Mesa> ObterListaDeMesas()
        {
            var mesas  = new List <Mesa>();
            var idMesa = 1;

            foreach (var quantidade in _quantidadeJogadoresPorMesa)
            {
                if (quantidade < 0 || quantidade > 9)
                {
                    continue;
                }

                Mesa mesa = new Mesa(idMesa);

                //for (int i = 1; i <= quantidade; i++)
                //{
                //    Jogador jogador = new Jogador(i, $"jogador{i}");
                //    mesa.Jogadores.Add(jogador);
                //}
                new JogadorBuilder().Novo().CriarJogadores(quantidade).ObterJogadores().ForEach(j => mesa.Jogadores.Add(j));
                mesas.Add(mesa);

                idMesa++;
            }

            foreach (var mesa in mesas)
            {
                if (_deveIniciarPartida)
                {
                    mesa.IniciarPartida();
                }

                if (_deveIniciarMao)
                {
                    mesa.IniciarMao();
                }

                if (_apostasPosPreFlop)
                {
                    foreach (var jogador in mesa.JogadoresAtivos)
                    {
                        jogador.AlterarValorFichasApostadasNaRodada(mesa.ApostaAtual);
                    }
                }

                if (_deveExecutarFlop)
                {
                    mesa.Flop();
                }

                if (_deveExecutarTurn)
                {
                    mesa.Turn();
                }

                if (_deveExecutarRiver)
                {
                    mesa.River();
                }

                if (!string.IsNullOrEmpty(_jogadaMesa))
                {
                    mesa.AlterarExecucaoDeJogadas(_jogadaMesa, _statusJogadaMesa);
                }
            }

            return(mesas);
        }