Novità

*** Guida agli Script x Neofiti Totali ***

BaffoBlù

Advanced Member >GOLD<
Questa guida è per neofiti assoluti e non è per niente completa.

Ve la ripropongo come la scrissi allora. Ho solo aggiornato le immagini, l’ho scritta nel 2010 e non ero esperto di script come non lo sono adesso in fondo.

E’ stato solo volontà di condividere e divulgare il fattore script…

Gli scripter più esperti sono invitati ad intervenire lì dove io abbia avuto lacune, dimenticanze,

tenendo presente che è stata scritta 15 anni fa circa, ed apportare miglioramenti e migliori spiegazioni.

Fatelo però come se lo state spiegando a vostra nonna.

Ricordate che questo è per i neofiti totali, che non hanno bisogno di tecnicismi, anzi non saprebbero che farsene…grazie.


Questa guida iniziava con i link a video lezioni che fece LuigiB all’epoca

spazioscript-lez-1
spazioscript-lez-2
spazioscript-lez-3
spazioscript-lez-4
manuale vbscript-spazioscript


ma io non li ho qui con me, se qualcuno ancora le ha le mettesse a disposizione per i neofiti


*********************************************************************************


Innanzitutto vi metterò in grado di copiare dal forum uno script per poi usarlo in spaziometria.


Penso che ormai sappiate tutti copiare un testo qualsiasi su Blocconote.

I script che vedete sul forum non sono altro che testo, quindi copiate questo testo su un file Blocconote e salvatelo con il nome che volete in una cartella a piacere vostro.

Prima di salvare il file con lo script, accertatevi che non ci siano righe vuote sia sopra che sotto

E che non ci sia la spunta di a “capo automatico” nel menù “Formato”.



Apriamo adesso il programma Spaziometria e cliccate sull'icona indicata dalla freccia rossa


1.png


Una volta fatto vi ritroverete la schermata di spazioscript con tre scritte fisse e un cursore lampeggiante da cui iniziare ad inserire il codice.




2.png

Adesso selezionate le 3 scritte e cancellatele come preferite.

Potete cliccare sull’ icona per selezionare tutto e poi premere il tasto “canc” sulla tastiera.

3.png

Ora vi ritroverete la schermata di lavoro tutta bianca

3-2.png


Ora richiamatevi lo script che avevate salvato in blocconote precedentemente e andate in Modifica e scegliete “Seleziona tutto”, poi cliccate su “Copia”.

4.png


5.png



Rientrate nella schermata bianca di spazioscript e fate click sull'icona incolla.

Volendo ci sono altri modi per farlo…





Ecco fatto avete inserito in spazioscript lo script da voi scelto, vedrete che le scritte cambiano

Colore, ma di questo parleremo più avanti.


6.png

7.png
Cliccate adesso sull’icona dell’AutoFormattazioneCodice e poi sul Fulmine e lo script eseguirà tutti i calcoli inseriti in esso.

Di solito con script semplici come questo, il risultato lo avrete in meno di un minuto.

8.png



Se lo script non contiene errori verrà eseguito e vi restituirà a video la schermata con

Il resoconto dei risultati con cui fare le vostre valutazioni.

Questa procedura è valida per tutti gli script che vorrete inserire, a patto che siano compatibili con il programma spaziometria.

**************************************************************

Per iniziare a far pratica, il consiglio che vi do è di comporvi il listato su "Blocco note" molto veloce è pratico.

Un altro consiglio è di comporvi un listato base con le linee di codice che ritroverete quasi sempre in uno script, e di conservarlo pronto all'uso.

In seguito lo modificherete aggiungendo quello che vi serve e comunque modificandolo a vostra discrezione per l'uso che vorrete farvi.

Inizieremo con concetti semplici, senza andare a scomodare termini troppo tecnici, ricordo che la guida è dedicata a chi è completamente a digiuno di script.

La guida seguirà una linea molto semplice senza riempirvi la testa di nozioni che potrete assorbire con il tempo e un poco alla volta. Questa guida vi permetterà perlomeno di cominciare a capire i meccanismi che governano gli script e di

cominciare a comporre i vostri primi script basilari e senza pretese, più in là quando avrete più dimestichezza, riuscirete

magari a fare lo script del metodo che avete ideato per verificare le vostre idee.

Gli utenti più esperti, magari si faranno pure due risate e noteranno che diverse cose mancano, ma lo faccio apposta proprio per non "ingolfare" di nozioni la mente di chi come me è già nonno o potrebbe esserlo.

Come dire un passo alla volta, e non fa niente se saltiamo per il momento qualcosa, ci ritorneremo in seguito, quando faremo gli approfondimenti.

Per adesso farò esempi banalissimi, a volte nemmeno troppo corretti, ma la mira è quella di far capire i concetti anche alla testa più dura fra quelli che leggeranno.

Quindi questa guida si potrebbe intitolare " Insegna alla nonna a scriptare senza farti mandare a C...... ".

Allora, a parte gli scherzi, si comincia :


Questo è uno script fatto da me da un metodo di un altro utente (vivo), lo analizzeremo nei dettagli passo passo.

I calcoli che il metodo esegue sono questi :

Ogni volta che esce il numero 11 a FIRENZE (Condizione da ricercare)

per ambata

1° BA + 2° NA x 1° NAZ ( Calcoli per ricavare l’ambata)

Abbinamenti x ambo

1° BA x 1° RO + 1° RO ( Calcoli per ricavare gli abbinamenti)

4° BA x 60 + 77


Esso ricava un ambata e 2 numeri da abbinare per ambo su Firenze.

I calcoli si possono eseguire in modi diversi, con meno linee di codice.

Io li ho fatti nel modo più semplice possibile anche per evitare confusione.




Lo script del metodo


Codice:
Sub Main()
    ColoreTesto 1
    Scrivi "================ M E T O D O    B Y    V I V O =========",1
    ColoreTesto 0
    Scrivi "============= 1 AMBATA E 2 AMBI SU FIRENZE DOPO SPIA 11 ==============",1
    ColoreTesto 1
    Scrivi "========================F I R E N Z E =========================",1
    ColoreTesto 1
    Scrivi "============     LISTATO BY  B A F F O B L U     ============",1
    ColoreTesto 0
    Scrivi "===========================================================",1
    Scrivi
    ColoreTesto 0
    Dim ruote(1)
    Dim posta(1)
    Dim poste(2)
    Dim n(1)
    Dim am(3)
    posta(1) = 10
    poste(2) = 5
    clp = 9
    ini = EstrazioneFin - 150
    fin = EstrazioneFin
    co = 0
    For es = ini To fin
        Messaggio es
        ruote(1) = 3
        For p = 1 To 5
            a = Estratto(es,3,p)
            ok = 0
            If a = 11 Then
                primodibari = Estratto(es,1,1)
                quartodibari = Estratto(es,1,4)
                secondodinapoli = Estratto(es,6,2)
                primodinazionale = Estratto(es,12,1)
                primodiroma = Estratto(es,8,1)
                o = primodibari + secondodinapoli
                b = Fuori90(o * primodinazionale)
                c = primodibari * primodiroma
                d = Fuori90(c + primodiroma)
                e = quartodibari * 60
                f = Fuori90(e + 77)
                n(1) = b
                am(1) = b
                am(2) = d
                am(3) = f
                ok = 1
            End If
            If ok = 1 Then
                co = co + 1
                Scrivi String(70,"°") & " Caso n°" & co,1
                Scrivi String(70,"°"),1
                ruote(1) = 3
                ImpostaGiocata 1,n,ruote,posta,clp,1
                n(1) = b
                ImpostaGiocata 2,am,ruote,poste,clp,2
                am(1) = b
                am(2) = d
                am(3) = f
                Gioca es
            End If
        Next
    Next
    ScriviResoconto
End Sub




---------------------------------------------------------------------------------------------

Adesso spiegheremo punto per punto ogni singolo passaggio.

Qui sotto trovate la prima linea di codice che troverete all'inizio di ogni script :


Sub Main()

Che significa " Sub Main() " ?

é composta da due parole, "Sub" sta per ( Subroutine ) che vale a dire ( inizio di Un insieme di istruzioni).

"Main" invece sta per ( Principale ).

Quindi " Sub Main() " ----> ( Inizio di un Insieme di istruzioni-principale).

"Sub Main" è come una maniglia attaccata ad un cassetto, voi la tirate è il cassetto si apre, e dentro potete inserire diversi oggetti (in questo caso istruzioni), chiaro il paragone ? bene !


Una volta inseriti tutti gli oggetti (le istruzioni), il cassetto dobbiamo chiuderlo !


Quindi alla fine dello script inseriremo "End Sub" ( Fine dell'insieme di istruzioni).


Chiaroooo !


........" Lei lì in fondo !, si dico a proprio a lei, lasci stare il telefonino ! e stia più attento !"

DRIIIIIINNNNNNNNNNNN DRRRIIIINNNNNNNNNNN DRRIIIIIINNNNNNNNNNNNNNNNNNNNNNN ! (la campanella)

Caspita come passa il tempo, è già finita la prima lezione !

Ci vediamo alla prossima, e mi raccomando non fate assenze,

che vi spedisco diretti dal preside LuigiB, (che quello è famoso per le bacchettate!).


....Si continua passando alla seconda linea di istruzione.

Ricordo che vi farò degli esempi sempre molto terra-terra, evitando il più possibile termini troppo tecnici.

(Lo script è sempre quello portato in esempio precedentemente, e fino alla fine mi riferirò sempre ad esso).

Nella seconda linea è scritto :

Dim ruote(1)

Allora la parola "Dim" è un istruzione che significa "Dimensiona" o "Quantifica".

In questo caso stiamo parlando di ruote del lotto, ma potremmo benissimo parlare di "Cassetti".

Questo esempio dei "cassetti" lo vedrete spesso, proprio perché ( i cassetti contengono qualcosa ).

Per essere precisi stiamo decidendo quanti "cassetti" deve avere il nostro mobile.

In questo caso i "cassetti" - (le ruote) contengono i "calzini" - (i numeri estratti al lotto).

Quindi ritornando all'istruzione "Dim".

Dim ruote(1), ci chiede di decidere con quante "ruote" - (cassetti) far lavorare lo script.

Avete un metodo che lavora su una ruota o piu ruote?, bene !, allora bisogna dirlo allo script che lo vogliamo far lavorare solo su una o più ruote.

Quindi l'istruzione "Dim ruote(1)", non fa altro che dire allo script su quante ruote vogliamo farlo lavorare.

Vedete quel numero tra parentesi dopo la parola ruote ? - c'è scritto ruote(1), che sta a significare che vogliamo far lavorare lo script su una sola ruota !

Se vorremmo lavorare su due ruote, dovremo solo inserire al posto di "1" il numero "2", ruote(2) o ruote(3) e cosi via.

Basta solo cambiare il numero tra parentesi.

In seguito vedremo come decidere la ruota specifica (bari cagliari, etc....).


Avete appena imparato che l'istruzione "Dim" sta per (Dimensiona) o (Quantifica).

Alla prossima istruzione........

Eccoci di ritorno per il proseguimento

Continuando con le istruzioni dello script, la prossima che troviamo è :

Dim posta(1)

Dim poste(2)

Abbiamo già visto l'istruzione "Dim", che ricordo sta per "Dimensiona".

Dim posta(1) : significa che stiamo dimensionando il "contenitore" delle poste in gioco (Ambata,ambo,terno, ecc...).

Lo script da me composto è fatto in modo molto semplice, forse anche con qualche errore grossolano che non pregiudica il

funzionamento, e comunque vi sono modi più complessi per farlo.

In questo caso troviamo Dim posta(1) e Dim poste(2)-(ricordo che il metodo ricava un Ambata e dei numeri per Ambo.

In Dim posta(1), abbiamo inserito (1) per far capire che quel "contenitore" contiene solo una "sorte",

in questo caso io gli ho attribuito la sorte di Ambata (ma lo vedremo dopo).

Invece in Dim poste(2) contiene due sorti, a cui (in seguito) attribuisco la sorte di Ambo.

--------------------------------------------------------------------------------------------

nelle prossime linee di istruzione troviamo :

Dim n(1)

Dim am(3)

Dim n(1) : come già sapete, abbiamo dimensionato un contenitore chiamandolo "n" e la sua capacità posta ad (1).

La "n", potrebbe stare per "Numeri", ma lo potremmo chiamare anche "poroppoppero" che non farebbe differenza,

l'importante e che poi ci ricordiamo di averlo nominato in quella maniera, perché ci servirà in seguito e dovremo richiamarla

così come abbiamo deciso di scriverla.

Quindi Dim n(1), sta per il numero di numeri da porre in gioco (in questo caso l'ambata), se le ambate erano due avremmo

dovuto mettere Dim n(2) per indicare che sono "due" i numeri in gioco.

Dim am(3) : questo è la stessa cosa, lo chiamato "am" solo per distinguerlo, ma lo potevo chiamare come mi pare, ripeto

l'importante e fare gli esatti riferimenti quando poi ci servirà in seguito specificare che cosa vogliamo giocare.

In questo caso Dim am(3) contiene "tre" numeri, che sono la quantità di numeri da porre in gioco solo per Ambo.

Se i calcoli di un metodo ricavano più numeri, aumenteremo di conseguenza il numero del contenitore, tutto qua.

Voglio precisare che se nominiamo una (Dim)-"contenitore", con il nome (fischio) e poi in seguito durante lo script la

richiamiamo chiamandola (fiasco), difficilmente lo script funzionerà. anzi per niente.

Veniamo alle prossime istruzione :

Attenti a fare distinzione tra "posta" e "poste".

posta(1) = 10

poste(2) = 5

posta(1) = 10, richiama la "Dim" Dim posta(1)

In questo caso qui inseriremo la cifra in Euro che vogliamo puntare, "posta(1) = 10" sta a significare che vogliamo puntare

10 euro sull'ambata. Se vogliamo cambiare la cifra, basta sostituire il "10" con un altra cifra. Se volessimo puntare

50 centesimi dovremo scrivere "0.50" e cosi vale per tutte le puntate inferiori ad un euro.

poste(2) = 5 : stesso discorso ma per la sorte di ambo, in cui io ho deciso di puntare 5 euro.

La prossima istruzione è :

clp = 9


"clp" sta per "colpi" (di gioco), potremmo chiamarlo anche "colpi" o di solito gli scripter lo abbreviano con una sola

lettera tipo "k" o comunque vogliate chiamarla, ricordatevi che dovrete farne esatto riferimento in seguito.

clp = 9, quindi significa che vogliamo giocare la previsione per 9 colpi, se vogliamo che la durata del gioco sia

maggiore o minore, basta cambiare il 9 con un altro numero (di colpi).


Alla prossima istruzione...........






La prossime istruzioni sono :

ini = EstrazioneFin - 150

fin = EstrazioneFin

Dove "ini" sta per "inizio" e "fin" sta per "fine", molto chiaro è non lascia adito a dubbi.

Premetto che gli script si accorgono quale sia l'ultima estrazione presente nell'archivio delle estrazioni,

è viene denominata "EstrazioneFin" ossia l'ultima estrazione presente.

ini = EstrazioneFin - 150

"ini" sta per (inizio), ma come vi ho già spiegato prima lo potremmo anche chiamare (arcibaldo) che non farebbe differenza,

spero che il concetto sia chiaro, siamo noi che decidiamo le "parole chiave" a cui attribuire un dato significato.

Abbiamo usato "ini" perché è solo più "significativo" di (arcibaldo), e se proprio vogliamo essere perfettini, potremmo

mettere al posto di "ini", "inizio". Di solito uno scripter esperto non perde tempo a scrivere parole lunghe, quindi usa

gli abbreviativi che sono più significativi. L'importante e lo ripeto, quando usate una "parola chiave", in seguito

dovrete richiamarla nello stesso identico modo, quindi se usate "ini" per quella referenza, dovrete continuare ad usarla per

tutto lo script se richiesta, e questo vale per tutte "le parole" a cui attribuiamo un significato specifico.

ini = EstrazioneFin - 150, non fa altro che decidere l'estrazione d'inizio da cui partire per fare la nostra ricerca.

Lo script guarda l'ultima estrazione presente in archivio e calcola a ritroso 150 estrazioni e da lì parte, ecco perché c'è

quel "-150" dopo l'istruzione "EstrazioneFin".

fin = EstrazioneFin, invece sta a significare : elabora lo script fino all'ultima estrazione presente.

---------------------------------------------------------------------------------------

Di seguito troviamo :

co = 0 : è un contatore dei casi rintracciati, potremmo benissimo scrivere (casi = 0), stesso discorso sull'abbreviazione.

In questo caso il contatore è posto a "0" perché le istruzioni per decidere le condizioni dei casi da trovare non sono ancora

state specificate.


Di seguito troviamo :

For es = ini To fin

Messaggio es

"ini" e "fin" abbiamo già visto che corrispondono all'inizio e fine del gruppo di estrazioni da esaminare.

"es" sta per "estrazioni".

"For" è un istruzione di programmazione che significa "per".

"To" è un istruzione di programmazione che significa "a".

Quindi :

For es = ini To fin, tradotto in parole povere e in Italiano suonerebbe così :

"per"."estrazioni".=.(da)."inizio-estrazioni"."a"."fine-estrazioni".

In pratica abbiamo dato a "es" il significato "dall'inizio alla fine delle estrazioni" prese in esame.

Questo in programmazione è chiamato "ciclo For Next"

Quindi l'istruzione (For es = ini To fin) deve per forza chiudersi con un "Next" che significa "Prossimo".

Questa istruzione "Next" la troveremo alla fine dello script, perchè in mezzo dovremo mettere le condizioni di ricerca del
nostro metodo.

esempio :

For es = ini To fin

(qui vanno tutte le condizioni di ricerca che possono essere anche lunghissime)

Alla fine mettiamo il "Next" per dire allo script che una volta trovato la condizione da noi imposta, di cercare la

"Prossima" nello scorrere delle estrazioni "es". Così fino alla fine delle estrazioni e trovare tutte le condizioni da noi

imposte, fare i calcoli dovuti e restituirci la previsione per quel caso specifico in quella determinata estrazione dove

la condizione si è verificata, fino all'ultima previsione in gioco.

Messaggio es : non fa altro che dirci qual'è l'estrazione in cui si è verificata la condizione.

-----------------------------------------------------------------------------

Prossima istruzione che troviamo è :

ruote(1) = 3

Ricordate che all'inizio avevamo "Dimensionato" la "Dim ruote(1)" ?

Bene adesso non facciamo altro che dire allo script, esattamente quale è la ruota con cui vogliamo lavorare.

ruote(1) = 3 : Il "3" sta per la ruota di (Firenze). la "1" è Bari, la "2" è Cagliari e cosi via, semplice.

---------------------------------------------------------------------------------

Ricordo che le parole chiave di programmazione, sono sempre quelle, non possono essere cambiate.

Sub Main, Dim, For, Next, If, End Sub, ecc.... sono parole chiave.

Invece per quanto riguarda "parole" a cui attribuiamo un dato valore, quasi sempre possono essere cambiate,

nominandole con la parola che preferiamo, come già spiegato in precedenza, ma dato che il tutto è già stato collaudato

da chi è venuto prima di noi, si sono usate quelle abbreviazioni che sono più significative e che nel digitarle

non si perda troppo tempo.

Continuando con la spiegazione del listato....

Qui inizia un altro ciclo "For"-"Next"

For p = 1 To 5

"For", abbiamo già visto il significato, la "p" invece qui è intesa come abbreviazione di "posizione".

For p = 1 To 5

Italianizzando questa linea di istruzione, suonerebbe così :

"Per" .. "posizione"(degli estratti) .. = .. (da) "1" .. "a" .. "5".

"For" .............."p".................=........."1"...."To"..."5".

Non fa altro che dare a "p" il valore della (posizione) degli estratti, se ci fossero stati 6 estratti avremmo dovuto

mettere da 1 a 6 per guardare tutti gli estratti in ogni singola posizione.

-----------------------------------------------------------------------------

di seguito troviamo :

a = Estratto(es,3,p)

Italianizzandola suonerebbe così :

"a"..=.."Estratto"..("estrazione","ruota di Firenze","posizione dell'estratto").

"a"..=.."Estratto"......("es",..........."3",.................."p").

Non fa altro che guardare tutti e 5 gli estratti.

In seguito, (lo vedremo tra un pò), attribuiremo ad "a" il valore di un estratto specifico.

------------------------------------------------------------------------

nel seguire il listato troviamo :

ok = 0

"ok", è un abbreviazione di comodo ma lo potremmo chiamare come ci pare (come già visto).

Il significato di "ok" sta per "condizione" (per poter effettuare la previsione).

Ad "ok" gli abbiamo posto il valore a zero

ok = 0, in questo caso sta a significare che la "condizione" è a zero, ossia non c'è.

Non c'è, perché noi ancora non gli abbiamo detto (allo script) la condizione da trovare.
--------------------------------------------------------------------------------------------

inizia la parte dove decidiamo cosa cercare per trovare la condizione.

Proseguiamo e troviamo :

If a = 11 Then


in questa linea di codice di programmazione troviamo due nuove parole chiave.


"If" è una parola chiave che significa "se"

"Then" è una parola chiave che significa "Allora", (intesa come "allora esegui le istruzioni che seguono").

La "a" dopo "If" abbiamo già visto in precedenza cosa significa : a = Estratto(es,3,p).

Italianizzando la linea suonerebbe così :

"SE"..."a"...=..."11"..."Allora",(fai quello che viene dopo).

"If"..."a"...=..."11".........."THEN".

In questo caso abbiamo dato ad "a" il valore dell'estratto (11).

Infatti il metodo dice ogni volta che esce l'11 a Firenze..........

Questa è la condizione base da trovare per poter elaborare la previsione.


Quindi ritornando a (If a = 11 Then)

Dovremo inserire subito dopo i calcoli per elaborare i numeri da mettere in gioco.

Infatti il metodo ci dice che per trovare l'ambata dobbiamo fare :

1°estratto di Bari + 2°estratto di Napoli, moltiplicato il 1°estratto della Nazionale

Invece per trovare gli abbinamenti per ambo, il metodo ci dice che dobbiamo fare :

Per il primo abbinamento:

1°estratto di BARI x il 1°estratto di ROMA + il 1°estratto di ROMA

Per il secondo abbinamento invece :

4°estratto di BARI x 60 + 77.

Per fare questi calcoli, prima di tutto dovremo isolare questi estratti usciti in diverse ruote

e metterceli da parte per fare i calcoli.

Continuando con il listato troviamo :

primodibari = Estratto(es,1,1)


Qui ci siamo isolati il primo estratto di bari, è notate che lo chiamato apposta "primodibari", proprio per

non fare confusione, ma potevo nominarlo benissimo con una lettera sola tipo "c" o "d", come si fa di solito.

Quindi :

primodibari = Estratto(es,1,1)


Abbiamo già visto un istruzione simile, ma lo ripeto Italianizzando come al solito :

primodibari..=.."Estratto"("estrazione,codicenumericoruota,posizione dell'estratto")

In questo caso

primodibari = Estratto(estrazione,bari,estratto in 1° posizione)

che attribuisce a "primodibari", il numero estratto in prima posizione su bari.

Ricordando che il codice numerico della ruota di bari è "1", e per cagliari è "2", per firenze è "3",

per GE è "4", per MI è "5", per NA è "6", per PA è "7", per RO è "8", per TO è "9", per VE è "10".

Per tutte le ruote il codice numerico è "11", mentre per la Nazionale è "12".

Stabilito ciò con chiarezza assoluta vi invito a guardarvi le prossime 4 righe di codice

e capirle da soli, anche perchè dopo la spiegazione, il tutto è di una semplicità imbarazzante.

quartodibari = Estratto(es,1,4)

secondodinapoli = Estratto(es,6,2)

primodinazionale = Estratto(es,12,1)

primodiroma = Estratto(es,8,1)

------------------------------------------------------------------------------------------

A questo punto ci siamo isolati e ricavati i numeri che ci servono per fare i calcoli

Ricordo che i segni per le 4 operazioni comuni sono + - * /


Quindi il metodo ci dice che per trovare l'ambata dobbiamo fare :

1°estratto di Bari + 2°estratto di Napoli. il risultato va moltiplicato il 1°estratto della Nazionale

Facciamo i calcoli adesso :

o = primodibari + secondodinapoli

Il risultato l'ho chiamato "o" per comodità, e la somma che effettua mi sembra chiarissima e che

il risultato sia superiore o inferiore a 90, in questo caso non ci interessa.

Il prossimo calcolo :

b = Fuori90(o * primodinazionale)

Qui troviamo l'istruzione "Fuori90", e ogni volta che dovrete fare il fuori90 di un numero o un calcolo, dovrete

sempre scriverlo così : Fuori90(numero o calcolo finale a cui applicare la regola).

Quindi "b" sarà L'Ambata.

--------------------------------------------

Adesso i calcolo per gli abbinamenti

Per il primo abbinamento:

1°estratto di BARI x il 1°estratto di ROMA + il 1°estratto di ROMA

Per il secondo abbinamento invece :

4°estratto di BARI x 60 + 77.

--------------------------------------------

Ormai sapete come funziona il meccanismo, e trovo superfluo fare ulteriori spiegazioni.


Quindi,

Tornando alle linee di codice dello script :


c = primodibari * primodiroma


d = Fuori90(c + primodiroma)


con "d" ci siamo ricavati il primo abbinamento

--------------------------------------------------

e = quartodibari * 60

f = Fuori90(e + 77)


Con "f" ci siamo trovati il secondo abbinamento.

-------------------------------------------------------------------------------------

Adesso fatto i calcoli dobbiamo (definire) nello specifico i numeri da giocare

Vi ricordate all'inizio avevamo messo queste due "Dim" ?

Dim n(1)-----(può contenere un solo numero)

Dim am(3)----(può contenere massimo 3 numeri)

Bene, ricordato ciò, passiamo alle altre linee dello script.

------------------------------------------------------------------------------------

n(1) = b

Qui vogliamo che a "n(1)" sia attribuito il valore di "b", che è l'ambata.

invece per "am(3)" che può contenere fino a tre valori numerici, potremo avere tre "am" con all'interno

un singolo valore numerico, quindi avremo am(1), am(2), am(3), con all'interno un singolo valore.

Quindi :

am(1) = b

Che è sempre l'ambata

am(2) = d

che è il primo abbinamento

am(3) = f

che è il secondo abbinamento

--------------------------------------------------------------------

Adesso che tutte le condizioni sono state trovate e i calcoli per ricavare la previsione effettuati

Si potrà mettere che la condizione necessaria c'è.

Quindi la prossima linea che incontriamo nello script è

ok = 1

Mettendo "1", sta a significare che la condizione adesso c'è.

(andate a rivedervi il passaggio di quando ad "ok" abbiamo messo il valore "0".

--------------------------------------------------------------------------------


Di seguito troviamo :


End If

Che va a chiudere la "If", (perché non più necessaria) che avevamo messo, quando avevamo aperto con


If a = 11 Then (ve la ricordate ?)

Serviva per trovare le condizioni necessarie, una volta trovate tutte le condizioni, bisogna chiudere l'istruzione,

perchè non ha più niente da trovare e comunque ci darebbe errore se non chiudessimo la "If", con "End If".

A questo punto troviamo :

If ok = 1 Then

Devo spiegarne il significato ? (che comunque trovate se leggete con attenzione).

########################################################################

vediamo adesso la linea :

co = co + 1

abbiamo gia visto questa istruzione, che non fa altro che aggiungere all'elaborazione il prossimo caso in sequenza
se c'è.
-----------------------------------------------------------

troviamo di seguito :

Scrivi String(70,"°") & " Caso n°" & co,1

Scrivi String(70,"°"),1


la parola "Scrivi" mi sembra superfluo spiegarne il significato

La parola "String" sta per "stringa", (di caratteri)

(70,"°") sta a significare 70 volte il carattere racchiuso nelle virgolette

"&" sta per "And" (in Inglese), e in questo caso sta per ( "e" anche questo che segue)

"co" rappresenta il numero dei casi esaminati

",1" sta a significare di scrivere in Grassetto, se mettessimo "0", scriverebbe caratteri normali.

Quindi Scrivi String(70,"°") & " Caso n°" & co,1 - Italianizzandola suonerebbe così :


Scrivi serie di caratteri(lunga 70 caratteri "mettici questo carattere")....... <(continua in seconda riga)>

e anche scrivi "caso n°" e anche scrivi (il numero dei casi progressivo) in Grassetto.

----------------------------------------------------------------------------------------------------

Dopo troviamo :

ruote(1) = 3

Qui abbiamo riconfermato la ruota di gioco

-------------------------------------------------------

La prossima è :

ImpostaGiocata 1,n,ruote,posta,clp,1

n(1) = b

Ricordo che il metodo ricava un ambata e dei numeri per ambo, quindi dobbiamo diversificare le giocate, tipo la 1, la 2, ecc.


L'istruzione ImpostaGiocata 1......è la prima giocata che effettueremo

"n" che se vi ricordate L'abbiamo dimensionata a (1) all'inizio con "Dim n(1)" e può contenere un solo numero (l'ambata).

"ruote" lo abbiamo già specificato la ruota in gioco, e qui non facciamo altro che richiamarla

"posta" La "Dim" iniziale l'abbiamo impostata a (1) ricordate ? e abbiamo anche specificato quanto puntare !,

questa istruzione non fa altro che richiamare quanto da noi specificato.

"clp" sono i colpi di gioco, mi sembra superfluo spiegarlo un altra volta.

"1" indica all'elaborazione della previsione di fermasi al primo esito raggiunto

n(1) = b .... non è altro che una conferma che l'ambata è "b" che a sua volta rientra nella "Dim" (n).

-----------------------------------------------------------------------------------
Stesso discorso per la seconda giocata (quella per ambo)

Guardatevi le "Dim" che abbiamo specificato in precedenza

ImpostaGiocata 2,am,ruote,poste,clp,2

am(1) = b

am(2) = d

am(3) = f

Il risultato è una terzina da giocare per ambo sulla ruota specificata.
-----------------------------------------------------------------------------------

di seguito nello script troviamo l'istruzione :

Gioca es

Che sta per "Gioca" la previsione dopo l'estrazione con la condizione ricercata.
-----------------------------------------------------------------------------------

Adesso dobbiamo chiudere o confermare le procedure aperte durante lo script, e di seguito troviamo :

End If

Next

Next


procedure già viste in precedenza

-------------------------------------------------------

Quasi alla fine troviamo :

ScriviResoconto

Che stampa a video tutto quello che abbiamo richiesto allo script restituendoci i risultati delle previsioni e il

loro andamento durante il periodo analizzato.

Alla fine dello script mettiamo :

End Sub



##########################################################################################

##########################################################################################

##########################################################################################

##########################################################################################

*********************************** F I N E ******************************************
 

Acquafresca

Senior Member
Grazie Baffo per il contributo che ci stai dando a tutti quelli come me che di script non ne sa nulla ,adesso con questa tua guida un pò di curiosità di capirci qualcosa mi viene.
 

salvo14

Super Member >PLATINUM<
Grazie Baffoblù le tue spiegazioni sono molto chiare ed esaustive, ne farò tesoro. Ti auguro una buona giornata.
 

salvo14

Super Member >PLATINUM<
Scusami se ti disturbo, mi potresti indicare la formula per fare la figura in un Script?
Esempio: fare la figura del 1° di Bari e ogni volta che è 9 sviluppare la previsione con dei numeri a mia scelta. Grazie
 

joe

Advanced Member >PLATINUM PLUS<
Un saluto a Baffoblu,

con la richiesta della concessione poter aggiungere di alcune piccole annotazioni.

LE VARIABILI sono equivalenti alle ETICHETTE appiccicate sui vari cassetti.

Dunque è più che giusto che esse ne descrivano, il contenuto.

SONO ALTRETTANTE MEMORIE alle quali assegniamo dei valori o contenuti.

Se scriviamo ad esempio: Colpi = 5 il "Cassetto" o la "Variabile" (di nome) "Colpi" conterrà il valore 5.

Colpi E' UNA MEMORIA che conserva questo valore ... 5 ... PER TUTTA LA DURATA DELLO SCRIPT.

Dunque in OGNI momento ed in ogni istruzione successiva all'assegnazione (fatta con il simbolo =)

potremo usare la varabile "Colpi" per indicare che "vogliamo" che essi siano "5".

Il vantaggio di questo consiste nel fatto che se si cambia il valore numerico

(che da 5 può essere cambiato in 3 o 10 o 4 o 13 o con qualsiasi numero (ragionevole))

da quel momento in poi tutte le volte che si era utilizzata la variabile Colpi ...

essa verrà utilizzata con questo nuovo valore che ad essa si è attribuito.

SENZA DOVER andare a sostituire il "5" precedentemente scritto "linea per linea" in ogni parte dello script,

Senza doverlo cambiare TUTT LE VOLTE / VOLTA PER VOLTA / OVUNQUE lo si era utilizzato.

Altra cosetta: Spaziometria può utilizzare BA_ nelle veci di Bari o del numero 1 (essendo la prima Ruota).

Così come TO_ nelle veci di Torino o del numero 9 in rappresentanza della nona Ruota.

Dunque l'istruzione: Estratto (Estrazione , Ruota , Posizione) può diventare Estratto ( Es , TO_ , 5 ),

che il Basic interpreterà come Leggi il 5° Estratto di Torino (dell' Estrazione Es ).

Per chi è poco avvezzo a ricordare "il numero" della Ruota ... la sua "Sigla" è più facile da leggere

ed è meno facile da scambiare (per sbaglio) con quella di altre Ruote.

:) Buona giornata a tutte/i.
 

joe

Advanced Member >PLATINUM PLUS<
Scusami se ti disturbo, mi potresti indicare la formula per fare la figura in un Script?
Esempio: fare la figura del 1° di Bari e ogni volta che è 9 sviluppare la previsione con dei numeri a mia scelta. Grazie

If Figura ( Estratto ( Estrazione , BA_ , 1 ) ) = 9 Then

'la previsione con dei numeri a mia scelta

End If
 

BaffoBlù

Advanced Member >GOLD<
If Figura ( Estratto ( Estrazione , BA_ , 1 ) ) = 9 Then

'la previsione con dei numeri a mia scelta

End If
Grazie Joe, il tuo apporto sarà prezioso per chi si affaccia agli script.

Per amor di conoscenza, potresti far vedere come facevamo quando non esistevano le funzioni già pronte?

Io dovrei andarmele a cercare perché a memoria non mi ricordo quasi più niente degli script

Se puoi fa vedere la costruzione dell'algoritmo per ricavare la figura che si chiedeva.

grazie

Ps: chiunque può intervenire, questa guida non è completa come ho già scritto, e in fondo è fatta da un principiante
nel fattore script.
 

joe

Advanced Member >PLATINUM PLUS<
Grazie Joe, il tuo apporto sarà prezioso per chi si affaccia agli script.

Per amor di conoscenza, potresti far vedere come facevamo quando non esistevano le funzioni già pronte?

Io dovrei andarmele a cercare perché a memoria non mi ricordo quasi più niente degli script

Se puoi fa vedere la costruzione dell'algoritmo per ricavare la figura che si chiedeva.

grazie

Ps: chiunque può intervenire, questa guida non è completa come ho già scritto, e in fondo è fatta da un principiante
nel fattore script.

Ok ...

Anch'io non ho a memoria ... tutto.

Costruisco di volta in volta quello che mi serve.

Questo script "aggiunge" una Funzione la hoc "Fg" per calcolare la Figura del numero.

E' utile soprattutto per imparare come si fa per aggiungere calcoli (in questo caso quello della Figura)

qualora questi non fossero effettuati da una delle molte "Funzioni" già a corredo del programma.

In pratica dimostra come è possibile aggiungere "uno schema di calcolo"

che poi potrà essere richiamato tutte le volte che si vuole.

Codice:
Option Explicit
Sub Main
'Esempio di Funzione per il calcolo della Figura
'Script By Joe
   Dim N
   For N = 1 To 90
      Scrivi N & " Figura ",0,0
      Scrivi Fg(N),1,,,2
   Next
End Sub

Function Fg(N)
   Dim F
   If N Mod 9 = 0 Then
      F = 9
   Else
      F = N Mod 9  ' Resto della divisione
   End If
   Fg = F
End Function
 
Ultima modifica:

BaffoBlù

Advanced Member >GOLD<
Scusami se ti disturbo, mi potresti indicare la formula per fare la figura in un Script?
Esempio: fare la figura del 1° di Bari e ogni volta che è 9 sviluppare la previsione con dei numeri a mia scelta. Grazie
ciao, vedi, avevi chiesto la "formula", ma joe ha messo direttamente la funzione che fu creata appositamente per gli script.

Oltre a leggere tutto quello che ha scritto joe, puoi osservare come la funzione è stata creata entrando nello specifico dell'algoritmo.

una volta erano poche le funzioni pronte e se volevi fare qualcosa di particolare dovevi arzigogolare con diverse linee di codice.

Anche adesso se la cosa è molto intricata, non esiste funzione, va creata da zero.

salutiamo Joe che è stato gentilissimo a mettersi a disposizione
 

salvo14

Super Member >PLATINUM<
ciao, vedi, avevi chiesto la "formula", ma joe ha messo direttamente la funzione che fu creata appositamente per gli script.

Oltre a leggere tutto quello che ha scritto joe, puoi osservare come la funzione è stata creata entrando nello specifico dell'algoritmo.

una volta erano poche le funzioni pronte e se volevi fare qualcosa di particolare dovevi arzigogolare con diverse linee di codice.

Anche adesso se la cosa è molto intricata, non esiste funzione, va creata da zero.

salutiamo Joe che è stato gentilissimo a mettersi a disposizione
Grazie infinite a tutti e due. Buona giornata.
 

adeleadele

Advanced Member >GOLD<
Grazie poi me lo leggo anzi che riesco a cancellare gli script inutili.Ma ad una certa età ciò che non si è appreso da giovani viene difficile elabolarlo.
 

zagort

Super Member >GOLD<
Sub Main
Dim Numero,Pos,Poste(10),Ruota(12)
Dim Ambo1(2),Ambo2(2),Ambo3(2),Ambo4(2),Ambo5(2),Ambo6(2),Ambo7(2),Ambo8(2),Ambo9(2),Ambo10(2),Ambo11(2),Ambo12(2)
Dim flagProg,Annetto,Mesetto,es,estr
TestoInBandaPassante "Metodo di BAFFOBLU' **** 12 Ambi ****",1,3,1
Scrivi
Poste(2) = 1 'Per ambo
Annetto = CInt(InputBox("Quale anno vuoi controllare?","Anno",2023))
'ab = CInt(InputBox("Quante estrazioni vuoi controllare?","Check",300))
Fine = EstrazioneFin
Inizio = EstrazioneFin - 3000
k = 12
'---------- Imposta Ambi ----------
Ambo1(1) = 14
Ambo1(2) = 15
Ambo2(1) = 08
Ambo2(2) = 17
Ambo3(1) = 11
Ambo3(2) = 56
Ambo4(1) = 37
Ambo4(2) = 88
Ambo5(1) = 49
Ambo5(2) = 66
Ambo6(1) = 33
Ambo6(2) = 66
Ambo7(1) = 66
Ambo7(2) = 74
Ambo8(1) = 54
Ambo8(2) = 88
Ambo9(1) = 66
Ambo9(2) = 86
Ambo10(1) = 36
Ambo10(2) = 84
Ambo11(1) = 24
Ambo11(2) = 66
Ambo12(1) = 08
Ambo12(2) = 64
'-------------------------------------------
For es = Inizio To Fine
AvanzamentoElab Inizio,Fine,es
Messaggio es
Mesetto = Mese(es)
If((Anno(es) = Annetto) And(IndiceAnnuale(es) = 1)) Then
Numero = Estratto(es,1,1)
End If
If(Anno(es) = Annetto And Mesetto > 1) Then
r = Mesetto + 1
If r <= 9 Then
If IsNumeroPresenteInEstrazione(es,r,Numero,Pos) Then
casi = casi + 1
Call Scrivi(String(77,"-") & "> CASO N°" & Format2(casi) & " ",- 1,,,1,2)
Scrivi
Scrivi"PRIMO NUMERO DELL'ANNO " &(Anno(es) & " NEL MESE DI GENNAIO IN 1°POS.SU BA E'IL NUM: " & Numero),True,True,2,4,3
Call Scrivi("OK:IL NUMERO " & Numero & " RINTRACCIATO NEL MESE DI -" &(Mese(es) & "- IL " & DataEstrazione(es) & " SU " & SiglaRuota(r) & " IN " & Pos) & "° POS.",True,True,1,5,3)
Scrivi
Call Scrivi(DataEstrazione(es) & " " & SiglaRuota(r) & " " & StringaEstratti(es,r) & " NUMERO " & Numero & " In " & Pos & "° POS.",- 1,,,2,3)
Call Scrivi(String(40," ") & "** AMBI IN GIOCO **",- 1,,,2,5)
Scrivi
Ruota(1) = BA_ 'la prima ruota di gioco é sempre BA
Ruota(2) = r
ImpostaGiocata 1,Ambo1,Ruota,Poste,k,2
ImpostaGiocata 2,Ambo2,Ruota,Poste,k,2
ImpostaGiocata 3,Ambo3,Ruota,Poste,k,2
ImpostaGiocata 4,Ambo4,Ruota,Poste,k,2
ImpostaGiocata 5,Ambo5,Ruota,Poste,k,2
ImpostaGiocata 6,Ambo6,Ruota,Poste,k,2
ImpostaGiocata 7,Ambo7,Ruota,Poste,k,2
ImpostaGiocata 8,Ambo8,Ruota,Poste,k,2
ImpostaGiocata 9,Ambo9,Ruota,Poste,k,2
ImpostaGiocata 10,Ambo10,Ruota,Poste,k,2
ImpostaGiocata 11,Ambo11,Ruota,Poste,k,2
ImpostaGiocata 12,Ambo12,Ruota,Poste,k,2
Gioca es,1,,1
Scrivi
Scrivi " Spesa giocata..... " & GetSpesa(True)
Scrivi " Totale vincita....." & GetVincita(True)
Scrivi " Totale utile......." & GetGuadagno(True)
ColoreTesto 0
Call Scrivi(String(42,"=") & " ",- 1,,,1,2)
Call Scrivi("Casi Rilevati " & CInt(casi) & " ",- 1,,,2,2)
Call ScriviResoconto(,False)
Scrivi
Exit Sub
End If
End If
End If
Next
Call Scrivi(String(42,"=") & " ",- 1,,,1,2)
Call Scrivi("Casi Rilevati " & CInt(casi) & " ",- 1,,,2,2)
Call ScriviResoconto(,False)
End Sub

a prima vista sembra di facile attuazione,chiedo a joe o a chi ne è capace,è possibile modificare il listato fermo restante di come è implementato e fargli fare la ricerca in maniera continua, e quindi non fermarsi di volta in volta al singolo anno?
 

e1990

Member
Ciao secondo il mio punto di vista è sufficiente cambiare anno allo script..... (Annetto = CInt(InputBox("Quale anno vuoi controllare?","Anno",2023))
 

zagort

Super Member >GOLD<
Ciao secondo il mio punto di vista è sufficiente cambiare anno allo script..... (Annetto = CInt(InputBox("Quale anno vuoi controllare?","Anno",2023))
se intendi dire di cambiare l anno,proprio questo non volevo,premetto che con spaziometria non so cosa sia successo digidando 2024 non ho nessuno riscontro,tralasciando il discorso programma, l ho rifatto con la ricerca riferita a 15 anni ma purtroppo ottengo tutte le previsioni dopo la spiata compreso tutti i mesi (limitando i danni ricerca solo mese di febbraio) serza avere l interruzione come proposto da baffo , mi servirebbe la stessa funzione prevista dal listato; Exit Sub, ma che mi permetta di visualizzare anche gli anni successivi.
cmq il metodo è spiegato su questo 3d
 
Ultima modifica:

Cinzia27

Premium Member
Ciao, Baffoblù.
E' molto bello quello che tu fai di trasmettere le tue conoscenze lottistiche, tra le altre
la tua abilità negli script.
Grazie
 

lino62

Junior Member
Ciao e grazie. Perchè ottengo sempre errori nelle variabili tipo clp,ini,fin,co,es,ok etc.etc..
Vedo che questa cosa non viene detta, quindi immagino che c'è qualcosa che non va nel mio programma.
Cioè tipo ora sto facendo il run del metodo ed ottengo:
Errore script! 500-Variabile non definita: 'primodibari' Linea.........
è forse dovuto a qualche file mancate del vbscript? Come risolvere?

grazie mille
 

BaffoBlù

Advanced Member >GOLD<
Ciao e grazie. Perchè ottengo sempre errori nelle variabili tipo clp,ini,fin,co,es,ok etc.etc..
Vedo che questa cosa non viene detta, quindi immagino che c'è qualcosa che non va nel mio programma.
Cioè tipo ora sto facendo il run del metodo ed ottengo:
Errore script! 500-Variabile non definita: 'primodibari' Linea.........
è forse dovuto a qualche file mancate del vbscript? Come risolvere?

grazie mille
se metti lo script forse ti si può aiutare.

Forse Option Explicit che ti blocca...

così come la metti ci vuole la palla di cristallo...
 

joe

Advanced Member >PLATINUM PLUS<
se metti lo script forse ti si può aiutare.

Forse Option Explicit che ti blocca...

così come la metti ci vuole la palla di cristallo...

È giusta la deduzione o se vogliamo la lettura fatta con la sfera di cristallo.

O cancellare Option Explicit presente nella prima linea

O dimensionare le variabili utilizzate.

:)
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 27 aprile 2024
    Bari
    02
    74
    34
    72
    78
    Cagliari
    60
    62
    43
    58
    38
    Firenze
    88
    70
    85
    38
    50
    Genova
    18
    61
    70
    08
    80
    Milano
    85
    81
    16
    03
    26
    Napoli
    34
    31
    01
    41
    51
    Palermo
    52
    59
    54
    35
    05
    Roma
    34
    83
    23
    67
    61
    Torino
    86
    59
    61
    62
    48
    Venezia
    69
    50
    40
    05
    79
    Nazionale
    31
    30
    85
    45
    67
    Estrazione Simbolotto
    Genova
    37
    02
    21
    34
    13

Ultimi Messaggi

Alto