Novità

Condizione Unica

Xeroxs

Advanced Member >PLATINUM<
Buongiorno a Tutti

Ho preparato un piccolo script che rileva i numeri isotopi e creato gioco per ambata, avrei bisogno di apporre una modifica purtroppo non alla mia portata, ovvero ricercare le sole uniche condizioni presenti in una estrazione come ad esempio ieri sera il 34 su Cagliari e Palermo oppure il 3 settembre il 56 su Bari e Palermo, dalla ricerca ho volutamente escludere la Ruota Nazionale.

Qualcuno può aiutarmi, in quanto vorrei applicare questo tipo di ricerca anche ad altre soluzioni per ridurre condizioni per trovare alternative diiverse.

Grazie come sempre

Questo è lo script

Codice:
Sub Main()
   Dim amb(2),posta(1),ruote(10)
   Dim clp,A,B,n1,n2
   posta(1) = 1
   ini = CInt(InputBox("Iiizio?",,9780))
   clp = CInt(InputBox("Colpi di Gioco?",,9))
   fin = EstrazioneFin
   For es = ini To fin
     For r1 = 1 To 10
       For r2 = r1 + 1 To 11
        For Pos = 1 To 5
            n1 = Estratto(es,r1,Pos)
            n2 = Estratto(es,r2,Pos)
            If n2 = n1 Then ' isotopi uguali
               A = DiametraleD(n1)
               B = Diametrale(n1)
               ruote(1) = r1
               ruote(2) = r2
               conta = conta + 1:Scrivi String(90,"=") & " Caso n°" & Format2(conta),1
               Scrivi DataEstrazione(es) & "  " & SiglaRuota(r1) & "  " & StringaEstratti(es,r1) & "  " & Format2(n1) & " in " & Pos & "°Posizione",1
               Scrivi DataEstrazione(es) & "  " & SiglaRuota(r2) & "  " & StringaEstratti(es,r2) & "  " & Format2(n2) & " in " & Pos & "°Posizione",1
               amb(1) = A
               amb(2) = B
               ImpostaGiocata 1,amb,ruote,posta,clp,2
               Gioca es
            End If
        Next
       Next
     Next
   Next
   Scrivi
   ScriviResoconto
End Sub
 
Ciao Xeroxs,

nello script ci sono errori sia per il limite di r1 (che deve essere 9)

che per r2 (che deve essere 10).

Poi usi TROPPE VARIABILI (per contenere 2 numeri)

r1 / r2 / n1 / n2 sono "nomi" che si confondono con r(1) / r(2) ... n(1) / n(2).

Meglio distinguerli meglio.

LuigiB consiglia di anteporre a per gli array / n per i numeri / s per le stringhe ...

davanti al nome della variabile.

Perché così giustamente si sa "con cosa" si ha a "che fare" e "come trattarlo".

Se sono variabili diverse meglio abbiano nomi diversi. A,B, ....N,M ... P...

Se invece sono degli array allora è meglio siano n(1) / n(2) / n(3) ... r(1) / r(2) / r(3).

Questa seconda cosa, non è un errore. Tanto meno, è grave.

Ma se lo script è complesso e le variabili sono molte ...

3 volte molte ... fa si che le cose si confondano oltre il necessario.

Terzo non si capisce cosa voglia dire unica. Cioè:

Cioè se il numero isotopo deve essere presente solo nelle 2 ruote.

Se non ci devono essere altri numeri isotopi.

Oppure ancora una una sovrapposizione di queste due cose ...

Oppure altro ancora.

:)
 
Ultima modifica:
Ciao, Joe, grazie come sempre per i consigli,
Per condizione unica intendo come ad esempio ieri sera 34 isotopi su Cagliari e Palermo unico numero isotopo sul quadro estrazionale, cioè non ci devono essere altri numeri uguali isotopi. Considero poi per il calcolo le due ruote coinvolte dall'isotopia.
 
Per sommi capi e per esempio ...

... potresti contare tutti gli eventuali pronostici presenti.

Se ce ne è uno (solo) lo giochi altrimenti no.

E' anche una buona norma per selezionare le giocate.

Perché moltissimi metodi (quasi tutti) hanno script sbagliati.

Cioè giocano solo l'ultimo dei molti casi.

:)
 
37hcx.jpg


Come vedi (ed è ben visibile se lo script è indentato)

Es ... di "Gioca es" è disallineato da "Es" con cui si controlla il ciclo For-Next.

:)
 
Così come è scritto ...

lo script potrebbe essere simile ad una scommessa da vincere facile-facile.

Del tipo:

"Se ne in un cestino c'è una mela me la mangio ... e vinco".

Ma se il mio avversario mi mette li 10 cestini ed in ognuno c'è una mela da mezzo chilo?

Cioè, se testo un metodo ... solo alla "voglio io" cosa può succedere della mia scommessa ?

Comunque sia, ho corretto alcune cose ... ed iniziato il debug dello script.

Modificato, è questo:

Codice:
Option Explicit
Sub Main()
  Dim Ini,Fin,Es,R1,R2,Pos,Conta,ContaGiocate
  Dim amb(2),posta(1),ruote(10)
  Dim clp,A,B,n1,n2
  posta(1) = 1
  Ini = CInt(InputBox("Iiizio?",,9780))
  clp = CInt(InputBox("Colpi di Gioco?",,9))
  Fin = EstrazioneFin
  For Es = 9810 To 9810
    ContaGiocate = 0
    For R1 = 1 To 9
      For R2 = R1 + 1 To 10
        For Pos = 1 To 5
          n1 = Estratto(Es,R1,Pos)
          n2 = Estratto(Es,R2,Pos)
          If n2 = n1 Then ' isotopi uguali
            ContaGiocate = ContaGiocate + 1
            A = DiametraleD(n1)
            B = Diametrale(n1)
            ruote(1) = R1
            ruote(2) = R2
            Conta = Conta + 1:Scrivi String(90,"=") & " Caso n°" & Format2(Conta),1
            Scrivi DataEstrazione(Es) & "  " & SiglaRuota(R1) & "  " & StringaEstratti(Es,R1) & "  " & Format2(n1) & " in " & Pos & "° Posizione",1
            Scrivi DataEstrazione(Es) & "  " & SiglaRuota(R2) & "  " & StringaEstratti(Es,R2) & "  " & Format2(n2) & " in " & Pos & "° Posizione",1
            amb(1) = A
            amb(2) = B
            ImpostaGiocata 1,amb,ruote,posta,clp,2
            If ContaGiocate > 0 Then
              ColoreTesto 2 : Scrivi String(88,"=") & " Ci sono " & ContaGiocate & " giocate",True : ColoreTesto 0
            End If
            Gioca Es
          End If
        Next
      Next
    Next
  Next
  Scrivi
  ScriviResoconto
End Sub

Come vedi è bloccato ad una estrazione ed in questa trova ben 5 casi da giocare.

Sono come i 5 cestini di cui sopra.

Con questo, come sai ed è evidente che non si può utilizzare "if n1 = n2" per contare i pronostici.

Perché a questo livello di indentazione i pronostici sono tutti validi.

Cioè se presi "uno ad uno" sono "unici" ed andrebbero tutti bene.

:)
 
Ultima modifica:
Ciao, Joe,
Grazie, concordo con Te su quanto dici, e so bene che a volte scartare alcune soluzioni o ipotesi, possono sempre andare bene o male in base alla fortuna.

Ieri quando sono andato a giocare il mio modo di vedere era diverso dai miei amici, il mio si basava su una statistica e metodi convergenti e quando ognuno di Noi ha giocato, ognuno lo ha fatto in maniera diversa... 2 convergenze portavano sulla Nazionale e Cagliari il 50 un e l'altra il 51 che fare io ho giocato anche l'ambetto ed ho preso entrambe le soluzioni, mentre gli altri nulla per le scelte fatte.... Io cerco anche soluzioni diverse in quanto a volte nel quadro estrazionale senza pensar male vedo cose che non mi tornano da un punto di vista puramente statistico.

Certo scegliere le condizioni come nel tuo esempio diventa difficile, ecco perchè punto a trovare condizioni uniche per testare una possibile unicità dai suoi esiti...

come quando alcuni amici mi chiedono di elaborare un sommativo, credendo perchè sono pubblicati con esiti fantastici che possa durare in eterno, e dire che c'e gente che li vende, e grazie a questo programma o modo di testare i loro esiti reali, certo sempre frutto del passato e non del futuro...
 
Ok ...

Il metodo è semplice e la richiesta è esaudibile.

Perciò introducendo la seconda modifica ...

quanto hai chiesto è già praticamente realizzato.

Come anticipato e come indicato all'immagine che ho inserito qualche messaggio #5,

ho spostato Gioca in funzione di "Es" sulla stessa lineal di indentazione del primo

For-Next controllato da "Es".

Facendo cioè si, che per ogni "Es" ... ci sia UN solo Gioca Es.

Poi ho subordinato Gioca es

alla condizione che ci sia ANCHE UN CASO SINGOLO (in questa singola Estrazione) .

Le linee blu separano una estrazione dall'altra.

Sono "una" per ogni data di estrazione.

L'output di questo script dovrà essere ripulito ma per poter controllare è meglio che sia tutto a vista.

Poi, si possono spostare anche le altre linee di output, come quelle in cui si evidenzia il pronostico,

e cancellare quelle ... che risulteranno inutili.

Codice:
Option Explicit
Sub Main()
  Dim Ini,Fin,Es,R1,R2,Pos,Conta,Singoli
  Dim amb(2),posta(1),ruote(10)
  Dim clp,A,B,n1,n2
  posta(1) = 1
  Ini = CInt(InputBox("Inizio?",,9780))
  clp = CInt(InputBox("Colpi di Gioco?",,7))
  Fin = EstrazioneFin
  For Es = Ini To Fin
    Singoli = 0
    For R1 = 1 To 9
      For R2 = R1 + 1 To 10
        For Pos = 1 To 5
          n1 = Estratto(Es,R1,Pos)
          n2 = Estratto(Es,R2,Pos)
          If n2 = n1 Then ' isotopi uguali
            Singoli = Singoli + 1
            A = DiametraleD(n1)
            B = Diametrale(n1)
            ruote(1) = R1
            ruote(2) = R2
            Conta = Conta + 1: Scrivi String(90,"=") & " Caso n°" & Format2(Conta),1
            Scrivi DataEstrazione(Es) & "  " & SiglaRuota(R1) & "  " & StringaEstratti(Es,R1) & "  " & Format2(n1) & " in " & Pos & "° Posizione",1
            Scrivi DataEstrazione(Es) & "  " & SiglaRuota(R2) & "  " & StringaEstratti(Es,R2) & "  " & Format2(n2) & " in " & Pos & "° Posizione",1
            amb(1) = A
            amb(2) = B
            ImpostaGiocata 1,amb,ruote,posta,clp,2
          End If
        Next
      Next
    Next
    If Singoli = 1 Then
      ColoreTesto 2 : Scrivi String(88,"=") & " C'è solo " & Singoli & " caso",True : ColoreTesto 0
      Gioca Es
    End If
    ColoreTesto 1 : Scrivi String(120,"="),True: ColoreTesto 0
  Next
  Scrivi
  ScriviResoconto
End Sub

:)
 
Ultima modifica:
Come anticipato ...

lo script ripulito delle istruzioni di debug e di controllo

e che soddisfa la richiesta di porre in gioco il caso singolo

potrebbe essere più o meno così:

Codice:
Option Explicit
Sub Main()
  Dim Ini,Fin,Es,R1,R2,Pos,Conta,Singoli
  Dim amb(2),posta(1),ruote(2)
  Dim clp,n1,n2
  Dim P,Q
  posta(1) = 1
  Ini = CInt(InputBox("Inizio?",,9780))
  clp = CInt(InputBox("Colpi di Gioco?",,9))
  Fin = EstrazioneFin
  For Es = Ini To Fin
    Singoli = 0
    For R1 = 1 To 9
      For R2 = R1 + 1 To 10
        For Pos = 1 To 5
          n1 = Estratto(Es,R1,Pos)
          n2 = Estratto(Es,R2,Pos)
          If n2 = n1 Then ' isotopi uguali
            Singoli = Singoli + 1
            'Conta = Conta + 1: Scrivi String(90,"=") & " Caso n°" & Format2(Conta),1
            P = DataEstrazione(Es) & "  " & SiglaRuota(R1) & "  " & StringaEstratti(Es,R1) & "  " & Format2(n1) & " in " & Pos & "° Posizione"
            Q = DataEstrazione(Es) & "  " & SiglaRuota(R2) & "  " & StringaEstratti(Es,R2) & "  " & Format2(n2) & " in " & Pos & "° Posizione"
            'A = DiametraleD(n1)
            'B = Diametrale(n1)
            amb(1) = DiametraleD(n1)'ex A
            amb(2) = Diametrale (n1)'ex B
            ruote(1) = R1
            ruote(2) = R2
            ImpostaGiocata 1,amb,ruote,posta,clp,2
          End If
        Next
      Next
    Next
    If Singoli = 1 Then
      'ColoreTesto 2 : Scrivi String(88,"=") & " C'è solo " & Singoli & " caso",True : ColoreTesto 0
      Conta = Conta + 1: Scrivi String(95,"=") & " Caso n°" & FormatSpace (Conta,3,True),1 'Era Format2
      Scrivi P,1
      Scrivi Q,1
      Gioca Es
    End If
    'ColoreTesto 1 : Scrivi String(120,"="),True: ColoreTesto 0
  Next
  Scrivi
  ScriviResoconto
End Sub

Ho lasciato remmate le linee che ho spostato ed una traccia a commento delle ultime modifiche.

:)
 
Ultima modifica:
Ciao Joe,
Che Dire hai la capacità di "vedere oltre", non solo trovi la soluzione ma offri e la completi con idee che completano in modo esaustivo l'idea base, ottima a mio parere la visuale delle altre condizioni presenti così si ha la visione globale delle ricerche fatte.
Grazie per i consigli e le tue osservazioni ne farò buon uso.
Grazie per la soluzione proposta diversa e forse migliore di quanto io stesso potevo immaginare nella visuale di riscontri.
 

Ultima estrazione Lotto

  • Estrazione del lotto
    martedì 14 gennaio 2025
    Bari
    41
    25
    12
    73
    55
    Cagliari
    54
    20
    48
    32
    67
    Firenze
    75
    23
    68
    10
    38
    Genova
    33
    27
    81
    70
    64
    Milano
    68
    01
    64
    86
    87
    Napoli
    47
    75
    45
    10
    21
    Palermo
    55
    86
    33
    53
    70
    Roma
    88
    78
    61
    06
    07
    Torino
    76
    08
    23
    61
    82
    Venezia
    25
    15
    49
    21
    81
    Nazionale
    70
    10
    32
    78
    07
    Estrazione Simbolotto
    Bari
    07
    14
    28
    45
    31
Indietro
Alto