Ejemplo n.º 1
0
        private static IAcaoProbabilidade GetItem(IDataReader dataReader)
        {
            int index = 0;

            IAcaoProbabilidade item = new AcaoProbabilidade();

            item.id = (int)dataReader.GetInt32(index++);
            item.probabilidadeMinicaSeeFlop       = (float)dataReader.GetFloat(index++);
            item.probabilidadeMinimaRaisePreTurn  = (float)dataReader.GetFloat(index++);
            item.probabilidadeMinimaRaisePreRiver = (float)dataReader.GetFloat(index++);

            return(item);
        }
Ejemplo n.º 2
0
        static void GeraSimulacoesVariaves()
        {
            IAcaoProbabilidade acaoProbabilidade;
            string             diferencaTempo = string.Empty;

            Console.WriteLine("Iniciou...");

            float[]   rangeValoresMinimosCallFlop      = new float[] { 37f, 40f, 42f, 44f, 46f, 48f, 50f };
            float[]   rangeValoresMinimosRaisePreTurn  = new float[] { 37f, 40f, 42f, 44f, 46f, 48f, 50f };
            float[]   rangeValoresMinimosRaisePreRiver = new float[] { 37f, 40f, 42f, 44f, 46f, 48f, 50f };
            Stopwatch sw = new Stopwatch();

            uint qtdJogosPorSimulacao = 1200, qtdSimulacoesPorProbabilidade = 2, stackInicial = 10000;
            int  progresso = 0, numeroDeIteracoes = rangeValoresMinimosCallFlop.Count() * rangeValoresMinimosRaisePreTurn.Count() * rangeValoresMinimosRaisePreRiver.Count();

            StringBuilder strBuilder = new StringBuilder();

            foreach (float minCallFop in rangeValoresMinimosCallFlop)
            {
                foreach (float minRaisePreTurn in rangeValoresMinimosCallFlop)
                {
                    foreach (float minRaisePreRiver in rangeValoresMinimosCallFlop)
                    {
                        acaoProbabilidade = new AcaoProbabilidade()
                        {
                            probabilidadeMinicaSeeFlop       = minCallFop,
                            probabilidadeMinimaRaisePreTurn  = minRaisePreTurn,
                            probabilidadeMinimaRaisePreRiver = minRaisePreRiver
                        };

                        progresso++;
                        if (AcaoProbabilidadeContexto.ExisteItem(acaoProbabilidade))
                        {
                            continue;
                        }

                        strBuilder = new StringBuilder();

                        strBuilder.AppendFormat(Environment.NewLine + "Prog.: {0}/{1} - Fazendo: {2}, {3}, {4} - Run/QtdJogos {5}/{6} ",
                                                progresso,
                                                numeroDeIteracoes,
                                                minCallFop,
                                                minRaisePreTurn,
                                                minRaisePreRiver,
                                                qtdSimulacoesPorProbabilidade,
                                                qtdJogosPorSimulacao
                                                );

                        Console.Write(strBuilder.ToString());

                        sw.Reset();
                        sw.Start();
                        Program.SimulaJogadorProbabilistico(acaoProbabilidade, qtdJogosPorSimulacao, qtdSimulacoesPorProbabilidade, stackInicial);
                        sw.Stop();
                        TimeSpan ts = sw.Elapsed;

                        strBuilder.AppendFormat("- Tempo: {0:D2}:{1:D2}",
                                                ts.Minutes, ts.Seconds
                                                );

                        if (diferencaTempo != string.Empty)
                        {
                            diferencaTempo = ", ";
                            TimeSpan diff = Program.UltimaExecTempo.Subtract(ts);

                            if (Program.UltimaExecTempo > ts)
                            {
                                diferencaTempo += "-";
                            }
                            else if (Program.UltimaExecTempo < ts)
                            {
                                diff            = diff.Negate();
                                diferencaTempo += "+";
                            }
                            else
                            {
                                diferencaTempo += " ";
                            }

                            diferencaTempo += string.Format("({0:D2}:{1:D2})", diff.Minutes, diff.Seconds);
                        }
                        else
                        {
                            diferencaTempo = ",  (__:__)";
                        }

                        strBuilder.Append(diferencaTempo);

                        Program.UltimaExecTempo = sw.Elapsed;
                        Console.Write(strBuilder.ToString());
                        SalvaSimulacao(strBuilder.ToString());
                        MaoProbabilidadeContexto.PersisteItensRestantes();
                    }
                }
            }
        }