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); }
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(); } } } }