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
    martedì 15 luglio 2025
    Bari
    60
    18
    12
    57
    28
    Cagliari
    20
    26
    81
    55
    18
    Firenze
    28
    59
    46
    83
    81
    Genova
    32
    57
    09
    41
    17
    Milano
    58
    31
    49
    38
    63
    Napoli
    36
    58
    57
    45
    59
    Palermo
    03
    05
    48
    86
    62
    Roma
    47
    18
    01
    23
    79
    Torino
    56
    34
    49
    89
    90
    Venezia
    46
    44
    52
    82
    78
    Nazionale
    16
    36
    15
    13
    60
    Estrazione Simbolotto
    Nazionale
    27
    09
    44
    18
    11
Indietro
Alto