Novità

Per salvo50, una cortesia

Ciao ILegend, grazie a te, sto cercando di capire come hai costruito la piramide, e sono a buon punto.
 
Ciao Joe :)
x matematico
controlla bene i risultati dello script .
ho adattato lo script di base
Quando si chiede uno script è buona regola avere bene in mente cosa si vuole ottenere.
per costruire uno script serve logica, tutto il lavoro si sviluppa sequenzialmente.
cambiare idea vuol dire solo sprecare tempo.
oggi sono al pc per distrarmi e non pensare ,perchè pensare fa male , in altre occasioni non avrei perso tempo a rifare qualcosa, che fa cio che è richiesto.
questo script dovrebbe fare quanto richiesto dal primo e dal secondo metodo.
controllate per favore
Codice:
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
Come non darti ragione , sei stato gentilissimo e ti sono davvero grato dal cuore !
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 22 novembre 2025
    Bari
    82
    08
    24
    45
    37
    Cagliari
    07
    16
    67
    74
    35
    Firenze
    76
    32
    44
    06
    51
    Genova
    22
    77
    19
    27
    89
    Milano
    46
    81
    56
    29
    85
    Napoli
    68
    90
    80
    06
    47
    Palermo
    31
    07
    43
    83
    19
    Roma
    08
    68
    17
    12
    57
    Torino
    87
    17
    61
    60
    58
    Venezia
    27
    05
    17
    72
    50
    Nazionale
    70
    76
    56
    81
    15
    Estrazione Simbolotto
    Torino
    26
    34
    10
    42
    33
Indietro
Alto