BaffoBlù
Advanced Member >PLATINUM<
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
Una volta fatto vi ritroverete la schermata di spazioscript con tre scritte fisse e un cursore lampeggiante da cui iniziare ad inserire il codice.
Adesso selezionate le 3 scritte e cancellatele come preferite.
Potete cliccare sull’ icona per selezionare tutto e poi premere il tasto “canc” sulla tastiera.
Ora vi ritroverete la schermata di lavoro tutta bianca
Ora richiamatevi lo script che avevate salvato in blocconote precedentemente e andate in Modifica e scegliete “Seleziona tutto”, poi cliccate su “Copia”.
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.
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.
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
---------------------------------------------------------------------------------------------
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" .
-----------------------------------------------------------------------------------
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 ******************************************
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
Una volta fatto vi ritroverete la schermata di spazioscript con tre scritte fisse e un cursore lampeggiante da cui iniziare ad inserire il codice.
Adesso selezionate le 3 scritte e cancellatele come preferite.
Potete cliccare sull’ icona per selezionare tutto e poi premere il tasto “canc” sulla tastiera.
Ora vi ritroverete la schermata di lavoro tutta bianca
Ora richiamatevi lo script che avevate salvato in blocconote precedentemente e andate in Modifica e scegliete “Seleziona tutto”, poi cliccate su “Copia”.
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.
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.
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" .
-----------------------------------------------------------------------------------
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 ******************************************