bauman
Junior Member
Un cordiale saluto a tutto il forum, sto cercando di creare un programma per la ricerca di ambo o ambetto a ruota unica in un periodo variabile di estrazioni, di tempo e numero di colpi, provando a creare uno script, ma ancora non riesco a pieno, chiedo un grande aiuto a tutto il forum, ringraziando in anticipo a tutti coloro che daranno una mano
Codice:
Option Explicit
Sub Main
' --- CONFIGURAZIONE GIOCATA E ESTRAZIONE ---
Dim Ruota, numeriGiocati, numeriEstratti
Ruota = "Napoli"
numeriGiocati = Array(10, 25)
numeriEstratti = Array(10, 24, 45, 67, 89) ' Esempio di 5 numeri estratti
' --- VARIABILI DI CALCOLO ---
Dim i, j, K
Dim corrispondenze, esattiCount,viciniCount
Dim numG, numE
Dim amboTrovato, ambettoTrovato
Dim Messaggio
esattiCount = 0
ambettoTrovato = False
' 1. VERIFICA AMBO (Contiamo quanti numeri giocati sono presenti nell'estrazione)
For i = 0 & To UBound(numeriGiocati)
numG = numeriGiocati(i)
For j = 0 To UBound(numeriEstratti)
If numG = numeriEstratti(j) Then
esattiCount = esattiCount + 1
Exit For
End If
Next
Next
If esattiCount >= 2 Then
amboTrovato = True
End If
' 2. VERIFICA AMBETTO (Funziona se si giocano esattamente 2 numeri)
' Regola: 1 numero esatto + 1 numero dell'estrazione che sia +1 o -1 rispetto all'altro giocato
If UBound(numeriGiocati) = 1 And amboTrovato = False Then
Dim g1, g2, ev1, ev2, ev3, ev4
g1 = numeriGiocati(0)
g2 = numeriGiocati(1)
' Calcoliamo i "vicini" gestendo il fuori90 (se applicabile, qui standard +-1)
' Nota: Nel lotto l'1 vicino ha il 90 e il 2. Il 90 ha l'89 e l'1.
Function GetVicini(num)
Dim v(1)
If num = 1 Then
v(0) = 90: v(1) = 2
ElseIf num = 90 Then
v(0) = 89: v(1) = 1
Else
v(0) = num - 1: v(1) = num + 1
End If
GetVicini = v
End Function
Dim v1, v2
v1 = GetVicini(g1)
v2 = GetVicini(g2)
Dim trovatoG1, trovatoG2, trovatoV1, trovatoV2
trovatoG1 = IsInArray(g1, numeriEstratti)
trovatoG2 = IsInArray(g2, numeriEstratti)
trovatoV1 = IsInArray(v1(0), numeriEstratti) Or IsInArray(v1(1), numeriEstratti)
trovatoV2 = IsInArray(v2(0), numeriEstratti) Or IsInArray(v2(1), numeriEstratti)
' Condizione Ambetto: (G1 esatto E un vicino di G2) OPPURE (G2 esatto E un vicino di G1)
If (trovatoG1 And trovatoV2) Or (trovatoG2 And trovatoV1) Then
ambettoTrovato = True
End If
End If
' --- OUTPUT RISULTATO ---
Messaggio = "Ruota analizzata: " & ruota & vbCrLf
Messaggio = Messaggio & "Numeri Giocati: " & Join(numeriGiocati, ", ") & vbCrLf
Messaggio = Messaggio & "Numeri Estratti: " & Join(numeriEstratti, ", ") & vbCrLf & vbCrLf
If amboTrovato Then
**Messaggio = Messaggio & "ESITO: Complimenti, hai fatto AMBO!"**
ElseIf ambettoTrovato Then
**Messaggio = Messaggio & "ESITO: Complimenti, hai fatto AMBETTO!"**
Else
Messaggio = Messaggio & "ESITO: Nessuna vincita (Ambo o Ambetto) su questa ruota."
End If
MsgBox Messaggio, vbInformation, "Verifica Estrazione Lotto"
End Sub
' --- FUNZIONE DI SUPPORTO ---
Function IsInArray(valore, arr)
Dim x
IsInArray = False
For x = 0 To UBound(arr)
If arr(x) = valore Then
IsInArray = True
Exit Function
End If
Next
End Function

