Gostaria saber do autor se deu frutos a ideia abaixo, desculpe colocar aqui no espaço da lotofacil, o moderador pode remover se assim for preciso
estou postando isso pois achei a ideia interessante
Olá, a todos do fórum
Preciso desenvolver este soft abaixo pra lotomania peguei acho que dá pra fazer em delphi (não precisa um ambiente grafico arrojado).
O programa que tenho em mente pode ser pensado como ´uma forma controlada de pular cartões´ ou ´uma espécie de Bruta Force´. O programa será para 100 dezenas em cartão de 50 apostas.
Vou dar um exemplo do programa que voce pode fazer usando esta ideia:
Vamos supor que num determinado jogo eu tenha 12 dezenas (1 a 12) e quero fazer cartões com 7 dezenas por cartão (x1, x2, x3, x4, x5, x6, x7) posição de 1 a 7, que podem ser ocupadas até um certo limite: X1 (só pode ter valores 1 a 6), x2 (2 a 7), x3 (3 a 8), x4 (4 a 9), x5 (5 a 10), x6 (6 a 11), x7 (7 a 12). Esta é a 1a condição do exemplo (detalhar os limites das dezenas nas posições) Tudo isso em ordem crescente.
2a Condição: Quase ficou explicita na primeira. São 7 posições que não podem ter a mesma dezena, logo: p7 > p6 > p5 > p4 > p3 > p2 > p1 > 0 e ( p7 dif p6 dif p5 dif p4 dif p3 dif p2 dif p1 dif 0 ) dif = diferente.
3a Condição: Qual a relação/diferença de um cartão pra outro?? (Exemplo:Outras combinações(K-subsets) com menos de 5 dz repetidas/iguais ao anterior, (vamos chamar variavel N) ).
4a Condição: INPUT ---> Qual o cartão Inicial ?? Opção 1 = Cartão primeiro, cartão 1. Opção 2 = Digitar as dezenas do cartão inicial.
Vou tentar explicar a condição 3:
Se na resposta do input começar por cartão 1 e na condição 3 for solicitado N = 5 então na resposta deve sair:
teste.txt = 11
01 02 03 04 05 06 07 (cartão primeiro)
01 02 03 04 08 09 10 (cartão segundo)
01 02 03 05 08 11 12 (cartão terceiro)
01 02 04 06 09 11 12 (cartão quarto)
01 02 05 07 09 10 11 (cartão quinto)
01 02 06 07 08 10 12 (cartão sexto)
01 03 04 07 10 11 12 (cartão setimo)
01 03 05 06 09 10 12 (cartão oitavo)
01 03 06 07 08 09 11 (cartão nono)
01 04 05 06 08 10 11 (cartão decimo)
01 04 05 07 08 09 12 (cartão decimo primeiro)
Existem softs muito bons que fazem isso, mas não pra lotomania pois não são rápidos. Entendo que estes softs funcionam da seguinte forma: Dada a lista de dezenas, o soft gera o primeiro cartão com as dezenas na ordem que são apresentadas (no caso as 7 primeiras do grupo de 12 dezenas, depois gera o segundo cartão mudando 1 dezena de cada vez e compara/confere com a combinação 1 gerada e armazenada na lista do programa, se tiver N-1 (no nosso caso 5 dzs) dezenas repetidas, joga a combinação fora e faz a proxima, se a condição for satisfeita armazena na lista e faz nova combinação e compara agora com as duas combinações lá presentes, até se esgotarem todas as combinações possiveis no caso 792, portanto estes softs geram TODAS as combinações.
Vou tentar explicar a condição 4: Iniciar a ´fabricação´ a partir do cartão 1 ou digitar as 7 dezenas (que devem estar entre as 12) e a partir desta combinação gerar os proximos cartões que não possuem N dezenas repetidas, que no nosso programa após ser digitadas as 7 dezenas o programa DEVE classifica-las em ordem crescente. (1o BUG).
A ROTINA ALTERADA / NOVA FORMA / O PSEUDO ALGORITMO:
INPUT 1 : Qtd de numeros ( 10 a 100 ) = 12
INPUT 2 : Dzs por cartão ( 02 a 50 ) = 7
INPUT 3 : Qtd de repetidos ( 0 a 49 ) > 5
INPUT 4 : Qual o cartão Inicial (opção 1 --> Cartão 1
(opção 2 --> Digitar cartão ) = 1
INPUT 5 : Qual nome do arquivo para salvar = teste.txt
Note que após respondida a entrada 1 dependendo da resposta ( 12 ) deve-se impor no INPUT 2 a opção ( 2 a 12 ) e não mais (2 a 50) = 2o BUG. Após ser respondida o INPUT 2 ( 7 ) deve-se impor no INPUT 3 a opção ( 0 a 11 ) e não mais (0 a 49) = 3o BUG.
A geração dos cartões:
Como foi escolhido as opções - 12, 7 , 5 , 1.
O primeiro cartão é:
01 02 03 04 05 06 07 (cartão primeiro)
Já o segundo cartão será feito da seguinte forma:
Como foi digitado input 3 = 5
o programa copia as (N-1) 4 primeiras dezenas do cartão primeiro
e adiciona a unidade 1 ao valor que está na posição x4 para fazer a posição x5 que fica assim (01 02 03 04 05)
depois confere/compara estas 5 dezenas com o cartão primeiro e
verifica que existem 5 dezenas repetidas do cartão anterior
repetidas = 5.
Se isso ocorre então ele adiciona mais 1 unidade na posição x5
ficando agora cartão 2 = (01 02 03 04 06)
depois confere novamente com o cartão primeiro e verifica que
dezs repetidas maior que N-1 , se isso ocorre então o programa
adiciona 1 unidade na posição x5 que passa para valor 07
ficando agora cartão 2 = (01 02 03 04 07)
depois confere novamente com o cartão primeiro e verifica que
dezs repetidas maior que N-1 = 5 , se isso ocorre então o programa
adiciona 1 unidade na posição x5 que passa para valor 08
ficando agora cartão 2 = (01 02 03 04 08)
depois confere novamente com o cartão primeiro e verifica que
não ha mais que N-1 dzs repetidas então ele passa a calcular a posição x6 da seguinte maneira: Primeiro pega a posição x5 e adiciona 1
unidade e fica assim (01 02 03 04 08 09)
então compara/confere com o cartão primeiro e verifica que dez
repetidas não é maior que N-1 então aceita x6 e adiciona 1
unidade em x6 para fazer x7 e fica assim (01 02 03 04 08 09 10)
depois confere novamente com o cartão primeiro e verifica que
dezs repetidas não é maior que N-1 então aceita o cartão 2 e
adiciona na lista. cartão 2 = (01 02 03 04 08 09 10)
Note que nesta passagem o programa deixou de fabricar/gerar os cartões:
01 02 03 04 05 06 08
01 02 03 04 05 06 09
01 02 03 04 05 06 10
01 02 03 04 05 06 11
01 02 03 04 05 06 12
01 02 03 04 05 07 08
01 02 03 04 05 07 09
01 02 03 04 05 07 10
01 02 03 04 05 07 11
01 02 03 04 05 07 12
01 02 03 04 05 08 09
01 02 03 04 05 08 10
01 02 03 04 05 08 11
01 02 03 04 05 08 12
01 02 03 04 05 09 10
01 02 03 04 05 09 11
01 02 03 04 05 09 12
01 02 03 04 05 10 11
01 02 03 04 05 10 12
01 02 03 04 05 11 12
01 02 03 04 06 07 08
01 02 03 04 06 07 09
01 02 03 04 06 07 10
01 02 03 04 06 07 11
01 02 03 04 06 07 12
01 02 03 04 06 08 09
01 02 03 04 06 08 10
01 02 03 04 06 08 11
01 02 03 04 06 08 12
01 02 03 04 06 09 10
01 02 03 04 06 09 11
01 02 03 04 06 09 12
01 02 03 04 06 10 11
01 02 03 04 06 10 12
01 02 03 04 06 11 12
01 02 03 04 07 08 09
01 02 03 04 07 08 10
01 02 03 04 07 08 11
01 02 03 04 07 08 12
01 02 03 04 07 09 10
01 02 03 04 07 09 11
01 02 03 04 07 09 12
01 02 03 04 07 10 11
01 02 03 04 07 10 12
01 02 03 04 07 11 12
Portanto pulou apenas os 45 cartões que não se encaixavam na CONDIÇÃO...
Já o cartão seguinte (3) será criado assim:
Como foi digitado input 3 = 5
o programa copia as 4 primeiras dezenas do cartão SEGUNDO
e adiciona a unidade 1 na posição x4 para fazer a posição x5
que fica assim (01 02 03 04 05)
Depois confere esta combinação parcial de 5 dezenas com a lista
no caso ainda o cartão 1 e o 2.
Verifica que ha mais que N-1 dez repetidas então adiciona 1 ao valor que está em x5 e repete todo o processo, mas no final encontra um problema todas as condições foram executadas mas não encontrou a combinação pois a ultima que o programa encontrou foi (01 02 03 04 10) e com 10 em x5 seu limite ao conferir com a lista percebeu que as repetidas eram maior que N-1 e ele não pode fazer x5=11 então agora ele deve passar a calcular a posição anterior pois esgotou-se x5 então deve pegar a posição x4 e adicionar 1 ficando agora cartão 3 = (01 02 03 05) ai ele compara com a lista (cartão 1 e 2) e aceita x4 = 05 repete todo o processo e encontra cartão 3 = (01 02 03 05 08 11 12).
Dai recomeça o processo para os demais cartões, até que ele encontra o cartão limite = ( 06 07 08 09 10 11 12 ) compara com a lista e o rejeita, como todos os limites para os xis (x1 a x7) foram encontrados o programa encerra.
Perceba que eu pulei talvez a parte mais importante do programa que é como fazer!!
Entretanto por isso estou chamando um pseudo bruta force o programa vai e depois volta, eu não sei como fazer loops, muito menos com condiçoes assim.
Mas acredito que alguns do fórum podem conseguir, e eu gostaria muito de te ajudar a ganhar na lotomania, tenha paciencia com meu programa, mandem uma cópia pra mim, podem registrar o programa em seu nome como quiser, espero que não desistam de tentar e contem comigo pra o que precisar, como disse sei muito pouco de programação e lógica de programação.
Acredito plenamente que este programa vai fazer muitos mais cartões do que qualquer outro soft faz, porque não conclui os cartões e se uma dezena não se encaixa ele parte pra outra.
Um abraço,