Option Explicit
' Verificare che i risultati ottenuti siano esatti o conformi a quanto richiesto
' Selezione di n estratti a cui applicare il calcolo somma consecutiva
' script per matematico utente ced
Sub Main
Dim idEstr
Dim aPos(55,2)
ReDim aEstrVer(0)
Dim sEstr
ReDim aR(0):Call ScegliMyRuote(aR)
Dim aRT(1):aRT(1) = 11
Call ScegliEstratti(aEstrVer,aPos,sEstr)
ReDim aNum(0)
Dim aAmb(2),aP1(1),aP2(2):aP1(1) = 1:aP2(2) = 1
Dim qEstr:qEstr = CInt(InputBox("minimo 1 ","inserisci quanti concorsi analizzare",1)) ' analizzo gli ultimi 20 concorsi si puo cambiare
If qEstr < 1 Then Exit Sub
Dim nClp:nClp = 9 ' numero colpi di verifica
Dim aVCap:aVCap = Array("Complemento a 90","Simmetrico a 91","Diamterale","Vertibile","Diametrale Decina")
Dim idCap:idCap = ScegliOpzioneMenu(aVCap,0,"Calcola il .... del primo capogioco") + 1
Dim Ini,fin
fin = EstrazioneFin
Ini = fin -(qEstr - 1)
For idEstr = Ini To fin
Scrivi FormatSpace(GetInfoEstrazione(idEstr) & " " & sEstr,60,1) & " ",1,,vbBlue,vbCyan ' informazioni data e ruote
Call CaricaAEstr(idEstr,aPos,aEstrVer,aNum)
Scrivi StringaNumeri(aNum,,True)
aAmb(1) = GetSum(aNum) ' numero ottenuto dal calcolo
Select Case idCap
Case 1
aAmb(2) = 90 - aAmb(1) ' secondo numero ottenuto come complemento 90 dell ambata principale
Case 2
aAmb(2) = 91 - aAmb(1) ' simmetrico 91
Case 3
aAmb(2) = Diametrale(aAmb(1))
Case 4
aAmb(2) = Vert(aAmb(1)) ' vertibile
Case 5
aAmb(2) = DiametraleD(aAmb(1)) ' diametrale decina
End Select
Scrivi FormatSpace(GetInfoEstrazione(idEstr) & " " & StringaRuote(aR) & " " & FormatSpace(GetSum(aNum),2,1) & " " & StringaNumeri(aAmb,,True),60,1) & " ",1,,vbBlue,vbCyan
Call ImpostaGiocata(1,aAmb,aR,aP1,nClp)
Dim aSestina:aSestina = Array(0,aAmb(1),aAmb(2),Fuori90(aAmb(1) + 1),Fuori90(aAmb(1) - 1),Fuori90(aAmb(2) + 1),Fuori90(aAmb(2) - 1))
Call ImpostaGiocata(2,aSestina,aRT,aP2,nClp)
Call Gioca(idEstr)
Call AvanzamentoElab(Ini,fin,idEstr)
Next
Scrivi FormatSpace(" ",62),1,,RGB(0,128,64),RGB(236,255,245)
Scrivi FormatSpace(" Hai scelto come Secondo capaogioco il : " & aVCap(idCap - 1),62),1,,RGB(0,128,64),RGB(236,255,245)
Scrivi FormatSpace(" ",62),1,,RGB(0,128,64),RGB(236,255,245)
ScriviResoconto
End Sub
' questa sub carica gli estratti su cui effettuare i calcoli
Sub CaricaAEstr(idestr,aPos,aEstrVer,anum)
Dim R,k,p,E
k = 0
ReDim anum(0)
For p = 1 To UBound(aEstrVer)
E = Estratto(idestr,aPos(aEstrVer(p),1),aPos(aEstrVer(p),2))
If isNumeroValidoLotto(E) Then
ReDim Preserve anum(p)
anum(p) = Estratto(idestr,aPos(aEstrVer(p),1),aPos(aEstrVer(p),2))
End If
Next
End Sub
' queesta funzione esegue i calcoli
Function GetSum(a)
Dim i
Do While UBound(a) > 1
ReDim aSom(0)
For i = 1 To UBound(a) - 1
ReDim Preserve aSom(i)
aSom(i) = Fuori90(a(i) + a(i + 1))
Next
ReDim a(0)
For i = 1 To UBound(aSom)
ReDim Preserve a(i)
a(i) = aSom(i)
Next
Scrivi StringaNumeri(a,,True)
Loop
GetSum = a(UBound(a))
End Function
Sub ScegliEstratti(aEstrVer,aPos,sEstr)
ReDim aVoci(55)
ReDim aVociSel(55)
Dim R,m,p
For R = 1 To 12
If R = 11 Then R = 12
For p = 1 To 5
m = m + 1
aVoci(m) = p & SiglaRuota(R)
aPos(m,1) = R
aPos(m,2) = p
Next
Next
m = 0
sEstr = ""
If ScegliDaLista(aVoci,aVociSel,"Seleziona Estratti di Verifica") >= 0 Then
For p = 1 To UBound(aVoci)
If aVociSel(p) Then
m = m + 1
ReDim Preserve aEstrVer(m)
aEstrVer(m) = p
sEstr = sEstr & aVoci(p) & " "
End If
Next
End If
End Sub
Sub ScegliMyRuote(aRuVer)
ReDim aVoci(10)
ReDim aVociSel(10)
Dim k,m
For k = 0 To 10
m = m + 1
If m = 11 Then m = 12
aVoci(k) = NomeRuota(m)
Next
m = 0
If ScegliDaLista(aVoci,aVociSel,"Seleziona Ruota/e per capogiochi") >= 0 Then
For k = 0 To UBound(aVoci)
If aVociSel(k) Then
m = m + 1
ReDim Preserve aRuVer(m)
aRuVer(m) = k + 1
If aRuVer(m) = 11 Then aRuVer(m) = 12
End If
Next
End If
End Sub