Linguaggio lottoscript

cercare una distanza specifica tra gli estratti

« Older   Newer »
 
  Share  
.
  1.  
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    16

    Status
    Offline
    Buongiorno,guardando nell'indice di l8+_6.0 non ho capito niente del linguaggio...voglio imparare ad arrangiarmi, avete dei tutorial o delle spiegazioni più chiare, magari anche con degli esempi...devo cercare tra tutti gli estratti una distanza specifica...grazie
     
    Top
    .
  2.  
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    16

    Status
    Offline
    Buonasera, come faccio con uno script a cercare 2numeri vicini e non,sulla stessa ruota con distanza 30 e l'isotopo di uno dei due precedenti ? Grazie

    Edited by J-Gio91 - 8/7/2020, 22:09
     
    Top
    .
  3.  
    .
    Avatar

    Advanced Member

    Group
    Moderator
    Posts
    1,600

    Status
    Offline
    Ciao,


    Il linguaggio VbScript è sostanzialmente uguale al Basic.

    Però a quelle che sono le istruzioni classiche del Basic

    sono state aggiunte quelle per la lettura dell'archivio,

    quelle per i calcoli lottologici (Gemello, Cadenza, Ritardo, Frequenza, ecc.)

    e quelle per la simulazione delle giocate (ImpostaGiocata e Gioca e poi ScriviResoconto).

    In quello che hai scritto per esempio ci sono "parole chiave" del Basic che sono altrettante

    Istruzioni già predisposte per gestire quelle che sono le situazioni nel Gioco del Lotto.

    Lo sono ad esempio: Estratto, Posizione, Distanza, Ruota, DataEstrazione ecc.

    È sufficiente organizzare queste istruzioni "eseguibili" dal computer, con logica.

    Ciò che hai descritto, se scritto rispettando questa logica e la sintassi corretta

    si trasforma in linee di comando che il Computer può eseguire.

    Cioè diventano un programma e nel loro insieme sono l'algoritmo risolutore,

    ovvero capace di riprodurre ed eseguire (esattamente e velocemente)

    il metodo, le ricerche ed i calcoli che desideravi riprodurre, controllare, verificare.

    :)

    Edited by J-Gio91 - 25/7/2020, 10:06
     
    Top
    .
  4.  
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    16

    Status
    Offline
    Grazie, vedrò di studiare e ci provo...guardando qualche script già compilato non ho capito niente...
     
    Top
    .
  5.  
    .
    Avatar

    Advanced Member

    Group
    Moderator
    Posts
    1,600

    Status
    Offline
    Nel VB come in ogni altro linguaggio ci sono

    variabili per contenere dei valori

    operatori matematici per le operazioni di confronto e per trattare i testi

    Cicli / Test Condizionali / istruzioni specifiche del lotto ed altro.

    Naturalmente si ...

    per operare al meglio bisogna studiare un pochino.

    Meglio avere un testo di riferimento.

    Dunque lo script in VbScript inizia con

    CODICE
    Sub Main()

    'e finisce con

    End Sub


    Questo è uno script "minimale" che non fa assolutamente nulla ma è uno script "funzionante".

    Le variabili sono come memorie e/o contenitori

    è bene che siano dimensionate con un nome appropriato

    Inizio / Fine / Estrazione / P per la posizione / E per gli Estratti

    N per i Numeri.

    A / B / C / ... K per contare

    X / Y / Z per i valori numerici.

    R per la Ruota ecc ...

    I o Ini per un "Inizio" F o Fin per una "Fine"

    N(1) N(2) N(3) se i numeri sono 3.

    R(1) R(2) R(3) R(4) ... ecc per 4 ruote diverse.

    Il ciclo For / Next per eseguire tante volte operazioni ripetitive scrivendo poche linee di programma.

    Se si assegnano dei valori a delle variabili si possono eseguire calcoli utilizzandole con grandi vantaggi.

    per esempio per non doverli molte volte .... e per evitare errori inevitabili ... e tipici del riscrivere.

    Vediamone un altro grande vantaggio con questo piccolo script:

    CODICE
    Option Explicit
    Sub Main
    Dim A,B
    A = 2
    B = 3
    Scrivi A + B
    Scrivi A + A
    Scrivi A*B
    Scrivi A * 3
    Scrivi (A * A + B) / 3
    End Sub



    E' uno script che eseguito scrive "5" e poi molti altri risultati ...

    Faccio notare che se invece di usare le Variabili A e B per contenere dei valori

    avessimo usato direttamente i valori corrispettivi,

    e se volessimo sapere quali sono i risultati di tutti i calcoli con un valore di A diverso (dal 2 che abbiamo scritto)

    avremmo dovuto inserire, RISCRIVERE QUESTO "NUOVO VALORE" IN TUTTE LE LINEE DEL PROGRAMMA.

    Mente invece usando la variabile A ...

    lo si cambia una sola volta in "A = valore"

    e il computer calcola tutti i risultati con questo nuovo valore.

    I cicli For-Next sono utilissimi per comporre tabelle, per eseguire moltiplicazioni, scandagliare tabelle ed archivi.

    studiare risultati ottenuti in funzione di valori differenti e/o che cambiano ad ogni nuovo passaggio.

    Come per esempio per scorrere le estrazioni in cui leggere gli estratti, contare i passaggi, eseguire calcoli.

    ....

    Per Esempio e per adempiere ad una prima parte della tua richiesta,

    lo script deve leggere un certo numero di estrazioni

    (diciamo le ultime 10 dell'archivio) prendendo gli estratti nelle loro ruote e posizioni

    per eseguire su di essi dei calcoli in maniera ripetitiva.

    Metodica, cioè con un metodo in cui è utile usare il ciclo For-Next.

    Vediamo subito come scrivere il nome di 10 ruote con meno di 10 linee di programma.

    Questo per esempio è un metodo per scrivere 10 nomi di altrettante ruote (in ordine da 1 a 10)

    E' una parte dello script che esaudisce la richiesta.

    Dimostra che eseguendo più volte una sola istruzione con i cicli For/Next

    si possono ottenere "MOLTI risultati" scrivendo "POCHE istruzioni"

    CODICE
    Option Explicit
    Sub Main
    Dim Q,R
    For Q = 1 To 10
    For R = 1 To 10
     Scrivi NomeRuota(R)
    Next
    Scrivi "------------"
    Next
    End Sub


    :)

    Edited by J-Gio91 - 9/7/2020, 11:29
     
    Top
    .
  6.  
    .
    Avatar

    Advanced Member

    Group
    Moderator
    Posts
    1,600

    Status
    Offline
    Visto come con "10 linee" di codice si possono scrivere / leggere / elaborare

    centinaia e migliaia ... di dati ...

    Si tratta di indirizzare il piccolo script all'esplorazione dell'archivio.

    Cioè alla lettura degli estratti che servono per elaborare il metodo.

    Per stabilire un periodo di estrazioni occorre decidere da che numero iniziare e con quale finire.

    Come si fa normalmente (e come fanno molti di altri) chiamo Ini l'inizio, Fin la Fine, Es l' Estrazione

    che di volta in volta, viene elaborata dallo script.

    5 sono le Posizioni "P" come 5 sono gli Estratti E(5).

    CODICE
    Option Explicit
    Sub Main
    Dim Ini,Fin,Es,R,P,E(5)
    Ini = EstrazioneFin - 9
    Fin = EstrazioneFin
    For Es = Ini To Fin
     Scrivi DataEstrazione(Es),True
     For R = 1 To 10
      Scrivi FormatSpace(NomeRuota(R),10),True,False
      For P = 1 To(5)
       E(P) = Format2(Estratto(Es,R,P))
      Next
      Scrivi StringaNumeri(E)
     Next
     Scrivi String(24,"-")
    Next
    End Sub


    Nello script dopo aver descritto e dimensionato le variabili necessarie

    ho inserito un 3° ciclo: For P = 1 To 5

    per leggere le 5 posizioni.

    Si nota "al centro" (nella parte più importante) dello script la parola lottologica Estratto.

    Estratto letto (nell'archivio) indicando il numero di Estrazione, la Ruota, la Posizione.

    Format2 antepone uno zero ai numeri che hanno una sola cifra (non è sempre necessario).

    In sintesi, con questo script, si ha, la lettura della parte più recente (ultima) dell'archivio.

    Nonché la "struttura-portante" che ottiene di estrazione in estrazione gli estratti per i calcoli

    ed in cui inserire le molte condizioni necessarie per completare il metodo.

    :)

    Edited by J-Gio91 - 8/7/2020, 22:41
     
    Top
    .
  7.  
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    16

    Status
    Offline
    Grazie mille per queste 2 risposte, domani ci studio sopra...ora vado a dormire, domani sveglia alle 4:45...grazie grazie e buona serata !
     
    Top
    .
  8.  
    .
    Avatar

    Advanced Member

    Group
    Moderator
    Posts
    1,600

    Status
    Offline
    Abbiamo visto come moltiplicando 10 Estrazioni per 10 Ruote

    otteniamo la possibilità di indirizzare e poi leggere 100 cinquine.

    5 Estratti ognuna e sono raggruppati nel vettore E che ha 5 posti E(5).

    Con ognuna di queste cinquine si formano 10 coppie di numeri.

    10 Ambi Ognuna.

    Dunque lo scopo è quello di ricavare da questi 5 Estratti i 10 Ambi.

    E questo è necessario per controllare se tra questi ci sono le

    “condizioni previste” dal metodo.

    Si tratta di comporre

    E(1) con E(2) poi

    E(1) con E(3) poi

    E(1) Con E(4) poi

    E(1) con E(5) abbinati tutti i 4 numeri diversi dal PRIMO

    E(2) con E(3)

    E(2) con E(4)

    E(2) con E(5) abbinati tutti i 3 numeri diversi dal SECONDO

    E(3) con E(4)

    E(3) con E(5) ed in ultimo

    E(4) con E(5).

    Si vede come nella prima colonna gli indici (o posizioni) vanno da 1 a 4

    Mentre nella seconda colonna iniziano da 2 e vanno fino a 5,

    e contemporaneamente iniziano con un vantaggio di “+1” rispetto

    alla posizione dell’ Estratto che lo precede.

    In script ed in una piccola “prova” (a parte per semplificare la lettura),

    si può verificare l'allineamento tra quanto detto e quanto fa questo minuscolo programma:

    CODICE
    Option Explicit
    Sub Main
     Dim P,Q,E(5)
     E(1) = 1 : E(2) = 2 : E(3) = 3 : E(4) = 4 : E(5) = 5
     For P = 1 To 4
       For Q = P + 1 To 5
         Scrivi E(P) & "." & E(Q)
       Next
     Next
    End Sub


    :)

    Edited by J-Gio91 - 8/7/2020, 22:44
     
    Top
    .
  9.  
    .
    Avatar

    Advanced Member

    Group
    Moderator
    Posts
    1,600

    Status
    Offline
    Buon Giorno a tutte/i.

    Inserendo lo sviluppo combinatorio contenuto nello script

    del messaggio precedente ovvero,

    i 2 cicli For-Next che sviluppano i 10 Ambi a Partire dai 5 Estratti ...

    Si avrebbero in output 1000 Ambi.

    Cioè 10 Ambi, per 10 Ruote, per 10 Estrazioni.

    Per avere visulizzati solo quelli che soddisfano la condizione

    di essere in distanza D (ovvero in distanza D = 30)

    E' sufficiente ed utile predisporre una variabile di nome D

    attribuirgli il valore di 30 ... con D = 30 eppoi nello script, subito prima di:

    Scrivi E(P) & "." & E(Q)

    inserire il TEST CONDIZIONALE

    o più semplicemente la VERIFICA DI UNA CONDIZIONE CHE DEVE ESSERE VERA:


    If Distanza(E(P),E(Q)) = D Then

    Scrivi E(P) & "." & E(Q)

    End If


    In sintesi una soluzione in VBScript potrebbe essere più o meno questa:

    CODICE
    Option Explicit
    Sub Main
     Dim Ini,Fin,Es,R,P,Q,E(5),D
     Ini = EstrazioneFin - 9
     Fin = EstrazioneFin
     D = 30
     For Es = Ini To Fin
       Scrivi DataEstrazione(Es),True
       For R = 1 To 10
         Scrivi FormatSpace(NomeRuota(R),10),True,False
         For P = 1 To(5)
           E(P) = Format2(Estratto(Es,R,P))
         Next
         Scrivi StringaNumeri(E) & " " & Space(1),False,False
         OrdinaMatrice E,False
         For P = 1 To 4
           For Q = P + 1 To 5
             If Distanza(E(P),E(Q)) = D Then
               Scrivi E(P) & "." & E(Q) & Space(1),False,False
             End If
           Next
         Next
         Scrivi ""
       Next
       Scrivi String(43,"-")
     Next
    End Sub


    :)
     
    Top
    .
  10.  
    .
    Avatar

    sean69

    Group
    Administrator
    Posts
    5,897
    Location
    Provincia di Roma..

    Status
    Offline
    Ottimo..Grazie :2hh3czb:
     
    Top
    .
  11.  
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    16

    Status
    Offline
    Buongiorno a tutti/e !
    Sono riuscito solo oggi a mettermi davanti al pc....
    Grazie mille J-Gio91 per la tua "lezione" ed ho capito che è molto difficile come argomento per me...non riesco a seguire tutti i passaggi delle varie variabili e come "ragiona" il programma...in alcuni passaggi ho dovuto togliere il comando "False" altrimenti mi dava errore450, (riga 10 , 14 , 19).
    Stò cercando di capire perchè nel report mi indica anche i numeri che hanno una distanza pari a 60....
     
    Top
    .
  12.  
    .
    Avatar

    Advanced Member

    Group
    Moderator
    Posts
    1,600

    Status
    Offline
    Ciao Franco,

    Riguardo gli errori, essi dipendono dalla versione vecchia di L8.

    Ti consiglio Spaziometria che è un programma totalmente gratuito

    e migliore di L8 specie se questo è in una vecchia versione priva

    delle molte correzioni contenute negli aggiornamenti che ci sono stati.

    La richiesta, non era semplice.

    Ma lo script che t'ho proposto è da considerare "una base" sulla quale

    si possono sviluppare molti atri metodi e ricerche.

    Questo primo script effettua il calcolo della DISTANZA.

    Esso suppone che i numeri siano disposti ordinatamente su un cerchio

    e pertanto non ci può essere una distanza maggiore del diametro 45.

    Dunque la distanza ... non può essere 60. Ma è 30.

    Se vuoi usare per il calcolo la "Differenza" tra il valore degli estratti i calcoli sono diversi.

    I valori non sono più compresi tra 1 e 45 ma tra 1 e 89 (90-1= 89).

    Come dicevo ... in quello script basta cambiare "una formula"

    e lo script cambia completamente, passando ad effettuare (tutta) un altra ricerca.

    Ho inserito un commento al fianco delle modifiche apportate,

    così ti è più facile individuarle e confrontarle con le istruzioni dello script precedente,

    e vedere come avrebbe dovuto funzionare senza gli "a Capo" che ci hai dovuto "mettere".

    CODICE
    Option Explicit
    Sub Main
    Dim Ini,Fin,Es,R,P,Q,E(5),D
    Dim Out 'PER COMPATIBILITA' L8 6
    Ini = EstrazioneFin - 9
    Fin = EstrazioneFin
    D = 30
    For Es = Ini To Fin
      Scrivi DataEstrazione(Es),True
      For R = 1 To 10
        Out = FormatSpace(NomeRuota(R),10)
        For P = 1 To(5)
          E(P) = Format2(Estratto(Es,R,P))
        Next
        Out = Out & StringaNumeri(E) & " " & Space(1)
        OrdinaMatrice E,False
        For P = 1 To 4
          For Q = P + 1 To 5
            If Abs (E(P)-E(Q)) = D Then ' DIFFERENZA ASSOLUTA
              Out = Out &  E(P) & "." & E(Q) & Space(1)
            End If
          Next
        Next
        Scrivi Out ' Tutto assieme in una linea
      Next
      Scrivi String(43,"-")
    Next
    End Sub


    :)
     
    Top
    .
  13.  
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    16

    Status
    Offline
    Buongiorno e grazie, avevo provato a scaricare spaziometria, ma non mi funziona...io ho Windows 10... Può essere che ho letto che funziona solo con WindowsXP ?
     
    Top
    .
  14.  
    .
    Avatar

    Advanced Member

    Group
    Moderator
    Posts
    1,600

    Status
    Offline
    So da altri che funziona con Win10

    e con tutte le versioni intermedie.

    Ma io uso ancora Vista dunque non so darti altri consigli.

    :)
     
    Top
    .
  15.  
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    16

    Status
    Offline
    buonasera a tutti....ho cercato in rete informazioni per installare spaziometria su win 10 senza risultato, se qualcuno avesse una procedura e mi volese aggiornare sarei grato...

    J-Gio91, se adesso volessi trovare il terzo numero mancante della terzina distanza 30 (l'ambo l'ho trovato con il tuo secondo script) quale parte di codice dovrei aggiungere?
    Dovrei in qualche modo verificare tutti gli altri estratti con i 2 numeri rilevati....
    quindi dovrei prendere E(P) ed E(Q) e verificare che tra gli altri estratti ci sia nuovamente la distanza 30
    Credo che dovrei modificare questa parte dello script

    OrdinaMatrice E,False
    For P = 1 To 4
    For Q = P + 1 To 5
    If Abs (E(P)-E(Q)) = D Then ' DIFFERENZA ASSOLUTA
    Out = Out & E(P) & "." & E(Q) & Space(1)
    End If

    Ma per quanto mi sono scervellato non sono arrivato a nessuna conclusione....




    Ho fatto questa modifica per vedere anche la Nazionale:
    For R = 1 To 10 ------> For R = 1 To 12

    Esempio:

    25.06.2020
    Bari 26.50.20.27.64 50.20 26
    Cagliari 52.36.25.37.09
    Firenze 63.31.41.50.07
    Genova 30.48.85.81.68 30
    Milano 80.15.77.29.90
    Napoli 47.67.51.85.80
    Palermo 88.28.46.29.13
    Roma 89.75.74.46.48
    Torino 07.22.08.51.11
    Venezia 65.90.14.71.53
    Tutte
    Nazionale 56.52.31.86.17 56.86


    A Bari c'è l'Ambo 50.20 e il mancante 30 si trova a Genova, mentre sulla Nazionale c'è l'Ambo 56.86 e il mancante 26 a Bari

    GRAZIE
     
    Top
    .
34 replies since 10/6/2020, 09:40   1253 views
  Share  
.