Novità

Condizione Unica

Xeroxs

Advanced Member >PLATINUM<
Buongiorno a Tutti,
Visto che ho a disposizione il PC per qualche ora volevo chiedere un vostro intervento per capire dove posso intervenire per utilizzare nella mia ricerca su Questo listato che una mia amica mi ha passato per poterlo sistemare, l'unica condizione presente nel quadro estrazionale come da esempio della somma 90 tra 2 estratti.

A questo listato ho utilizzato quanto Joe mi aveva fatto su un mio listato, ma purtroppo non riesco a farlo, o perlomeno mi calcola una sola somma 90 anche se presente due volte su due ruote come ad esempio

nell'ultima estrazione abbiamo due somme 90 sia su Cagliari che Napoli, per cui questa non va considerata
mentre il 13 ne abbiamo 1 sola su Napoli per cui il listato deve considerarlo come caso unico e presente ne quadro estrazionale.

Per Cui inserendo quanto mi aveva fatto Joe in questo listato pensavo di ottenere quanto voluto, ma così non avviene

Potete aiutarmi a capire dove intervenire, magari basta spostare una riga del codice che Io ho chiamato Kunico come potete vedere nel listato,
ho provato ma nulla.

Questo è quanto ho fatto ( Il Listato non è Mio ho solo inserito quanto volevo, inserendo correttamente le variabili e metterle nella Dim.
Poi lo correggo nei dati voluti dalla mia amica ma se non riesco a risolvere il mio dilemma è inutile andare avanti

Codice:
Option Explicit
Sub Main()
   Dim r,ruota(10)
   Dim Num(5),poste(3)
   Dim Somma,p1,p2,n1,n2,a1,a2,a3,a4,a5
   Dim Ini,Fin,es,Clp,co
   Dim Kunico ' Condizione Unica
   poste(2) = 1 : poste(3) = 1
   Ini = CInt(InputBox("Estrazione iniziale ?",,9850))
   Somma = CInt(InputBox("Ambo somma da ricercare ?",,90))
   Clp = InputBox("Colpi di verifica ?",,9)
   Fin = EstrazioneFin
   For es = Ini To Fin
      Kunico = 0
      AvanzamentoElab EstrazioneIni,EstrazioneFin,es
      For r = 1 To 10
         For p1 = 1 To 4
            For p2 = p1 + 1 To 5
               n1 = Estratto(es,r,p1) : n2 = Estratto(es,r,p2)
               If Fuori90(n1 + n2) = Somma Then
                  Kunico = Kunico + 1
                  a1 = Estratto(es,r,1) : a2 = Estratto(es,r,2) : a3 = Estratto(es,r,3) : a4 = Estratto(es,r,4) : a5 = Estratto(es,r,5)
                  ruota(1) = r
                  co = co + 1
                  Scrivi String(96,"=") & " Caso n°" & Format2(co),1
                  Scrivi DataEstrazione(es) & " " & SiglaRuota(r) & " " & StringaEstratti(es,r) & " ---> Somma " & Somma & " [" & n1 & "-" & n2 & "]"
                  Num(1) = Somma
                  Num(2) = Diametrale(a1)
                  Num(3) = a3
                  ImpostaGiocata 1,Num,ruota,poste,Clp,2
                  If Kunico = 1 Then ' Quì Impongo la ricerca di una sola Condizione nel quadro estrazionale
                     Gioca es
                  End If ' Chiude Kunico
               End If
            Next
         Next
      Next
   Next ' Chiude es
   ScriviResoconto
End Sub


Grazie come sempre sperando in un vostro intervento
 

lotto_tom75

Advanced Premium Member
Buongiorno a Tutti,
Visto che ho a disposizione il PC per qualche ora volevo chiedere un vostro intervento per capire dove posso intervenire per utilizzare nella mia ricerca su Questo listato che una mia amica mi ha passato per poterlo sistemare, l'unica condizione presente nel quadro estrazionale come da esempio della somma 90 tra 2 estratti.

A questo listato ho utilizzato quanto Joe mi aveva fatto su un mio listato, ma purtroppo non riesco a farlo, o perlomeno mi calcola una sola somma 90 anche se presente due volte su due ruote come ad esempio

nell'ultima estrazione abbiamo due somme 90 sia su Cagliari che Napoli, per cui questa non va considerata
mentre il 13 ne abbiamo 1 sola su Napoli per cui il listato deve considerarlo come caso unico e presente ne quadro estrazionale.

Per Cui inserendo quanto mi aveva fatto Joe in questo listato pensavo di ottenere quanto voluto, ma così non avviene

Potete aiutarmi a capire dove intervenire, magari basta spostare una riga del codice che Io ho chiamato Kunico come potete vedere nel listato,
ho provato ma nulla.

Questo è quanto ho fatto ( Il Listato non è Mio ho solo inserito quanto volevo, inserendo correttamente le variabili e metterle nella Dim.
Poi lo correggo nei dati voluti dalla mia amica ma se non riesco a risolvere il mio dilemma è inutile andare avanti

Codice:
Option Explicit
Sub Main()
   Dim r,ruota(10)
   Dim Num(5),poste(3)
   Dim Somma,p1,p2,n1,n2,a1,a2,a3,a4,a5
   Dim Ini,Fin,es,Clp,co
   Dim Kunico ' Condizione Unica
   poste(2) = 1 : poste(3) = 1
   Ini = CInt(InputBox("Estrazione iniziale ?",,9850))
   Somma = CInt(InputBox("Ambo somma da ricercare ?",,90))
   Clp = InputBox("Colpi di verifica ?",,9)
   Fin = EstrazioneFin
   For es = Ini To Fin
      Kunico = 0
      AvanzamentoElab EstrazioneIni,EstrazioneFin,es
      For r = 1 To 10
         For p1 = 1 To 4
            For p2 = p1 + 1 To 5
               n1 = Estratto(es,r,p1) : n2 = Estratto(es,r,p2)
               If Fuori90(n1 + n2) = Somma Then
                  Kunico = Kunico + 1
                  a1 = Estratto(es,r,1) : a2 = Estratto(es,r,2) : a3 = Estratto(es,r,3) : a4 = Estratto(es,r,4) : a5 = Estratto(es,r,5)
                  ruota(1) = r
                  co = co + 1
                  Scrivi String(96,"=") & " Caso n°" & Format2(co),1
                  Scrivi DataEstrazione(es) & " " & SiglaRuota(r) & " " & StringaEstratti(es,r) & " ---> Somma " & Somma & " [" & n1 & "-" & n2 & "]"
                  Num(1) = Somma
                  Num(2) = Diametrale(a1)
                  Num(3) = a3
                  ImpostaGiocata 1,Num,ruota,poste,Clp,2
                  If Kunico = 1 Then ' Quì Impongo la ricerca di una sola Condizione nel quadro estrazionale
                     Gioca es
                  End If ' Chiude Kunico
               End If
            Next
         Next
      Next
   Next ' Chiude es
   ScriviResoconto
End Sub


Grazie come sempre sperando in un vostro intervento

Ciao xeroxs,

Forse puoi risolvere aggiungendo semplicemente un contatore ai casi di somma 90 rilevati ed escludendo con un if then i casi dove il contatore è maggiore di 1 così:

Codice:
Option Explicit
Sub Main()
   Dim r,ruota(10)
   Dim Num(5),poste(3)
   Dim Somma,p1,p2,n1,n2,a1,a2,a3,a4,a5
   Dim Ini,Fin,es,Clp,co
   Dim Kunico ' Condizione Unica
   Dim contaunici
   contaunici = 0
   poste(2) = 1 : poste(3) = 1
   Ini = CInt(InputBox("Estrazione iniziale ?",,9000))
   Somma = CInt(InputBox("Ambo somma da ricercare ?",,90))
   Clp = InputBox("Colpi di verifica ?",,9)
   Fin = EstrazioneFin
   For es = Ini To Fin
      Kunico = 0
      AvanzamentoElab EstrazioneIni,EstrazioneFin,es
      For r = 1 To 10
         For p1 = 1 To 4
            For p2 = p1 + 1 To 5
               n1 = Estratto(es,r,p1) : n2 = Estratto(es,r,p2)
               If Fuori90(n1 + n2) = Somma Then
                  contaunici = contaunici + 1
                  Kunico = Kunico + 1
                  a1 = Estratto(es,r,1) : a2 = Estratto(es,r,2) : a3 = Estratto(es,r,3) : a4 = Estratto(es,r,4) : a5 = Estratto(es,r,5)
                  ruota(1) = r
                  co = co + 1
                  Scrivi String(96,"=") & " Caso n°" & Format2(co),1
                  Scrivi DataEstrazione(es) & " " & SiglaRuota(r) & " " & StringaEstratti(es,r) & " ---> Somma " & Somma & " [" & n1 & "-" & n2 & "]"
                  Num(1) = Somma
                  Num(2) = Diametrale(a1)
                  Num(3) = a3
                  If contaunici = 1 Then
                     ImpostaGiocata 1,Num,ruota,poste,Clp,2
                     'If Kunico = 1 Then ' Quì Impongo la ricerca di una sola Condizione nel quadro estrazionale
                     Gioca es
                     'End If ' Chiude Kunico
                  Else
                     Call Scrivi("<font color=red>somma 90 rilevata ma non una volta sola... quindi salto questa estrazione...</font>")
                  End If
               End If
               If ScriptInterrotto Then Exit For
            Next
            If ScriptInterrotto Then Exit For
         Next
         If ScriptInterrotto Then Exit For
      Next
      'riazzero ilcontatore unici per la successiva estrazione
      contaunici = 0
      If ScriptInterrotto Then Exit For
   Next
End Sub

👋:)
 

Xeroxs

Advanced Member >PLATINUM<
Ciao, lotto_tom75

Grazie per il Tuo Intervento ma ancora non va bene in quanto l'ultimo esito non deve esaminarlo in quanto abbiamo due condizioni nella stessa estrazione e non una sola.

Sto Cercando di modificare i vari cicli for perchè credo che l'errore sia li...

Grazie Comunque.
 

i legend

Premium Member
ciao Xerox ho fatto lo script al volo quindi non so se funzia
ho cercato di commentare le righe , anche se mi sembra molto leggibile
da script puoi impostare quanti casi cercare , la somma che vuoi rintracciare e con la variabile condUnica puoi impostare quante somme devono essere presenti nell estrazione, se ne vuoi piu di una , la somma puo essere prente anche piu volte sulla stessa ruota .
per escludere questa possibilita bisognerebbe inserire un altro filtro
se non funzia dimmi , che appena ho un attimo mi metto con calma
ciao
controllare eventuali bugs sempre possibili
Codice:
Option Explicit
' controllare che lo script restituisca i dati corretti ,eventuali bbugs possono essere sempre possibili
' questa è solo una delle moltissime soluzioni che si possono realizzare
' la prima che mi è venuta in mente , si potrebbe sicuramente costruire un algoritmo ottimizzato
Sub Main
   Dim SomSpia:SomSpia = 90
   Dim Sum,idEstr,R,p1,p2,E1,E2
   Dim nCasi,nTro,nCasiTro,i
   Dim nCondUnica
   Dim aElem
   nCondUnica = 1
   nCasi = 20 ' imposto casi massimi da rintracciare
   nCasiTro = 0
   ' ciclo le estrazioni a ritroso dall ultima alla prima
   For idEstr = EstrazioneFin To 1 Step - 1
      ' azzero la variabile dei casi trovati
      nTro = 0
      ' dichiaro l array contenitore che verra azzerato ad ogni estrazione
      ReDim aTro(0)
      ' ciclo le 10 ruote
      For R = 1 To 10
         ' ciclo gli estratti che vanno dalla prima alla quarta pos
         For p1 = 1 To 4
            E1 = Estratto(idEstr,R,p1)
            ' ' ciclo gli estratti che vanno dalla 2 alla 5 pos
            For p2 = p1 + 1 To 5
               E2 = Estratto(idEstr,R,p2)
               ' faccio la somma dei due estratti
               Sum = Fuori90(E1 + E2)
               ' se la somma rintracciata è quella voluta allora
               If Sum = SomSpia Then
                  ' Incremento i casi
                  nTro = nTro + 1
                  ' raccolco tutto nell array dinamico , utilizzo il ";" come carattere separatore
                  ReDim Preserve aTro(nTro)
                  aTro(nTro) = Sum & ";" & R & ";" & p1 & ";" & p2 & ";" & E1 & ";" & E2
               End If
            Next ' p2
         Next ' p1
      Next ' R
      ' se i casi trovati ripsecchiano la condizione allora ciclo l array e scrivo i casi rintracciati
      If UBound(aTro) = nCondUnica Then
         nCasiTro = nCasiTro + 1
         ' se i casi trovati superano i casi richiesti esco dal ciclo ed interrompo la ricerca
         If nCasiTro > nCasi Then Exit For
         ' ciclo il contenitore
         For i = 1 To UBound(aTro)
            ' splitto ogni riga dell array per  formattare uil testo ed utilizzarne le celle o colonne
            aElem = Split(aTro(i),";")
            Scrivi FormattaStringa(nCasiTro,"000") & " ] " & idEstr & "  " & aElem(2) & SiglaRuota(aElem(1)) & "(" & aElem(4) & ")+" & aElem(3) & SiglaRuota(aElem(1)) & "(" & aElem(5) & ")=" & aElem(0)
         Next ' i
      End If
      Call AvanzamentoElab(EstrazioneFin,1,idEstr)
   Next ' idestr
End Sub
 

Xeroxs

Advanced Member >PLATINUM<
Ciao, I-Legend, Grazie

Infatti Mi sono accorto che avevo sbagliato un ciclo For, ho riscritto un'altro listato ed ora è funzionante come deve essere
Grazie per lo script e le vari e Note, lo terrò nei miei archivi "lesson"

Posto quanto fatto per farvi capire che ogni Vostro Aiuto mi permette di crescere, non quanto Voi, ma se penso che qualche mese fa non sapevo nemmeno leggerli...
Grazie

Riscritto da capo.

Codice:
Option Explicit
Sub Main()
   Dim r1,r2,ruote(10)
   Dim poste(5)
   Dim Num(10)
   Dim Somma,p1,p2,n1,n2
   Dim es,QE,Clp
   Dim Kunico
   Somma = CInt(InputBox("Ambo somma da ricercare ?",,90))
   QE = CLng(InputBox("Quante estrazioni vuoi analizzare?",,20))
   Clp = CLng(InputBox("Quanti colpi vuoi giocare?",,9))
   For es = EstrazioneFin - QE To EstrazioneFin
      Kunico = 0
      For r1 = 1 To 10
         For p1 = 1 To 4
            For p2 = p1 + 1 To 5
               n1 = Estratto(es,r1,p1)
               n2 = Estratto(es,r1,p2)
               If(n1 + n2) = Somma Then
                  Kunico = Kunico + 1
                  ruote(1) = r1
                  'ruote(2) = r2
                  Num(1) = Somma
                  Num(2) = Vert(Num(1))
               End If
            Next
         Next
      Next
      If Kunico = 1 Then
         poste(1) = 1
         ImpostaGiocata 1,Num,ruote,poste,Clp,1
         Gioca es
      End If
   Next
   ScriviResoconto
End Sub
 

i legend

Premium Member
Ciao ;)
ottimo , capire dove si sbaglia è il primo passo per imparare bene
ma se tu volessi due casi , e giocare l ambata sulle due ruote trovate?
cerca di avere una base sempre il piu flessibile
ciao :)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    lunedì 29 aprile 2024
    Bari
    58
    84
    30
    62
    66
    Cagliari
    45
    68
    85
    44
    01
    Firenze
    76
    52
    03
    22
    16
    Genova
    39
    05
    70
    26
    35
    Milano
    43
    86
    23
    67
    18
    Napoli
    80
    62
    88
    29
    35
    Palermo
    27
    53
    72
    71
    60
    Roma
    52
    15
    16
    24
    85
    Torino
    36
    74
    30
    73
    62
    Venezia
    55
    65
    41
    68
    13
    Nazionale
    62
    27
    48
    69
    78
    Estrazione Simbolotto
    Genova
    43
    06
    20
    12
    29
Alto