Beispiel #1
0
        private void ReprovarJogo(MotivoReprovacao motivo)
        {
            jogosReprovados++;

            switch (motivo)
            {
            case MotivoReprovacao.COINCIDENCIA:
                repCoincidencias++;
                break;

            case MotivoReprovacao.ESTILO:
                repEstilo++;
                break;

            case MotivoReprovacao.ESTILO_IMPAR_PAR:
                repEstiloImparPar++;
                break;

            case MotivoReprovacao.EXISTENTE:
                repExistente++;
                break;

            case MotivoReprovacao.INTERVALO:
                repIntervalo++;
                break;

            case MotivoReprovacao.PARES_IMPARES:
                repParesImpares++;
                break;

            case MotivoReprovacao.SEQUENCIA:
                repSequencia++;
                break;
            }
        }
Beispiel #2
0
        public void AdicionarJogoReprovado(Jogo jogo, MotivoReprovacao motivo, List <ValidadorGenerico> validadores)
        {
            DataTable gerados = ds.Tables["REPROVADOS"];

            DataRow linha = gerados.NewRow();

            linha["UUID"]      = Guid.NewGuid();
            linha["DATA_HORA"] = DateTime.Now;
            linha["BOLA01"]    = jogo.Bola01;
            linha["BOLA02"]    = jogo.Bola02;
            linha["BOLA03"]    = jogo.Bola03;
            linha["BOLA04"]    = jogo.Bola04;
            linha["BOLA05"]    = jogo.Bola05;
            linha["BOLA06"]    = jogo.Bola06;
            linha["BOLA07"]    = jogo.Bola07;
            linha["BOLA08"]    = jogo.Bola08;
            linha["BOLA09"]    = jogo.Bola09;
            linha["BOLA10"]    = jogo.Bola10;
            linha["BOLA11"]    = jogo.Bola11;
            linha["BOLA12"]    = jogo.Bola12;
            linha["BOLA13"]    = jogo.Bola13;
            linha["BOLA14"]    = jogo.Bola14;
            linha["BOLA15"]    = jogo.Bola15;
            linha["BOLA16"]    = jogo.Bola16;
            linha["BOLA17"]    = jogo.Bola17;
            linha["BOLA18"]    = jogo.Bola18;
            linha["MOTIVO"]    = motivo;

            StringBuilder sb = new StringBuilder();

            foreach (ValidadorGenerico validator in validadores)
            {
                sb.Append(validator.ToString()).Append(System.Environment.NewLine);
            }

            linha["REGRAS"] = sb.ToString();
            gerados.Rows.Add(linha);

            jogo.AnalisarJogo();
        }
Beispiel #3
0
        private void OnJogoReprovado(object sender, JogoReprovadoArgs args)
        {
            MotivoReprovacao motivo = args.MotivoReprovacao;

            switch (motivo)
            {
            case MotivoReprovacao.COINCIDENCIA:
                lbCoincidencias.Text = ValidadorGeral.FATOR_COINCIDENCIA + "+ bolas coincidentes em outro jogo: " + gerador.RepCoincidencias.ToString("###,###,###,###,###,###,##0");
                break;

            case MotivoReprovacao.ESTILO:
                lbEstiloJogo.Text = "Estilo do jogo: " + gerador.RepEstilo.ToString("###,###,###,###,###,###,##0");
                break;

            case MotivoReprovacao.ESTILO_IMPAR_PAR:
                lbEstiloParesImpares.Text = "Estilo pares/ímpares: " + gerador.RepEstiloImparPar.ToString("###,###,###,###,###,###,##0");
                break;

            case MotivoReprovacao.EXISTENTE:
                lbJogoGerado.Text = "Jogo já sorteado ou gerado: " + gerador.RepExistente.ToString("###,###,###,###,###,###,##0");
                break;

            case MotivoReprovacao.INTERVALO:
                lbTamanhoIntervalo.Text = "Tamanho do intervalo: " + gerador.RepIntervalo.ToString("###,###,###,###,###,###,##0");
                break;

            case MotivoReprovacao.PARES_IMPARES:
                lbDistribuicaoParesImpares.Text = "Distribuição de pares e ímpares: " + gerador.RepParesImpares.ToString("###,###,###,###,###,###,##0");
                break;

            case MotivoReprovacao.SEQUENCIA:
                lbTamanhoSequencia.Text = "Tamanho da sequência: " + gerador.RepSequencia.ToString("###,###,###,###,###,###,##0");
                break;
            }
            Application.DoEvents();
        }
 public JogoReprovadoArgs(MotivoReprovacao motivoReprovacao)
 {
     this.MotivoReprovacao = motivoReprovacao;
 }
Beispiel #5
0
        public void GerarJogos(int quantidadeJogos, int quantidadeNumeros)
        {
            DateTime inicio = DateTime.Now;

            System.Diagnostics.Debug.WriteLine("Início: " + inicio.ToString("HH:m:s tt zz"));

            List <Jogo> jogosValidos = new List <Jogo>();

            ValidadorGeral validadorGeral = new ValidadorGeral();

            ZerarContadores();
            try {
                if (jogosPassados == null)
                {
                    jogosPassados = Banco.ObterJogosPassados();
                }

                validadorGeral.JogosPassados = jogosPassados;
                validadorGeral.BancoAnalise.AddRange(jogosPassados);

                while (jogosValidos.Count < quantidadeJogos)
                {
                    RaiseOnGerarJogo(this, new EventArgs());
                    // Gerando as bolas
                    Jogo jogo = new Jogo();
                    while (jogo.Bolas.Count < quantidadeNumeros)
                    {
                        RaiseOnBolaSorteada(this, new EventArgs());
                        Random random = new Random(Seeder());
                        int    bola   = random.Next(1, 26);
                        if (!jogo.Bolas.Contains(bola))
                        {
                            jogo.Bolas.Add(bola);
                        }
                    }

                    jogo.Bolas.Sort();
                    for (int i = 1; i <= jogo.Bolas.Count; i++)
                    {
                        PropertyInfo propertyInfo = jogo.GetType().GetProperty("Bola" + i.ToString("00"));
                        propertyInfo.SetValue(jogo, jogo.Bolas[i - 1], null);
                    }

                    jogo.AnalisarJogo();

                    // Verificações para validação do jogo
                    MotivoReprovacao  motivo    = validadorGeral.Validar(jogo);
                    ValidadorGenerico validador = null;
                    if (motivo == MotivoReprovacao.NENHUM)
                    {
                        foreach (ValidadorGenerico validator in Validadores)
                        {
                            motivo = validator.Validar(jogo);
                            if (motivo == MotivoReprovacao.NENHUM)
                            {
                                validador = validator;
                                Banco.AdicionarJogoGerado(jogo, validador);
                                Banco.Salvar();
                                break;
                            }
                        }
                    }

                    if (motivo != MotivoReprovacao.NENHUM)
                    {
                        Banco.AdicionarJogoReprovado(jogo, motivo, Validadores);
                        Banco.Salvar();
                        RaiseOnJogoReprovado(this, new JogoReprovadoArgs(motivo));
                    }
                    else
                    {
                        RaiseOnJogoAprovado(this, new JogoAprovadoArgs(jogo, validador));
                    }
                }


                DateTime fim = DateTime.Now;
                System.Diagnostics.Debug.WriteLine("Fim: " + fim.ToString("HH:m:s tt zz"));
                TimeSpan diferenca = fim - inicio;
                System.Diagnostics.Debug.WriteLine("Tempo: " + diferenca.ToString("g"));
            } catch (Exception ex) {
                System.Diagnostics.Debug.WriteLine(ex.StackTrace);

                DateTime fim = DateTime.Now;
                System.Diagnostics.Debug.WriteLine("Fim: " + fim.ToString("HH:m:s tt zz"));
                TimeSpan diferenca = fim - inicio;
                System.Diagnostics.Debug.WriteLine("Tempo: " + diferenca.ToString("g"));
            }
        }