'>>>>>>>>>>>>>>>>by  MAGOO

'>>>>>>>>>>>>>>>>Ho realizzato questa paginetta per mio utilizzo

'>>>>>>>>>>>>>>>>BAFFOBLU' ha fatto un bel lavoro,  per facilitarMI  la comprensione delle sue spiegazioni

'>>>>>>>>>>>>>>>>le ho inserite di seguito al codice, in modo da avere sempre visibili comandi e spiegazioni

'>>>>>>>>>>>>>>>>spero che questo possa essere utile anche ad altri che come me sono duri di comprendonio

'>>>>>>>>>>>>>LEGENDA COLORI  NELLO SCRIPT:

'>>>>>>>>>>>>> GIALLO : comandi e simboli utilizzati in VBscript

'>>>>>>>>>>>>> VERDE : commenti allo script

'>>>>>>>>>>>>> ROSSO: ho assegnato questo colore ai numeri

'>>>>>>>>>>>>> BIANCO :  "cose" che abbiamo creato noi

'>>>>>>>>>>>>> AZZURRO: termini che rappresentano istruzioni o funzioni  interne del programma SPAZIOMETRIA

'>>>>>>>>>>>>> FUXIA : comandi che secondo CLAUDIO8 sono superflui o errati

'>>>>>>>>>>>>>>>>PS: se si riscontrassero FESSERIE o imprecisioni per cortesia comunicatelo e provvederò alle opportune modifiche

'>>>>>>>>>>>>>>>>Tutta la pagina rispetta il codice "spazioscript" per cui la si può copiare ed incollare in SPAZIOMETRIA

 

'---------------------------- LEZIONE DI SPAZIOSCRIPT by BAFFOBLU ( http://forum.lottoced.com/topic.asp?TOPIC_ID=139849 )

'---------------------------- Questo è uno script fatto da me  tratto 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):

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

'---------------------------- RICERCA ABBINAMENTI PER AMBO
'---------------------------- 1° BA x 1° RO + 1° RO ( per 1° abbinamento)
'---------------------------- 4° BA x 60 + 77 (per2° abbinamento)

'---------------------------- Questo script dovrà ricavare una ambata e due numeri da abbinare per ambo sulla ruota di FIRENZE

'>>>>>>>>>>>>>>>>>>>>>>>>>>> ECCO LO SCRIPT ( ed i relativi commenti e spiegazioni)


Sub Main() '---->Sub Main() ( Inizio di un Insieme di istruzioni-principale)
                  '---- Sub sta per ( Subroutine ) che vale a dire ( inizio di Un insieme di istruzioni)
                  '---- Main invece sta per ( 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 !

Dim ruote(1) '---->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)
                     '---- 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 vorremo 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
                     '---- Avete appena imparato che l'istruzione "Dim" sta per (Dimensiona) o (Quantifica)

Dim posta(1) '----->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 (1 sta per un solo numero o estratto)

Dim poste(2) '----->Dim poste(2) contiene due sorti, a cui (in seguito) attribuisco la sorte di Ambo

Dim n(1) '----->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,
                  '---- '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.
                  '---- Dim n(1), sta per il n° di numeri da porre in gioco (in questo caso l'ambata)
                  '---- se le ambate fossero state due avremmo dovuto scrivere Dim n(2) per indicare che sono "due" i numeri in gioco

Dim am(3) '------> Dim am(3) : questo è la stessa cosa, lo ho chiamato "am" solo per distinguerlo, ma lo potevo chiamare come mi pare
                 '---- l'importante è 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


posta(1) = 10 '-------> posta(1) = 10, richiama la "Dim" Dim posta(1)
                      '----- qui inseriremo la cifra in Euro che vogliamo puntare, posta(1) = 10 sta a significare che vogliamo puntare 10 euro sull'ambata
                      '----- Se volessimo puntare 50 centesimi dovremo scrivere 0.50 e cosi vale per tutte le puntate inferiori ad un euro


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


clp = 9 '---------> "clp" sta per "colpi" (di gioco), clp = 9 significa che giocheremo la previsione per 9 colpi
            '----------- se vogliamo che la durata del gioco sia maggiore o minore, basterà cambiare il 9 con un altro numero (di colpi)

ini = EstrazioneFin - 150 '----> "ini" sta per "inizio" , cioè lo script inizierà le verifiche dal parametro inserito dopo il simbolo=
                                        '------ EstrazioneFin è riconosciuto dallo script come : data dell'ultima estrazione in archivio
                                        '------ quindi : ini= EstrazioneFin - 150, indica allo script di iniziare la verifica partendo 150 estrazioni prima
                                        '------ dell'ultima estrazione in archivio.

fin = EstrazioneFin '-----------> fin = EstrazioneFin, invece sta a significare : elabora lo script fino all'ultima estrazione presente in archivio

co = 0 '---------------> co = 0 : è un contatore dei casi rintracciati, In questo caso il è posto a "0" perchè le istruzioni per decidere
           '----------------- le condizioni dei casi da trovare non sono ancora state specificate


For es = ini To fin '------> "For" è un istruzione di programmazione che significa "per"
'--------------------------------- "es" sta per "estrazioni"
'--------------------------------- "To" è un istruzione di programmazione che significa "a"
'--------------------------------- "ini" e "fin" abbiamo già visto che corrispondono all'inizio e fine del gruppo di estrazioni da esaminare
'--------------------------------- For es = ini To fin, tradotto in parole povere e in Italiano suonerebbe così :
'--------------------------------- "per"."estrazioni".=.(da)."inizio-estrazioni"."a"."fine-estrazioni"
'--------------------------------- ABBIAMO SPECIFICATO ALLO SCRIPT CHE
''-------------------------------- abbiamo dato a "es" il significato "dall'inizio alla fine delle estrazioni" prese in esame
'--------------------------------- Questo in programmazione è chiamato "ciclo For Next",
'--------------------------------- l' istruzione (For es = ini To fin) deve per forza chiudersi con un "Next" che significa "Prossimo"
'--------------------------------- l' istr. "Next" sarà alla fine dello script, perchè in mezzo metteremo le condizioni di ricerca del metodo

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

ruote(1) = 3 '------> ruote(1) = 3 : Il "3" sta per la ruota di (Firenze). la "1" è Bari, la "2" è Cagliari e cosi via,
'------------------------ all'inizio avevamo "Dimensionato" la "Dim ruote(1)
'------------------------ adesso diciamo allo script, esattamente quale è la ruota (1) con cui vogliamo lavorare

For p = 1 To 5'--> "For" sappiamo già cosa significa , la "p" invece qui è intesa come abbreviazione di "posizione"
'------------------------ Italianizzando:
'------------------------ "For" .............."p"..............................=..........."1"...."To"..."5"
'------------------------ "Per" .. "posizione"(degli estratti) .. = .. (da) "1" ... "a" ... "5"

a = Estratto(es,3,p)'------> "a"..=.."Estratto"......("es",......................."3",............................."p")
'---------------------------------- "a"..=.."Estratto".....("estrazione","ruota di Firenze","posizione dell'estratto")
'---------------------------------- Stiamo dicendo allo script che il simbolo "a" (a cui daremo un valore appena più sotto)
'---------------------------------- dovrà essere ricercato all'interno di quei parametri ( estrazione, ruota FI, pos estratto)

ok = 0 '-------------------------------> superfluo , non è una condizione bensì un contatore come il “co” che conta i casi


If a = 11 Then ' ---------> If (se) indica una condizione , che se positiva Then (allora) eseguirà le prossime istruzioni
'------------------------------- "If"... "a".............=........."11".........."THEN"
'------------------------------- "se".."a"... .è uguale a.."11"..........."esegui le prossime righe di istruzione
'------------------------------- Condizione da ricercare: Ogni volta che esce il numero 11 a FIRENZE
'------------------------------- Se la condizione esiste verranno effettuate le seguenti operazioni:
'------------------------------- RICERCA AMBATA :
'------------------------------- 1° BA + 2° NA x 1° NAZ ( Calcoli per ricavare l’ambata)
'------------------------------- RICERCA ABBINAMENTI PER AMBO:
'------------------------------- 1° BA x 1° RO + 1° RO ( per 1° abbinamento)
'------------------------------- 4° BA x 60 + 77 (per2° abbinamento)
'------------------------------- Nelle righe di codice che seguono dovremo cercare tutti gli estratti che
'------------------------------ ci servono per fare somme e abbinamenti, ad ogni estratto da ricercare daremo nome idoneo
'------------------------------ 1° BA lo chiameremo primodibari, 4* BA sarà quartodibari, ecc, ecc


'------------------------------------ Via con le operazioni di ricerca degli estratti:


primodibari = Estratto(es,1,1)'---------------> definizione-nome e ricerca 1°BA
quartodibari = Estratto(es,1,4)'--------------> definizione-nome e ricerca 4*BA
secondodinapoli = Estratto(es,6,2)'-------> definizione-nome e ricerca 2°NA
primodinazionale = Estratto(es,12,1)'-----> definizione-nome e ricerca 1°NAZ
primodiroma = Estratto(es,8,1)'-------------> definizione-nome e ricerca 1°RO

'-----------------------------------> Adesso che abbiamo gli estratti che ci servono
'------------------------------------ Via con le operazioni di calcolo

o = primodibari + secondodinapoli'--------> stiamo definendo che "o"  corrisponde (=) alla somma 1° BA + 2° NA
b = Fuori90(o * primodinazionale)'---------> def.nome e det. (=) da Fuori90(funzione Sscript) di o (1° BA + 2° NA) X primodinazionale (1°NAZ)
c = primodibari * primodiroma'--------------> dovrebbe essere chiaro
d = Fuori90(c + primodiroma)'--------------> come sopra
e = quartodibari * 60'--------------------------> come sopra
f = Fuori90(e + 77)'----------------------------> come sopra
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
'------------------------------LE ULTIME TRE RIGHE DI CODICE SONO STATE RIVISTE DA CLAUDIO8

n(1) = b'<<(Precedente se remmato non funziona) Dim n(1) assume il valore di b (vedi sopra)
am(1) = b'<<(Precedente se remmato non funziona) Dim am(1) come sopra
am(2) = d'<<(Precedente se remmato non funziona) Dim am(2) assume il valore di d
am(3) = f'<<(Precedente se remmato non funziona) Dim am(3) assume il valore di f

'ok = 1 ' superfluo 'questo contatore ok diventa 1 solo se la precedente condizione
'è 'verificata quindi, non serve perché è il verificarsi della condizione “ If a = 11 Then “ che porta il programma alla letture dei
'costrutti che lo seguono e quindi a leggere tutto il resto dello script per cui anche queste 2 righe che seguono sono inutili, rallentano
'solo il processo chiedendo una ulteriore verifica della “ If ok = 1 then . … che non serve a niente se non a rallentare la velocità di
' elaborazione. Di conseguenza questo end if superfluo va cancellato perchè la condizione if viene chiusa sotto il Gioca es
'End If 'superfluo
'If ok = 1 Then 'superfluo
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

'-----------Fino a questo punto lo script ha cercato e trovato:
'-----------1° volta che esce il numero 11 a FIRENZE (Condizione da ricercare)
co = co + 1'----------------------->questa istruzione fa ripartire un nuovo ciclo di ricerca sino alla fine

'--------------------------Alla fine dei cicli di ricerca:

Scrivi String(70,"°") & " Caso n°" & co,1 '--->Letteralmente Scrivi la seguente stringa (riga) di caratteri :
'-------------------------------------------------------- 70 volte ° (quello tra virgolette) e (&) Caso n° e (co) tutte le combinazioni trovate
'-------------------------------------------------------- 1 significa scrivi in grassetto (0 = corsivo)
Scrivi String(70,"°"),1'...........>Scrvi una riga di caratteri: 70 volte ° in grassetto
ruote(1) = 3'---------------------->Qui abbiamo riconfermato la ruota di gioco (3)

ImpostaGiocata 1,n,ruote,posta,clp,1'------>ImpostaGiocata è la prima giocata che effettueremo:
'------------------------------------------------------- "n" che 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, qui la richiamiamo
'------------------------------------------------------- "posta" La "Dim" iniziale l'abbiamo impostata a (1) e abbiamo anche specificato quanto puntare
'------------------------------------------------------- "clp" sono i colpi di gioco
'------------------------------------------------------- "1" indica all'elaborazione della previsione di fermasi al primo esito raggiunto
'------------------------------------------------------- esito raggiunto per sortita o per termine dei colpi a disposizione

'>>>>>>>>>>COMMENTATO DA CLAUDIO8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
'n(1) = b 'errato tutti questi errati vanno eliminati perche i parametri da dare in pasto
' alla funzione ImpostaGiocata devono essere precedenti alla stessa, quelli che scrivi dopo non vengono considerati in pratica non puoi
' prima dirgli di giocare i numeri n e dopo dargli i numeri (n1) , stessa cosa x am ed am(1..2..3) se provi a remmare i “precedente”
' numeri,vedrai che non ti gioca nessun numero esatto.
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ImpostaGiocata 2,am,ruote,poste,clp,2'-------->Il risultato è una terzina da giocare per ambo sulla ruota specificata

'<<<<<<<<<<<<<<<<<<<<<COMMENTATO DA CLAUDIO8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
'am(1) = b 'errato superfluo e da eliminare
'am(2) = d 'errato superfluo e da eliminare
'am(3) = f  'errato superfluo e da eliminare
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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
ScriviResoconto'-------------->stampa a video tutto quello richiesto allo script restituendoci i risultati delle previsioni e il
'------------------------------------- loro andamento durante il periodo analizzato
End Sub'------------->Chisura dello script