Sub Main()
Call ImpostaArchivio10ELotto(01)
'Dim ini,fin,casi,es : ini = DataEstrToIdEstrDL(02,05,2013) : fin = DataEstrToIdEstrDL(02,05,2013) : casi = 00
Dim ini,fin,Casi,nStart,Es : ini = DataEstrToIdEstrDL(02,05,2013) : fin = EstrazioniArchivioDL : Casi = 00: nStart = Timer
For Es = ini To fin : Call Messaggio(Es) : Call AvanzamentoElab(ini,fin,Es)
Dim P01,P02,P03,T11,T12,T13,DS01,DS02,DS03,P04,P05,P06,T21,T22,T23,DS04,DS05,DS06
Call RicercaCondizione(Es,P01,P02,P03,T11,T12,T13,DS01,DS02,DS03,P04,P05,P06,T21,T22,T23,DS04,DS05,DS06,Casi)
Next
Dim nEnd : nEnd = Timer : Call Scrivi("Tempo di elaborazione : " & FormattaSecondi((nEnd + 01) - nStart),True)
End Sub
Function Intestazione(Es,Casi)
Dim sRiga : sRiga = GetInfoEstrazioneDL(Es) : Casi = Casi + 01
Call Scrivi(String(175,"-") & " Caso n° " & Format2(Casi),True) : Call Scrivi(sRiga,True)
Call ScriviEstrazioneDL(Es) : Call Scrivi(String(175,"-"),True)
End Function
Function ScriviRequisiti(aNum01,T11,T12,T13,aNum02,T21,T22,T23)
aNum01 = Array(T11,T12,T13) : aNum02 = Array(T21,T22,T23)
Call Scrivi("Rilevate Uniche 2 Terzine Simmetriche : [ " & StringaNumeri(aNum01,,True) & " ] - [ " & _
StringaNumeri(aNum02,,True) & " ]",True) : Call Scrivi()
End Function
Function ScriviDatiPronostico(Es)
Call Scrivi("Estrazione generatrice del pronostico " & FormattaStringa(Es,"00000") & " [" & _
IndiceAnnualeDL(Es) & " - " & DataEstrazioneDL(Es,,,"/") & "]",True)
End Function
Sub RicercaCondizione(Es,P01,P02,P03,T11,T12,T13,DS01,DS02,DS03,P04,P05,P06,T21,T22,T23,DS04,DS05,DS06,Casi)
Dim QT : QT = 00
For P01 = 01 To 18 : For P02 = P01 + 01 To 19 : For P03 = P02 + 01 To 20
T11 = EstrattoDL(Es,P01) : T12 = EstrattoDL(Es,P02): T13 = EstrattoDL(Es,P03)
DS01 = Distanza(T11,T12) : DS02 = Distanza(T12,T13) : DS03 = Distanza(T13,T11)
If DS01 = 30 And DS02 = 30 And DS03 = 30 Then
QT = QT + 01
For P04 = 01 To 18 : For P05 = P04 + 01 To 19 : For P06 = P05 + 01 To 20
T21 = EstrattoDL(Es,P04) : T22 = EstrattoDL(Es,P05): T23 = EstrattoDL(Es,P06)
DS04 = Distanza(T21,T22) : DS05 = Distanza(T22,T23) : DS06 = Distanza(T23,T21)
If DS04 = 30 And DS05 = 30 And DS05 = 30 Then
If T21 <> T11 And T21 <> T12 And T21 <> T13 And T22 <> T11 And T22 <> T12 And T22 <> T13 And T23 <> T11 And T23 <> T12 And T23 <> T13 Then
QT = QT + 01
If QT = 02 Then
Dim aNum01,aNum02 : Call Intestazione(Es,Casi) : Call ScriviRequisiti(aNum01,T11,T12,T13,aNum02,T21,T22,T23)
ReDim N(30) : Call ScriviDatiPronostico(Es) : Call CalcoloPronostico(N,T11,T12,T13,T21,T22,T23)
Dim Nu,CONTA : Call ContaNumeriinGioco(N,Nu,CONTA) : Call VerificaEsitoNumeri(N,Es)
End If
End If
End If
Next : Next : Next
End If
Next : Next : Next
End Sub
Sub CalcoloPronostico(N,T11,T12,T13,T21,T22,T23)
N(01) = Fuori90(T11 + 00) : N(02) = Fuori90(T11 + 18) : N(03) = Fuori90(T11 + 09) : N(04) = Fuori90(T11 + 45) : N(05) = Fuori90((90 + T11) - 06)
N(06) = Fuori90(T12 + 00) : N(07) = Fuori90(T12 + 18) : N(08) = Fuori90(T12 + 09) : N(09) = Fuori90(T12 + 45) : N(10) = Fuori90((90 + T12) - 06)
N(11) = Fuori90(T13 + 00) : N(12) = Fuori90(T13 + 18) : N(13) = Fuori90(T13 + 09) : N(14) = Fuori90(T13 + 45) : N(15) = Fuori90((90 + T13) - 06)
N(16) = Fuori90(T21 + 00) : N(17) = Fuori90(T21 + 18) : N(18) = Fuori90(T21 + 09) : N(19) = Fuori90(T21 + 45) : N(20) = Fuori90((90 + T21) - 06)
N(21) = Fuori90(T22 + 00) : N(22) = Fuori90(T22 + 18) : N(23) = Fuori90(T22 + 09) : N(24) = Fuori90(T22 + 45) : N(25) = Fuori90((90 + T22) - 06)
N(26) = Fuori90(T23 + 00) : N(27) = Fuori90(T23 + 18) : N(28) = Fuori90(T23 + 09) : N(29) = Fuori90(T23 + 45) : N(30) = Fuori90((90 + T23) - 06)
Call EliminaRipetuti(N)
End Sub
Sub ContaNumeriinGioco(N,NU,CONTA)
CONTA = 00 : NU = Split("00." & StringaNumeri(N,,True),".")
Dim Num : For Num = 01 To UBound(NU) : CONTA = CONTA + 01 : Next
Call Scrivi("G 0001 Numeri in gioco : [ " & Format2(CONTA) & " ] " & StringaNumeri(N,,True),True)
End Sub
Sub VerificaEsitoNumeri(N,Es)
Dim nSorte,klp,nColpi,xlp,SF : nSorte = AMBATA_ : klp = 01 : nColpi = 12 : SF = 00
For xlp = 01 To nColpi : SF = SerieFreqDL(Es + xlp,Es + xlp,N,AMBATA_)
Dim RetEsito,RetColpi,RetEstratti,RetIdEstr
Call VerificaEsitoDL(N,Es + xlp,nSorte,klp,RetEsito,RetColpi,RetEstratti,RetIdEstr)
If RetEsito <> "" Then
Call ColoreTesto(02)
Call Scrivi("V N. [" & FormatSpace(StringaNumeri(N,,True),50) & "] [" & RetEstratti & " ] C. " & _
FormatSpace(xlp,03,True) & " " & FormatSpace(RetEsito,11) & "( " & SF & " ) " & FormattaStringa(Es + xlp,"00000") & " [" & _
IndiceAnnualeDL(Es + xlp) & " - " & DataEstrazioneDL(Es + xlp,,,"/") & "]",True)
Call ColoreTesto(00)
ElseIf RetEsito = "" And RetColpi < klp Then
Call ColoreTesto(00)
Call Scrivi() : Call Scrivi("in corso per altre " & nColpi - xlp + 01 & " estrazioni",True) : Call Scrivi()
Call ColoreTesto(00)
Else
Call ColoreTesto(00)
RetEsito =("Zero punti") : RetEstratti =(".. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..")
Call Scrivi(" N. [" & FormatSpace(StringaNumeri(N,,True),50) & "] [" & RetEstratti & " ] C. " & _
FormatSpace(xlp,03,True) & " " & FormatSpace(RetEsito,11) & "( " & SF & " ) " & FormattaStringa(Es + xlp,"00000") & " [" & _
IndiceAnnualeDL(Es + xlp) & " - " & DataEstrazioneDL(Es + xlp,,,"/") & "]",True)
Call ColoreTesto(00)
End If
If Es + xlp > EstrazioniArchivioDL Then Exit For
Next
If xlp > nColpi Then Call Scrivi("Interrotta per raggiunta durata") : Call Scrivi()
End Sub
Function FormattaSecondi(s)
Dim hh,Mm,Ss : hh = s \ 3600 : Mm =(s Mod 3600) \ 60 : Ss = s -((hh * 3600) +(Mm * 60))
Dim TimeStr : TimeStr = Format2(hh) & ":" & Format2(Mm) & ":" & Format2(Ss)
FormattaSecondi = TimeStr
End Function