Prezados amigos,
Para quem quiser aqui estão todas as combinações para a Mega Sena: http://www.4shared.com/archive/ESZ-xNuO ... -sena.html
São 51 arquivos .TXT com todos os 50.063.860 jogos. Para quem tiver curiosidade em como eles foram calculados basta ver o código abaixo.
Se rodar o código você terá não só os arquivos .TXT mas também um .DBF com todos os jogos.
Código: Selecionar todos
/*
----------------------------------------------------------------------------------------------------------------
MEGA SENA - TODOS OS JOGOS!!!
----------------------------------------------------------------------------------------------------------------
*/
FUNCTION MAIN
local tot := array(60), ct, n1:=1, n2:=1, n3:=1, temp := array(3), temp2 := "", matriz := {}, vet := array(6), contador:=1,;
t1, t2, t3, limite:=0, nome, joh
private jogada := array(0)
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
// Para Harbour 3.4 suporte a UTF-8
REQUEST HB_LANG_PT
HB_LANGSELECT( 'PT' )
REQUEST HB_CODEPAGE_UTF8EX
hb_cdpSelect( "UTF8EX" )
// **********************
// Iniciando e gerando tabela [jogo]
cls
for ct := 1 to 60
tot[ct] := strzero(ct,2) + space(1)
next
aadd( matriz, {"jogadaz","C",18,0} )
dbCreate("jogo", matriz)
close all
use jogo exclusive
go top
index on jogadaz tag jogada to jogada
set order to 1
go top
// Gerando combinações para 3 números
? "Iniciando a Geração de Dados para Mega Sena"
do while.t.
if tot[n1] <> tot[n2]
if tot[n1]<> tot[n3]
if tot[n2] <> tot[n3]
temp[1] := tot[n1]
temp[2] := tot[n2]
temp[3] := tot[n3]
asort(temp)
temp2 := temp[1] + temp[2] + temp[3]
if ascan(jogada, temp2) == 0
aadd(jogada,temp2)
endif
endif
endif
endif
++n1
if n1 > 60
n1 := 1
++n2
endif
if n2 > 60
n2 := 1
++n3
? n3
?? " - "
?? time()
endif
if n3 > 60
exit
endif
enddo
? "Total de variações para 3 números.: " + str(len(jogada)) // total de variações para 3 números
asort(jogada)
// calculando as jogadas de fato
n1 := 1
n2 := 1
limite := len(jogada)
? "Povoando a tabela de dados... "
do while.t.
t1 := substr(jogada[n1],1,3)
t2 := substr(jogada[n1],4,3)
t3 := substr(jogada[n1],7,3)
if at(t1,jogada[n2])==0
if at(t2,jogada[n2])==0
if at(t3,jogada[n2])==0
vet[1] := t1
vet[2] := t2
vet[3] := t3
vet[4] := substr(jogada[n2],1,3)
vet[5] := substr(jogada[n2],4,3)
vet[6] := substr(jogada[n2],7,3)
asort(vet)
temp2 := vet[1] + vet[2] + vet[3] + vet[4] + vet[5] + vet[6]
go top
seek temp2
if.not.found()
append blank
replace jogadaz with temp2
endif
endif
endif
endif
++n1
if n1 > limite
n1 := 1
++n2
if n2 % 50 == 0
? n2
?? " - " + str(limite)
?? " - " + str(LASTREC())
?? " - " + time()
endif
endif
if n2 > limite
exit
endif
enddo
// Gerando os arquivos com os resultados dos jogos
contador := 1
go top
for ct :=1 to 51
nome := "jogo" + strzero(ct,2) + ".txt"
set printer on
set printer to &nome
set device to printer
set console off
joh := 0
primeiro := .t.
do while .not.eof()
if primeiro
?? strzero(contador,8)
primeiro := .f.
else
? strzero(contador,8)
endif
?? (" : ")
?? jogo->jogadaz
skip
++ contador
++ joh
if joh == 1000000
exit
endif
enddo
set printer off
set printer to
set device to screen
set console on
? ct
next
close all
? "fim"
inkey(0)
Return nil
abs,
Yugi.
