Novità

Per Tutti

Ciao a Tutti

Ho modificato quello di Joe, ho tolto le visualizzazioni e ho inserito
ImpostaGiocata, poi per poterla provare gli ho messo qualche estrazione
e una ruota e va bene

Lo script

Codice:
Option Explicit
Sub Main
   Dim Es,R1,ini,Fin,Ru(2),Posta(2),Ambo(2)
   Dim A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16
   Dim Re1,Re2,Re3,Re4,Re5,Re6,Re7,Re8,Re9,Re10,Re11,Re12,Re13,Re14,Re15,Re16
   Dim L(16),T(89,90)
   Dim I,K,Z,V,K1,Caso
   Dim Nu(2)
   R1 = BA_
   Ru(1) = R1 : Ru(2) = TT_
   Posta(2) = 1
   A1 = 63 : Re1 = 06
   A2 = 83 : Re2 = 88
   A3 = 35 : Re3 = 72
   A4 = 29 : Re4 = 40
   A5 = 06 : Re5 = 42
   A6 = 72 : Re6 = 70
   A7 = 33 : Re7 = 86
   A8 = 63 : Re8 = 06
   A9 = 06 : Re9 = 63
   A10 = 39 : Re10 = 64
   A11 = 59 : Re11 = 58
   A12 = 63 : Re12 = 06
   A13 = 30 : Re13 = 40
   A14 = 40 : Re14 = 28
   A15 = 10 : Re15 = 10
   A16 = 06 : Re16 = 62
   '  Scrivi " SITUAZIONE INIZIALE " & Chr(13),1
   L(1) = A1 & Re1
   L(2) = A2 & Re2
   L(3) = A3 & Re3
   L(4) = A4 & Re4
   L(5) = A5 & Re5
   L(6) = A6 & Re6
   L(7) = A7 & Re7
   L(8) = A8 & Re8
   L(9) = A9 & Re9
   L(10) = A10 & Re10
   L(11) = A11 & Re11
   L(12) = A12 & Re12
   L(13) = A13 & Re13
   L(14) = A14 & Re14
   L(15) = A15 & Re15
   L(16) = A16 & Re16
   ini = 10660
   Fin = EstrazioneFin
   For Es = ini To Fin
      Caso = Caso + 1
      Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,1
      Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
      Scrivi "  " & SiglaRuota(R1) & " " & StringaEstratti(Es,R1),1,0
      For I = 1 To UBound(L)
         Nu(1) = CInt(Left(L(I),2))
         Nu(2) = CInt(Right(L(I),2))
         If Nu(1) <> Nu(2) Then
            '  Scrivi I & " ) " & StringaNumeri(Nu,,True)
            If T(Minimo(Nu(1),Nu(2)),Massimo(Nu(1),Nu(2))) = False Then K1 = K1 + 1
            T(Minimo(Nu(1),Nu(2)),Massimo(Nu(1),Nu(2))) = True
         Else
            Scrivi 'I & ") Scarto " & StringaNumeri(Nu)
         End If
      Next
      Scrivi
      ' Scrivi "Saranno " & K1,True
      Scrivi
      ' Scrivi "AMBI CORRETTI e ORDINATI " & Chr(13),1
      K = 0
      For V = 1 To 89
         For Z = V + 1 To 90
            If T(V,Z) = True Then
               K = K + 1
               '  Scrivi "Ambo(" & K & ") = """,0,0
               '    Scrivi Format2(V) & "." & Format2(Z) & """"
               Ambo(1) = V : Ambo(2) = Z
               ImpostaGiocata K,Ambo,Ru,Posta,10
               Gioca Es,1
            End If
         Next
      Next
   Next
End Sub

Tolgo le estrazioni, la ruota, la posta, anche la prima parte dove ci sono memorizzati i numeri
perche nell'altro script sono già memorizzati in A1 e Re1 ecc...

Lo lancio e mi esce questo errore

Cattura.PNG

Non sapendo dove intervenire Ho provato a fare qualche modifica
ma ho peggiorato lo script, se necessario posto lo script completo
 
Ultima modifica:
Ciao Salvo,

è quasi sicuramente dovuto ad un errore nel trasferire i numeri tra le varie parti dello script.

Penso tu abbia compreso come funziona quanto ti ho inviato.

Ti avevo proposto di utilizzare solo "la parte centrale" dello script.

Cioè nello stesso istante in cui convalidi l'Ambo effettui la giocata ed avendolo convalidato lo escludi.

Cioè facendo escludi gli ambi già utilizzati ... da ogni possibile convalida eventualmente successiva.

Ergo qualsiasi ambo lo potrai giocare una sola volta (per estrazione).

Però sarà necessario pulire la matrice ad ogni estrazione (con ReDim) riabilitando tutti gl Ambi possibili.

Per tentare una soluzione, al problema di funzionamento da te lamentato, si deve verificare se i dati che hai,

sono interfacciati e/o trasferiti correttamente, prima al convalidarli e giocarli.

Secondo me il problema è di incompatibilità tra le varie organizzazioni dei dati.

Giusto il consiglio di Franco riguardo all'organizzarli meglio.

Per ora ti propongo le modifiche appena suggerite.

Codice:
Option Explicit
Sub Main
   Dim Es,R1,ini,Fin,Ru(2),Posta(2),Ambo(2)
   Dim A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16
   Dim Re1,Re2,Re3,Re4,Re5,Re6,Re7,Re8,Re9,Re10,Re11,Re12,Re13,Re14,Re15,Re16
   Dim L(16)
   Dim I,K,Z,V,K1,Caso
   Dim Nu(2)
   R1 = BA_
   Ru(1) = R1 : Ru(2) = TT_
   Posta(2) = 1
   A1 = 63 : Re1 = 06
   A2 = 83 : Re2 = 88
   A3 = 35 : Re3 = 72
   A4 = 29 : Re4 = 40
   A5 = 06 : Re5 = 42
   A6 = 72 : Re6 = 70
   A7 = 33 : Re7 = 86
   A8 = 63 : Re8 = 06
   A9 = 06 : Re9 = 63
   A10 = 39 : Re10 = 64
   A11 = 59 : Re11 = 58
   A12 = 63 : Re12 = 06
   A13 = 30 : Re13 = 40
   A14 = 40 : Re14 = 28
   A15 = 10 : Re15 = 10
   A16 = 06 : Re16 = 62
   '  Scrivi " SITUAZIONE INIZIALE " & Chr(13),1
   L(1) = A1 & Re1
   L(2) = A2 & Re2
   L(3) = A3 & Re3
   L(4) = A4 & Re4
   L(5) = A5 & Re5
   L(6) = A6 & Re6
   L(7) = A7 & Re7
   L(8) = A8 & Re8
   L(9) = A9 & Re9
   L(10) = A10 & Re10
   L(11) = A11 & Re11
   L(12) = A12 & Re12
   L(13) = A13 & Re13
   L(14) = A14 & Re14
   L(15) = A15 & Re15
   L(16) = A16 & Re16
   ini = 10660
   Fin = EstrazioneFin
   For Es = ini To Fin
   ReDim T(90,90)
   K1 = 0
      Caso = Caso + 1
      Scrivi String(80,"*") & " Estrazione " &(Es) & " caso " & FormattaStringa(Caso,"0000"),1,,,1
      Scrivi(" Estrazione n." & Format2(Es) & " del " & DataEstrazione(Es)),1,0
      Scrivi "  " & SiglaRuota(R1) & " " & StringaEstratti(Es,R1),1,0
      For I = 1 To UBound(L)
         Nu(1) = CInt(Left(L(I),2))
         Nu(2) = CInt(Right(L(I),2))
         If Nu(1) <> Nu(2) Then
            Call OrdinaMatrice(Nu,1)
            If T(Nu(1),Nu(2)) = False Then
               K1 = K1 + 1
               T(Nu(1),Nu(2)) = True
               'Scrivi K & " " & StringaNumeri(Nu,,True)
               ImpostaGiocata K1 ,Nu,Ru,Posta,10
             
            End If
         End If
      
      Next
     If K1 >0 Then Gioca Es,True
   Next
End Sub

:)
 
Ultima modifica:
Ultima modifica:
Si nella primissima versione avevo dimensionato al matrice Ambi (89,90)

Perché è giusto che sia così.

Però se l'Ambo arriva capovolto (tipo 90.10) giustamente compare il messaggio di errore,

Che è relativo alla dimensione del contenitore che risulta troppo piccolo.

Per la giocata, avevi scritto Gioca Es per ogni singolo Ambo.

Io diversamente prima ho raccolto tutti i pronostici ed in ultimo eseguito una sola volta Gioca Es.

Invece delle 10/12/15 ovvero quante giocate possono essere.

In pratica per funzionare correttamente Gioca Es, deve avere la stessa indentazione,

cioè deve essere allo stesso livello e nello stesso ciclo primario del For Es = Ini to Fin / Next.

Altrimenti tutti i cicli più interni con maggiore indentazione escludono alcune delle giocate.

Sino ad arrivare all'ultimo dove se ne effettua una sola come avevi fatto tu.

:)

PS:

Per debuggare lo script e trovare l'errore ho inserito un msgbox.

Codice:
                                 ReDim T(90,90)
                                 ReDim Nu(2)
                                 K1 = 0
                                 For I = 1 To UBound(L)
                                    Nu(1) = CInt(Left(L(I),2))
                                    Nu(2) = CInt(Right(L(I),2))
                                    If Nu(1) <> Nu(2) Then
                                    MsgBox (StringaNumeri (Nu,,True))
                                       Call OrdinaMatrice(Nu,1)

Eseguendo lo script con archivio aggiornato all'Estrazione 10667,

dopo aver confermato il primo lotto di numeri, all'inizio del secondo,

appare un 97 e subito dopo lo script crolla.

:)
 
Ultima modifica:
Ok, devo mettere il fuori90

Ciao Salvo.

No la faccenda è più complicata.

Quando hai dato il primo elenco i numeri erano tutti in doppia cifra.

Eventualmente separati da uno spazio, un punto o quant'altro.

Quindi prendendo le primi 2 e le ultime cifre, della stringa che li rappresenta come Ambo ... funziona.

Se invece la stringa è di 3 cifre e se c'è un 9 centrale,

uno dei 2 numeri diventa maggiore di 90 ... e da questo dipende l'errore.

Dunque con il Fuori90, come sempre, si risolvono "problemi", creati altrove.

1750245735591.png
:)
 
Ok, Joe problema risolto io per il momento ho messo Fuori90 e va bene
un Grazie immenso a te
anche a Cinzia che specialmente nel suo secondo script
mi ha fatto capire perchè si può usare OrdinaMatrice
ed un grazie anche a FrancoBru che mi ha fatto capire
perchè gli ambi si devono invertire
 
Ultima modifica:

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 18 ottobre 2025
    Bari
    23
    03
    54
    34
    30
    Cagliari
    49
    14
    25
    09
    37
    Firenze
    32
    45
    15
    59
    29
    Genova
    03
    66
    68
    90
    85
    Milano
    88
    15
    21
    41
    27
    Napoli
    79
    72
    84
    27
    01
    Palermo
    23
    03
    73
    25
    04
    Roma
    11
    67
    24
    13
    59
    Torino
    72
    59
    84
    75
    26
    Venezia
    81
    08
    18
    76
    25
    Nazionale
    58
    69
    62
    17
    70
    Estrazione Simbolotto
    08
    26
    28
    22
    40
Indietro
Alto