Novità

Mente da programmatore

eheh hai scelto la strada piu veloce , io dicevo di fare 10 righe con 10 gradienti diversi :) ahahha vabe è uguale ..
ok , ora facciamo qualche altra modifica

questa struttura fatta cosi è sbagliata anche se funziona lo stesso

Codice:
    Public Structure StrEstrazione
        Dim Ruote() As StrNumeriEstrazione
        Sub DimensionaRuote()
            ReDim Ruote(11)
            For r = 1 To 11
                For e = 1 To 5
                    ReDim Ruote(r).Estratto(e)
                Next
            Next
        End Sub
        Dim Data As StrDataEstrazione
        Dim identifier As Integer
    End Structure


il motivo per cui è sbaglaita è che ridimensioniamo gli estratti per 5 volte e alla fine giustamente viene da 5 elementi , ma in realtà dovremmo dimensionarlo direttamente a 5 senza il ciclo e

inoltre è meglio se andiamo a scrivere una routine DimensionaEstratti dentro la struttura degli estratti in modo da poterla richiamare dentro il ciclo r
fai la modifica e avvertimi ..
Sgamato alla grande ahahaha pensavo sorvolassi ahahah

allora :
Codice:
    Private Sub ButtonDefault_Click(sender As Object, e As EventArgs) Handles ButtonDefault.Click
        Dim i As Integer
        Dim aBackColor1() As Color, aBackColor2() As Color, aBackColor3() As Color, aBackColor4() As Color, aBackColor5() As Color, aBackColor6() As Color, aBackColor7() As Color, aBackColor8() As Color, aBackColor9() As Color, aBackColor10() As Color
        GetArrayColoriGradienti(Color.White, Color.Beige, aBackColor1, 9)
        GetArrayColoriGradienti(Color.White, Color.Gray, aBackColor2, 9)
        GetArrayColoriGradienti(Color.White, Color.LightSkyBlue, aBackColor3, 9)
        GetArrayColoriGradienti(Color.White, Color.Yellow, aBackColor4, 9)

        GetArrayColoriGradienti(Color.White, Color.Orange, aBackColor5, 9)
        GetArrayColoriGradienti(Color.White, Color.Red, aBackColor6, 9)
        GetArrayColoriGradienti(Color.White, Color.Pink, aBackColor7, 9)
        GetArrayColoriGradienti(Color.White, Color.Violet, aBackColor8, 9)
        GetArrayColoriGradienti(Color.White, Color.Blue, aBackColor9, 9)
        GetArrayColoriGradienti(Color.White, Color.Black, aBackColor10, 9)
        For r = 1 To 1
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor1(c), Color.Black)
            Next
        Next
        i = 9
        For r = 2 To 2
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor2(c), Color.Black)
            Next
        Next
        i = 18
        For r = 3 To 3
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor3(c), Color.Black)
            Next
        Next
        i = 27
        For r = 4 To 4
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor4(c), Color.Black)
            Next
        Next
        i = 36
        For r = 5 To 5
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor5(c), Color.Black)
            Next
        Next
        i = 45
        For r = 6 To 6
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor6(c), Color.Black)
            Next
        Next
        i = 54
        For r = 7 To 7
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor7(c), Color.Black)
            Next
        Next
        i = 63
        For r = 8 To 8
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor8(c), Color.Black)
            Next
        Next
        i = 72
        For r = 9 To 9
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor9(c), Color.Black)
            Next
        Next
        i = 81
        For r = 10 To 10
            For c = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor10(c), Color.LightBlue)
            Next
        Next
    End Sub

Codice:
Module ModStructure
    Public Structure StrNomeRS
        Dim Nome As String
        Dim NomeAbbreviato As String
    End Structure

    Public Structure StrNumeriEstrazione
        Dim Estratto() As Integer
        Sub DimensionaEstratti()
            ReDim Estratto(5)
        End Sub
    End Structure


    Public Structure StrDataEstrazione
        Dim Data As Date
        Dim Numero As Integer
        Dim IndiceMensile As Integer
    End Structure

    Public Structure StrEstrazione
        Dim Ruote() As StrNumeriEstrazione
        Sub DimensionaRuote()
            ReDim Ruote(11)
            For r = 1 To 11
                Ruote(r).DimensionaEstratti()
            Next
        End Sub
        Dim Data As StrDataEstrazione
        Dim identifier As Integer
    End Structure


End Module
 
argh .. il metodo lottotom ... replicare le righe con i cicli da x a x ...

prima ti fai un bell'array a 2 dimesioni 10 ,1
poi all'indice x,0 metti il colore di partenza
all'indice x,1 metti il colore finale

successivamente nel ciclo delle righe da 1 a 10 lanci la funzione per ottenere l'array dei gradienti
passando i colori inizsio e fine presi dalla posizione r dell'arrray di cui sopra..
 
Codice:
 Dim aColoriIniFin = New Color(10, 1) {{Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}}

io ho messo i colori tutti uguali dato che è un esempio
 
ok quindi cosi ... ma inserendo dopo la personalizzazione dei colori

Codice:
        Dim i As Integer
        Dim aColoriIniFin = New Color(10, 1) {{Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}}
        Dim aBackColor() As Color
        For k = 1 To 10
            GetArrayColoriGradienti(aColoriIniFin(k, 0), aColoriIniFin(k, 1), aBackColor, 90)
            For x = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor(i), Color.Black)
            Next

        Next
 
qui devi mettere i colori che avevi messo prima in tutti quei cicli a meno che non vuoi fare le righe tutte con lo stesso gradiente


Dim aColoriIniFin = New Color(10, 1) {{Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}}
 
qui devi mettere i colori che avevi messo prima in tutti quei cicli


Dim aColoriIniFin = New Color(10, 1) {{Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}, {Color.White, Color.Black}}
sisi ho scritto il codice premettendo "ma inserendo dopo la personalizzazione dei colori". lo sto facendo :)
 
Codice:
    Private Sub ButtonDefault_Click(sender As Object, e As EventArgs) Handles ButtonDefault.Click
        Dim i As Integer
        Dim aBackColor() As Color
        Dim aColoriIniFin = New Color(9, 1) {{Color.GhostWhite, Color.LightGray}, {Color.LightGray, Color.Gray}, {Color.Gray, Color.LightBlue}, {Color.LightBlue, Color.LightSkyBlue}, {Color.LightSkyBlue, Color.Blue}, {Color.Blue, Color.Pink}, {Color.Pink, Color.Orange}, {Color.Orange, Color.Violet}, {Color.Violet, Color.Red}, {Color.Red, Color.Black}}
        For k = 0 To 9
            GetArrayColoriGradienti(aColoriIniFin(k, 0), aColoriIniFin(k, 1), aBackColor, 9)

            For x = 1 To 9
                i += 1
                CtlSelezionaNumeri1.SetColore(i, aBackColor(x), Color.Green)
            Next
        Next
    End Sub
 
ok dovrebbe andare , invece di fare quelle complicazioni potevi fare l'array da 10 tanto la posizione 0 non la usavi e la potevi impostare anche 0 , 0.

comunque ora spostiamoci su delel modifiche che dobbiamo fare lla nostra struttura estrazioni per favorire la velocità quando scriveremo la routine che fa la statistica

attualmente tu hai la tua struttura estratot cosi (qui manca la sub che fa la dimensione)


Codice:
   Public Structure StrNumeriEstrazione
        Dim Estratto() As Integer
    End Structure


allora primo integer è un numero a 32 bit ed è troppo per memorizzare un numero da 0 a 90 quindi va dichiarato byte
secondoi bisognaaggiungereun membro un altro array che sia pero booleano.
Nella funzione che fa la dimensione Estratto va dimensionato a 5 e lo sappiamo quest'altro membro che io chiamenrei bEstratto va dimensionato a 90

sempre i nquesta struttura va aggiunta una sub alla qule passeremo il numero e lei agiornerà sia l'array Estratot che bEstratto
qquindi scriviamo

Codice:
sub SetNumero ( Numero as byte , Posizione as integer)
qui valorizziamo sia l'array estratto che quello booleano
end sub

il cambio della tipologia da integewr a byte potrebeb darti problermi su altre funzioni , infatit c'è una funzione QuantitaNumeriDiversi in cui pure li dev icambiare da integer a byte.


quando poi leggi le estrazioni , no ndevi settare il numero direttamente come ora ma usare la sub SetNumero.

fammi sapere se è chiaro ..
 
Per quanto riguarda il resto ho fatto tutto ... ma non ho capito bene come valorizzare ... penso sia in questo modo :

Codice:
Module ModStructure
    Public Structure StrNomeRS
        Dim Nome As String
        Dim NomeAbbreviato As String
    End Structure

    Public Structure StrNumeriEstrazione
        Dim Estratto() As Byte
        Dim bEstratto() As Boolean
        Sub DimensionaEstratti()
            ReDim Estratto(5)
        End Sub
        Sub SetNumero(Numero As Byte, Posizione As Integer)
            For x = 1 To UBound(Estratto)
                Estratto(x) = Numero
                bEstratto(x) = Posizione ?????????????????????
            Next
        End Sub
    End Structure


    Public Structure StrDataEstrazione
        Dim Data As Date
        Dim Numero As Integer
        Dim IndiceMensile As Integer
    End Structure

    Public Structure StrEstrazione
        Dim Ruote() As StrNumeriEstrazione
        Sub DimensionaRuote()
            ReDim Ruote(11)
            For r = 1 To 11
                Ruote(r).DimensionaEstratti()
            Next
        End Sub
        Dim Data As StrDataEstrazione
        Dim identifier As Integer
    End Structure


End Module
 
fai cosi la struttura che attualmente si chiama StrNumeriEstrazione falla diventare cosi e cambiagli nome , perche ci servira
Codice:
 Public Structure StrNumeri
        Dim Estratto() As Byte
        Dim bEstratto() As Boolean
        Sub SetNumero(n As Integer, p As Integer)
            Estratto(p) = n
            bEstratto(n) = True
        End Sub
        Sub Dimensiona(p As Integer)
            ReDim Estratto(p)
            ReDim bEstratto(90)
        End Sub
    End Structure

' cambia il tipo nella struttura strEstrazione


quando leggi i numeri dal record del file txt dovrai usare la Sub SetNumero Esposta dalal struttura passando la posizione da 1 a 5 e il numero estratto.
quando lanci la sub Dimensiona devi passargli 5 inquesto caso.
Poi capirai a cosa ci serve ..

appena fatte le modifiche testa se tutto funge come prima

Codice:
'strctEst.Ruote(r).Estratto(e) = Convert.ToInt32(av(i))
strctEst.Ruote(r).SetNumero(Convert.ToInt32(av(i)), e)
 
Quindi :

Codice:
Module ModStructure
    Public Structure StrNomeRS
        Dim Nome As String
        Dim NomeAbbreviato As String
    End Structure

    Public Structure StrNumeri
        Dim Estratto() As Byte
        Dim bEstratto() As Boolean

        Sub SetNumero(Numero As Byte, Posizione As Integer)
            Estratto(Posizione) = Numero
            bEstratto(Numero) = True
        End Sub
        Sub DimensionaEstratti(p As Integer)
            ReDim Estratto(p)
            ReDim bEstratto(90)
        End Sub
    End Structure


    Public Structure StrDataEstrazione
        Dim Data As Date
        Dim Numero As Integer
        Dim IndiceMensile As Integer
    End Structure

    Public Structure StrEstrazione
        Dim Ruote() As StrNumeri
        Sub DimensionaRuote(p As Integer)
            ReDim Ruote(11)
            For r = 1 To 11
                Ruote(r).DimensionaEstratti(p)
            Next
        End Sub
        Dim Data As StrDataEstrazione
        Dim identifier As Integer
    End Structure

Codice:
    Private Function RecordArchivioToStructArchivio(sRecord As String, IndiceMensile As Integer, ByRef strctEst As StrEstrazione) As Boolean
        Dim av() As String = sRecord.Split(";")
        Dim i As Integer, n As Integer

        strctEst.DimensionaRuote(5)

        Try
            If UBound(av) = 57 Then
                strctEst.identifier = Convert.ToInt32(av(0))
                strctEst.Data.IndiceMensile = IndiceMensile
                strctEst.Data.Numero = Convert.ToInt32(av(1))
                strctEst.Data.Data = Convert.ToDateTime(av(2))
                i = 2

                For r As Integer = 1 To 11
                    For e As Integer = 1 To 5
                        i += 1
                        n = Convert.ToInt32(av(i))
                        If IsNumeroValido(n) Then

                            strctEst.Ruote(r).SetNumero(Convert.ToInt32(av(i)), e)

                        Else
                            MessageBox.Show("Numero letto dall'archivio alla riga " & strctEst.identifier.ToString & " non valido", "errore", MessageBoxButtons.OK)
                            Return False
                        End If
                    Next

                Next
                Return True
            Else
                MessageBox.Show("Il record dell'archivio non è conforme", "errore", MessageBoxButtons.OK)
            End If


        Catch ex As Exception
            MessageBox.Show(ex.Message, "Errore", MessageBoxButtons.OK)

        End Try
        Return False
    End Function
 
si , fai le prove e e modifiche che sono necessarie per riaccordare i tipi di dati , dopo che avrai fatto la prova e vierificato che tutto funziona come prima vai nel modulo strutture e aggiungi questa , dopo di che prevedi un menu da qualche parte statistica lunghette
ci sara una finestra con una listview , e un pulsante per scegliere i numeri
non devi gestire niente per ora , metti il form e la listview
poi aggiungi un altro form da chiamare frmSelNumeri e pure qui non devi gestire niente per ora


Codice:
 Public Structure struct_uscita  'serve per memorizzare le uscite passate dopo l'esecuzione della statistica formazione

        Dim IdEstr As Integer
        Dim Ruota As Integer
        Dim aPos() As Boolean

        Dim Ritardo As Integer
        Dim RitardoMax As Integer
        Dim Frequenza As Integer
        Dim Presenze As Integer
        Dim IncrRitMax As Integer


        Sub Dimensiona()
            ReDim aPos(5)
        End Sub
    End Structure

    Public Structure struct_formazione ' definisce una lunghetta da sottoporre all'analisi statistica 
        Dim Inizio As Integer
        Dim Fine As Integer


        Dim Numeri As StrNumeri
        Dim aPosizioni() As Boolean
        Dim aRuote() As Boolean
        Dim Sorte As Integer

        Dim Ritardo As Integer
        Dim RitardoMax As Integer
        Dim Frequenza As Integer
        Dim Presenze As Integer
        Dim IncrRitMax As Integer


        Dim aUscite() As struct_uscita
        Dim UBoundaUscite As Integer
        Dim UBoundaUsciteCur As Integer

        Dim EstrEsam As Integer

        Sub Inizializza(aNumeri() As Integer, aRuoteUsate() As Integer, nSorte As Integer, RangeIni As Integer, RangeFin As Integer, Optional aPos() As Boolean = Nothing)
            Dim qNumeri As Integer = aNumeri.GetUpperBound(0)

            Inizio = RangeIni
            Fine = RangeFin
            Sorte = nSorte

            ReDim aPosizioni(5)
            If IsNothing(aPos) Then
                For k As Integer = 1 To 5
                    aPosizioni(k) = True
                Next
            Else
                For k As Integer = 1 To 5
                    aPosizioni(k) = aPos(k)
                Next
            End If

            ReDim aRuote(11)
            For k As Integer = 1 To aRuoteUsate.GetUpperBound(0)
                aRuote(aRuoteUsate(k)) = True
            Next

            Numeri.Dimensiona(qNumeri)
            For k As Integer = 1 To qNumeri
                Numeri.SetNumero(aNumeri(k), k)
            Next

            Ritardo = 0
            RitardoMax = 0
            Frequenza = 0
            Presenze = 0
            EstrEsam = 0
            IncrRitMax = 0

            UBoundaUscite = 100
            UBoundaUsciteCur = 0
            ReDim aUscite(UBoundaUscite)
        End Sub
        Sub AddUscita(Ritardo As Integer, RitardoMax As Integer, Frequenza As Integer, Presenze As Integer, IncrRitMax As Integer, IdEstr As Integer, Ruota As Integer, Optional aPos() As Boolean = Nothing)

            aUscite(UBoundaUsciteCur).IdEstr = IdEstr
            aUscite(UBoundaUsciteCur).Ritardo = Ritardo
            aUscite(UBoundaUsciteCur).RitardoMax = RitardoMax
            aUscite(UBoundaUsciteCur).Presenze = Presenze
            aUscite(UBoundaUsciteCur).Frequenza = Frequenza
            aUscite(UBoundaUsciteCur).IncrRitMax = IncrRitMax




            aUscite(UBoundaUsciteCur).Ruota = Ruota
            aUscite(UBoundaUsciteCur).Dimensiona()

            If Not IsNothing(aPos) Then
                For e = 1 To 5
                    aUscite(UBoundaUsciteCur).aPos(e) = aPos(e)
                Next
            End If

            UBoundaUsciteCur += 1

            If UBoundaUsciteCur = UBoundaUscite Then
                UBoundaUscite += 100
                ReDim Preserve aUscite(UBoundaUscite)
            End If
        End Sub
        Function GetQuantitaUscite() As Integer
            Return UBoundaUsciteCur - 1
        End Function

        Function GetQuantitaNumeri() As Integer
            Return Numeri.Estratto.GetUpperBound(0)

        End Function
    End Structure
 
Ultima modifica di un moderatore:
il 5 lo potevi passare fisso pure senza parametro perche sappiam oche i nquel caso i numeri sono 5
 
si , fai le prove e e modifiche che sono necessarie per riaccordare i tipi di dati , dopo che avrai fatto la prova e vierificato che tutto funziona come prima vai nel modulo strutture e aggiungi questa , dopo di che prevedi un menu da qualche parte statistica lunghette
ci sara una finestra con una listview , e un pulsante per scegliere i numeri
non devi gestire niente per ora , metti il form e la listview
poi aggiungi un altro form da chiamare frmSelNumeri e pure qui non devi gestire niente per ora


Codice:
 Public Structure struct_uscita  'serve per memorizzare le uscite passate dopo l'esecuzione della statistica formazione

        Dim IdEstr As Integer
        Dim Ruota As Integer
        Dim aPos() As Boolean

        Dim Ritardo As Integer
        Dim RitardoMax As Integer
        Dim Frequenza As Integer
        Dim Presenze As Integer
        Dim IncrRitMax As Integer


        Sub Dimensiona()
            ReDim aPos(5)
        End Sub
    End Structure

    Public Structure struct_formazione ' definisce una lunghetta da sottoporre all'analisi statistica
        Dim Inizio As Integer
        Dim Fine As Integer


        Dim Numeri As StrNumeri
        Dim aPosizioni() As Boolean
        Dim aRuote() As Boolean
        Dim Sorte As Integer

        Dim Ritardo As Integer
        Dim RitardoMax As Integer
        Dim Frequenza As Integer
        Dim Presenze As Integer
        Dim IncrRitMax As Integer


        Dim aUscite() As struct_uscita
        Dim UBoundaUscite As Integer
        Dim UBoundaUsciteCur As Integer

        Dim EstrEsam As Integer

        Sub Inizializza(aNumeri() As Integer, aRuoteUsate() As Integer, nSorte As Integer, RangeIni As Integer, RangeFin As Integer, Optional aPos() As Boolean = Nothing)
            Dim qNumeri As Integer = aNumeri.GetUpperBound(0)

            Inizio = RangeIni
            Fine = RangeFin
            Sorte = nSorte

            ReDim aPosizioni(5)
            If IsNothing(aPos) Then
                For k As Integer = 1 To 5
                    aPosizioni(k) = True
                Next
            Else
                For k As Integer = 1 To 5
                    aPosizioni(k) = aPos(k)
                Next
            End If

            ReDim aRuote(11)
            For k As Integer = 1 To aRuoteUsate.GetUpperBound(0)
                aRuote(aRuoteUsate(k)) = True
            Next

            Numeri.Dimensiona(qNumeri)
            For k As Integer = 1 To qNumeri
                Numeri.SetNumero(aNumeri(k), k)
            Next

            Ritardo = 0
            RitardoMax = 0
            Frequenza = 0
            Presenze = 0
            EstrEsam = 0
            IncrRitMax = 0

            UBoundaUscite = 100
            UBoundaUsciteCur = 0
            ReDim aUscite(UBoundaUscite)
        End Sub
        Sub AddUscita(Ritardo As Integer, RitardoMax As Integer, Frequenza As Integer, Presenze As Integer, IncrRitMax As Integer, IdEstr As Integer, Ruota As Integer, Optional aPos() As Boolean = Nothing)

            aUscite(UBoundaUsciteCur).IdEstr = IdEstr
            aUscite(UBoundaUsciteCur).Ritardo = Ritardo
            aUscite(UBoundaUsciteCur).RitardoMax = RitardoMax
            aUscite(UBoundaUsciteCur).Presenze = Presenze
            aUscite(UBoundaUsciteCur).Frequenza = Frequenza
            aUscite(UBoundaUsciteCur).IncrRitMax = IncrRitMax




            aUscite(UBoundaUsciteCur).Ruota = Ruota
            aUscite(UBoundaUsciteCur).Dimensiona()

            If Not IsNothing(aPos) Then
                For e = 1 To 5
                    aUscite(UBoundaUsciteCur).aPos(e) = aPos(e)
                Next
            End If

            UBoundaUsciteCur += 1

            If UBoundaUsciteCur = UBoundaUscite Then
                UBoundaUscite += 100
                ReDim Preserve aUscite(UBoundaUscite)
            End If
        End Sub
        Function GetQuantitaUscite() As Integer
            Return UBoundaUsciteCur - 1
        End Function

        Function GetQuantitaNumeri() As Integer
            Return Numeri.Estratto.GetUpperBound(0)

        End Function
    End Structure
Ora inizia ad eesermi più chiaro il perchè
 
ok alloradesso al pulsante della prima form che ti ho dett odi aggiungere devi far apparire la finestra per selezioanre i numeri , sempre con il solito gioco del tag.
in questa finestra della selezione numeri devi mettere il controllo per selezionare i numeri e i classsici 2 pulsanti ok e annulla.
ovviamente al load di questo form si devono impostare i colori quidi basta lanciare l'istruzioen che compare anche dall'altra parte dove gia lo hai fatto.
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 11 gennaio 2025
    Bari
    73
    43
    01
    58
    81
    Cagliari
    69
    60
    18
    02
    10
    Firenze
    25
    32
    18
    55
    54
    Genova
    48
    05
    40
    34
    69
    Milano
    10
    07
    70
    44
    79
    Napoli
    11
    89
    01
    34
    80
    Palermo
    37
    80
    82
    44
    77
    Roma
    78
    04
    38
    39
    56
    Torino
    08
    13
    30
    27
    24
    Venezia
    56
    75
    36
    18
    70
    Nazionale
    63
    83
    19
    31
    80
    Estrazione Simbolotto
    Bari
    35
    34
    12
    23
    20
Indietro
Alto