SUPER LOTTO

lezioni di script di danilo e robyca, utile per chi s'avvia nei meandri degli script!!!

« Older   Newer »
  Share  
occhidigiada58.
CAT_IMG Posted on 25/12/2010, 23:28




Minicorso di programmazione per L8 versione 5.0 e superiori

Per iniziare con questa avventura diciamo che non sono un grande esperto di programmazione,
cerco di cavarmela guardando esempi vari e leggendo qua e là nel manuale in linea del programma,
spero che questo mio minicorso serva almeno a chi di programmazione è completamente digiuno.

Iniziamo dicendo che per fare un listato bisogna seguire delle regole, facili ma ben precise, pena
il non funzionamento dello stesso, qualsiasi listato noi andremo a fare dovrà iniziare e terminare
con le istruzioni seguenti:

Sub main()
...
...
End Sub

Queste dicono al programma che vogliamo fare un listato, che inizia con Sub main(), eseguirà tutte
le istruzioni seguenti in modo sequenziale fino a trovare l'ultima istruzione End Sub che indicherà
che il listato è terminato, e fin qui direte voi ci arrivavo da solo, bene allora andiamo avanti un passo alla volta.

Per qualsiasi tipo di listato noi vogliamo fare dobbiamo impostare dei parametri che serviranno
al programma per capire cosa vogliamo che faccia per noi, per prima cosa cerchiamo di capire
certi termini che si useranno proseguendo in questo corso,

VARIABILE - VETTORE - CICLO - CONDIZIONE

queste sono alcune delle espressioni che si useranno andando avanti, vediamo di capire cosa si
intende con queste parole,

Variabile - una variabile è un contenitore per un dato variabile, per esempio :

n=Estratto(es,1,1)

n è una variabile che contiene l'estratto dell'esempio, a seconda dell'estrazione che noi andremo ad analizzare il dato contenuto in n sarà diverso.

Vettore - un vettore è un contenitore che contiene una serie di dati, per esempio:

Dim poste(5)
poste(1)=1
poste(2)=1
poste(3)=1
poste(4)=1
poste(5)=1

poste è un vettore che contiene i 5 dati relativi alle poste di gioco, come vedete abbiamo una istruzione in piu, Dim poste(5) che è indispensabile, un vettore và sempre " dimensionato "
cioè dobbiamo dire al programma quanti dati dovrà contenere quel vettore, dopo dovremo
" assegnare " ad ogni valore contenuto nel vettore il suo valore, come nell'esempio abbiamo
assegnato ad ognuno dei 5 elementi del vettore ( poste(1), poste(2) ecc. ) un valore, =1 che
vuol dire che la poste(1) ( che è l'Ambata) sarà di 1€, la poste(2)( che è l'Ambo) sarà di 1€ ecc. ecc.

La stessa cosa sarà per le ruote, per i numeri da mettere in gioco, e per qualsiasi altra necessità noi
abbiamo per fare quello che vogliamo, ho fatto l'esempio delle poste perchè lo useremo quasi sempre nella stesura dei nostri listati, come gli altri citati che servono per poter effettuare una giocata.

Ciclo - un ciclo serve per effettuare una serie definita di istruzioni, per effetuare un ciclo si usano
le seguenti istruzioni:

For R = 1 To 10
.....
....
Next

come vedete le istruzioni per fare un ciclo sono due, la prima " For R = 1 To 10 " come vedete fà uso di una Variabile " R " a cui assegnare un valore, il significato di questa istruzione è questo:

For R alla variabile R assegna un valore " 1 To 10 " da 1 a 10 incrementando questo valore ogni volta che arrivi all'istruzione Next

Esempio:

For R = 1 To 10
n(R)=Estratto(es,R,1)
Next

questo blocco di istruzioni assegna ai 10 elementi del vettore n che avremmo dimensionato a 10 elementi in precedenza[ Dim n(10) ], ogni elemento conterrà l'estratto assegnato:

primo giro: R=1 n(R) è = a n(1) e gli assegnamo L'Estratto(es,1,1) ( 1° di Bari )

secondo giro: R=2 n(R) è = a n(2) e gli assegnamo L'Estratto(es,2,1) ( 1° di Cagliari )

terzo giro: R=3 n(R) è = a n(3) e gli assegnamo L'Estratto(es,3,1) ( 1° di Firenze )

così via fino ad arrivare a 10, arrivato a dieci il programma esce dal ciclo e continua con le istruzioni che troverà dopo...., sembra complicato ma in realtà è molto semplice, nel senso che il programma esegue le istruzioni così come noi le mettiamo in sequenza, quando facciamo un ciclo
come nell'esempio sappiamo che il programma eseguirà quel determinato numero di volte quella serie di istruzioni che si trova fra le istruzioni For .... To .... e Next poi proseguirà con le successive istruzioni.

Condizione - lo dice la parola stessa, poniamo una condizione al programma, questa
condizione la poniamo per verificare se un determinato dato ha le
caratteristiche che noi vogliamo, in modo da condizionare l'esecuzione del listato
nella sua prosecuzione, l'esempio piu semplice è quello della individuazione di
una determinata estrazione in cui noi vogliamo successivamente elaborare dei
dati, vediamo l'esempio:

If IndiceMensile(es)=1 Then
.........
.......
End If

come vedete anche questa è una istruzione composta, cioè ha un inizio ed una fine come il ciclo,
il significato di questa istruzione è il seguente:

If se l' Indice Mensile dell'estrazione in esame (es) è = ad 1 Then esegui le istruzioni
che seguono, se invece l'Indice Mensile non è = a 1 salta tutte le istruzioni seguenti fino alla
istruzione End If compresa ed esegui le restanti istruzioni.
seguendo sempre gli esempi pratici se vogliamo che una giocata venga conteggiata alla prima del mese(e giocata naturalmente dalla successiva) dovremo scrivere le istruzioni in questo modo:

Sub main()
Dim posta(5)
Dim ruota(10)
Dim n(2)
posta(1)=1
ruota(1)=5
For es=7200 To EstrazioneFin
If IndiceMensile(es)=1 Then
n(1)=20
n(2)=15
ImpostaGiocata 1,n,ruota,posta,5,1
Gioca es
End If
Next
ScriviResoconto
End Sub


questo è un esempio completo di listato, cosa andiamo a fare ?
abbiamo impostato le nostre istruzioni per dire al programma dove inizia e dove finisce, abbiamo
dimensionato ed assegnato i vettori ed i relativi valori che ci interessano, posta, ruota, numeri (n),
abbiamo messo un ciclo per far girare le estrazioni che vogliamo analizzare, dall'estrazione con indice in archivio 7200 all'ultima estrazione inserita nell'archivio ( EstrazioneFin ), abbiamo poi inserito una condizione, vediamo come si susseguono le istruzioni in modo da capire come lavora
il nostro listato:

Dopo le varie assegnazioni( ruote,poste, ecc. ) il programma trova l'istruzione del ciclo, For es ...
cioè inizierà andando a prendere l'estrazione " es " cioè la 7200 che corrisponde all'estrazione del
15-01-2003 che era la quinta estrazione del mese,
subito a seguire trova l'istruzione If IndiceMensile(es)=1 e naturalmente NON è la prima estrazione del mese quella, perciò come abbiamo detto non essendo la condizione " vera " il listato andrà ad eseguire le istruzioni seguenti l' End If , cioè l'istruzione Next, cosa vuol dire, vuol dire che farà girare il ciclo, cioè l'esecuzione ritornerà al ciclo For es= ed aumentreà di 1 es che ora sarà 7201, le condizioni sono uguali e ripeterà ancora lo stesso giro fino a quando es sarà una
prima estrazione del mese, nel nostro caso lo sarà quando es sarà = 7205 che è l'estrazione del
01-02-2003 cioè una prima del mese, a quel punto la condizione If IndiceMensile(es)=1
sarà " vera " ed allora il listato eseguirà le istruzioni contenute all'interno del blocco If .... End If
cioè assegnerà agli elementi del vettore dei numeri i numeri da giocare, imposterà la giocata ed effettuarà la giocata stessa per i colpi specificati e per la sorte impostata.

Effettuate queste istruzioni incontrerà di nuovo l'istruzione Next che farà avanzare il ciclo come prima di una estrazione alla volta fino a trovare la prossima prima del mese dove rieffettuerà la giocata e così via fino ad arrivare all'ultima estrazione in archivio, arrivati all'ultima in archivio anche il ciclo sarà concluso ed il listato proseguirà con le istruzioni trovando l' End Sub cioè la fine del listato ed arresterà l'esecuzione dello stesso.
Adesso proviamo a scrivere un listato reale, proviamo a scrivere uno dei listati che normalmente uso io per provare i vari Metodi di Matematica Sommativa, scriviamo prima la struttura base del listato poi andremo ad inserire le giocate.

Diciamo che abbiamo passato la notte a cercare una combinazione che ci dia dei buoni risultati e vogliamo vedere se anche nel passato ci ha dato buoni esiti, noi con le nostre prove abbiamo analizzato gli ultimi sei mesi, adesso proviamo a scrivere un listato per vedere cosa ha fatto questo Metodo negli ultimi 3 anni, cominciamo a scrivere:

Sub main() inizio del listato
Dim posta(5) dimensiono il vettore delle poste
Dim ruota(10) dimensiono il vettore delle ruote
Dim n(10) dimensiono il vettore dei numeri da giocare
posta(1)=1 assegno alla posta 1 Ambata il valore di 1€
ruota(1)=5 assegno alla prima ruota la ruota di MI 5
For es=6877 To EstrazioneFin imposto il ciclo per le estrazioni dal 01-01-2000
If IndiceMensile(es+1)=1 Then metto la condizione che sia l'ultima del mese
n(1)=Fuori90(Estratto(es,1,1)+Estratto(es,9,4)+86) assegno le combinazioni
n(2)=Fuori90(Estratto(es,4,1)+Estratto(es,7,5)+3) ai numeri da giocare
ImpostaGiocata 1,n,ruota,posta,8,1 imposto la giocata
Gioca es metto in gioco la giocata
End If fine della condizione
Next fine dell'istruzione del ciclo estrazioni
ScriviResoconto questa istruzione ci scrive un resoconto dei risultati
End Sub fine del listato

ecco quà il nostro listato, provate a scriverlo ed a eseguirlo, solo così si impara, provando e riprovando altrimenti impariamo solo a copiare e quello lo sappiamo già fare.

Alcune precisazioni, come consuetudine noi chiamiamo i vettori e le variabili con nomi
che già da soli ci dicono cosa stiamo facendo, è la stessa identica cosa se noi li chiamiamo pippo o
pluto anzichè posta e ruota, i nomi li diamo noi come ci piacciono, naturalmente è piu leggibile un
listato come quello sopra che un listato come questo:

Sub main()
Dim pippo(5)
Dim pluto(10)
Dim mele(10)
pippo(1)=1
pluto(1)=5
For vasi=6877 To EstrazioneFin
If IndiceMensile(vasi+1)=1 Then
mele(1)=Fuori90(Estratto(vasi,1,1)+Estratto(vasi,9,4)+86)
mele(2)=Fuori90(Estratto(vasi,4,1)+Estratto(vasi,7,5)+3)
ImpostaGiocata 1,mele,pluto,pippo,8,1
Gioca vasi
End If
Next
ScriviResoconto
End Sub

ma se provate vedete che funzionano nello stesso identico modo, l'importante è fare sempre riferimento ai nomi assegnati, se vedete nei due esempi si notano subito i riferimenti, il ciclo
delle estrazioni che sopra lo abbiamo chiamato " es " sotto lo abbiamo chiamato " vasi ", tutto
quello che fà riferimento all'estrazione in esame deve far riferimento al nome assegnato, vedete

la condizione: If IndiceMensile(vasi+1)=1 Then - If IndiceMensile(es+1)=1 Then

gli estratti: Fuori90(Estratto(vasi,1,1) - Fuori90(Estratto(es,1,1)

la giocata: Gioca vasi - Gioca es

così via anche per le altre voci, nessuno ci impedisce di usare un nome rispetto all'altro ma è sicuramente meglio dare dei nomi intuibili alla prima occhiata.

Una piccola spiegazione anche alle istruzioni che abbiamo usato in questo listato ed ancora non
accennate prima,

EstrazioneFin - abbiamo già visto che questa istruzione ci consente di individuare l'ultima estrazione in archivio, la possiamo usare in tutte quelle occasioni in cui si deve individuare appunto l'ultima estrazione in archivio.

IndiceMensile - serve per individuare l'indice mensile dell'estrazione che stiamo esaminando

Fuori90( operazione ) - questa automaticamente ci toglie il 90 da somme che lo superano
esempio:
Fuori90(Estratto(es,1,1)+Estratto(es,9,4)+86) ammettiamo che i due estratti siano 25 e 72
l'operazione sopra equivale a:
Fuori90( 25 + 72 + 86 ) che equivale a dire: se la somma 25+72+86 è superiore a 90 togli 90

25 + 72 + 86 = 183 - 90 = 93 -90 = 3 ecco toglie 90 fino a quando si ha un numero compreso
fra 1 e 90 cioè giocabile al lotto.

Estratto(estrazione , ruota , posizione estratto) questa restituisce l'estratto indicato dai parametri
inseriti fra le parentesi che sono,

l'estrazione che stiamo analizzando, ecco l'importanza del riferimento che abbiamo detto prima, se l'estrazione in esame la abbiamo chiamata " es " inseriremo
il riferimento " es" se lo abbiamo chiamato in modo diverso andremo ad inserire il nome che abbiamo usato,
La ruota dell'estratto che vogliamo in numerazione da 1 a 10 che equivale a 1-BA 2-CA..... 10-VE
si possono usare anche riferimenti letterali prestabiliti, BA_ CA_ FI_ ..... VE_ anche se secondo me è sempre meglio usare la numerazione, anche perchè potremmo scrivere listati in cui la ruota può cambiare usando una variabile ed a quel punto l'uso della numerazione è indispensabile.
La posizione estratto, cioè in quale posizione estrattiva è l'estratto che vogliamo, 1° 2° 3° 4° o 5°
tornando al nostro esempio sopra avremo:
Fuori90(Estratto(es,1,1)+Estratto(es,9,4)+86) nell'estrazione " es " il 1° estratto di BA (es,1,1)
da sommare al 4° estratto di TO (es,9,4) a cui sommare il fisso 86, il tutto racchiuso dentro
all'istruzione Fuori90 in modo da avere subito il numero giocabile da assegnare al primo elemento
del nostro vettore contenente i numeri da mettere in gioco:

n(1)=Fuori90(Estratto(es,1,1)+Estratto(es,9,4)+86)

Andiamo avanti con le spiegazioni delle istruzioni usate,

ImpostaGiocata 1,n,ruota,posta,8,1 con questa istruzione andiamo a impostare la nostra
giocata, cioè come la leggiamo così si intende,

Imposta la Giocata numero 1, numero 2, numero 3 fino ad un massimo di 50 giocate,

giocami i numeri contenuti dentro gli elementi del vettore n, sulle ruote contenute negli elementi del vettore ruota, giocameli per le poste contenute negli elementi del vettore posta, me li giochi per
8 colpi, interrompi il gioco all'uscita di 1 numero.

questo è letteralmente il significato della impostazione della giocata, ho fatto sempre riferimento agli " elementi " contenuti nei vettori perchè noi possiamo dimensionare i vettori per le ruote a 10
per le poste a 5 perchè sono il massimo che possiamo usare, le ruote sono 10 e le poste 5, questo lo facciamo per comodità, nel senso che quando abbiamo imparato a fare listati la parte comune degli
stessi la copiamo, così se le impostazioni sono quelle standard andranno sempre bene,
ma naturalmente noi andremo ad "assegnare" solo quello che ci serve, nel nostro esempio noi abbiamo assegnato solamente il primo elemento del vettore delle ruote : ruota(1)=5 ed il solo primo elemento del vettore delle poste : posta(1)=1 , per il vettore dei numeri da giocare invece abbiamo assegnato i primi due : n(1)=Fuor.... n(2)=Fuor..... perchè il nostro " Metodo " deve mettere in gioco appunto 2 numeri per la sorte di Ambata, se volessimo per esempio giocare gli stessi numeri
anche per la sorte di Ambo basterebbe solamente "assegnare" anche questa posta : posta(2)=1 ed
il nostro listato ci verificherà sia la giocata di Ambata che quella di Ambo, naturalmente come abbiamo impostato la giocata



tre lezioni per uno script

Lezione 1

Premesso che non sono un docente........ma l'ultimo degli asini in fatto di informatica, come ho imparato a fare listati
smontando, rimontando ed incasinando quelli degli altri................vediamo se riesco ad incasinarVi alcuni consigli
iniziali !!!!!!!!!!

Alcune indicazioni:
Prima di iniziare con i listati vediamo di capire come sono scritti ed il significato di certi colori:

Le righe verdi (precedute dall'apice .'. sono righe di commento che servono per spiegare o per tenere traccia di quanto
fà quello che si scrive.

Le parole azzurre sono istruzioni che si richiamano al Visual Basic originale e non sono tante quelle che servono per
fare un normale listatino.

Le parole rosse sono istruzioni che richiamano "routine" dedicate al Lotto, create apposta dal programmatore per facilitare
la vita a chi scrive.E le potete trovare dettagliatamente spiegate nell'Help di L8.................peccato però manchino,
nella gran parte, di esempi !!!.........mica si può avere tutto dalla vita !!!!!!!!!

Analizziamo quanto troveremo nel listato che segue:

Sub main()
End Sub
Tra queste due parole viene svolto tutto il listato ed indicano la parte centrale di uno Script che in teoria può essere
composto anche da altre parti.

Dim
E' una dichiarazione di variabile con indice () e riserva una parte di memoria per la variabile dichiarata, tra parentesi
si mette la quantità di valori che può avere.

EstrazioneFin
Routine del programma che riporta l'ultima estrazione dell'archivio in uso

For.....To.....Next
Questo è il cuore di quasi tutti i listati per Lotto, è un contatore e visto ci sarà da fare la scansione dell'archivio,
delle ruote e dei cinque numeri possono essere svariati nello stesso listato, se scrivo:

For es = EstrazioneFin- 100 To EstrazioneFin
..........................................
Next
"es" assumerà il numero dell'estrazione dall'ultima meno 100 all'ultima

Invece se scrivo:
For r = 1 To 10
.............
Next
"r" avrà il numero di ogni singola ruota da Bari Venezia.

AvanzamentoElab
Serve per vedere se il listato gira, fà avanzare la barra di stato del prg., potrebbe capitare di sbagliare qualcosa e far
entrare il listato in un loop infinito !!!

If........Then
..............
End If
Evento condizionato, se scrivo:

If IndiceMensile(es) = 1 Then
...........................
End If
Tutte le istruzioni e comandi inseriti tra l'If ...Then e l'End If vengono eseguite se si avvera la condizione richiesta,
in questo caso, che l'estrazione in esame sia la 1° di ogni mese.

IndiceMensile(es)
Come detto sopra, ogni estrazione ha tre numerazioni:
la prima misura il numero totale delle stesse nell'archivio,
la seconda "IndiceAnnuale" ci dice a che estr. dell'anno siamo,
la terza "IndiceMensile" ci dà il numero di una estr. nel corso del mese.

Estratto(es,r,p)
Ci rende il numero che è sortito alla tal estr.(es), su una certa ruota(r) e in una data posizione(p).

Fuori90(x)
Nel lotto esistono 90 numeri per cui questa istruzione riporta nei 90 automaticamente un numero maggiore
semplicemente togliendo 90 tante volte quante necessarie perchè sia compreso nella novantina:
......120-90=30.......oppure....200-90-90=20......tanto per dire

ImpostaGiocata (x,numeri,ruota,posta,colpi,sorte)
Dove:
"x" è il numero della giocata,
"numeri" una variabile che contiene il numero o i numeri da giocare,
"ruota" la ruota su cui giocare,
"posta" quanto giochiamo,
"colpi" per quante volte si gioca e
"sorte" ( facoltativo ) dirà al listato di interrompere il gioco se sortirà l'ambata(1), se
invece sarà l'ambo(2), per il terno(3) e via dicendo.

Gioca es
E' l'ordine di eseguire il gioco ad una data estr.

ScriviResoconto
Chiama una routine che fà la cassa di quanto ci costa il gioco o quanto ci rende.

Circa una decina di istruzioni in tutto per fare un listatino, non tante e nemmeno difficile metterle insieme !!!!!!!!
..........come adesso vedremo:



Proviamo a metterle insieme perchè il listato che faremo verifichi questo semplice metodino:

Alla 1°estrazione del mese si prende il 1° ed il 5° estratto di Bari si sommano ed il risultato lo si mette
in gioco x 9 colpi. Si verificano gli esiti x un periodo di 100 estrazioni.



Ogni istruzione è preceduta da un minimo di spiegazione, ma vi potete aiutare anche con l'help o con "ab?"
in alto a destra di L8 per sapere esattamente come và composta l'istruzione.

Ops!!! .............dimenticavo !!! Il programma di riferimento per questi listati è L8 di Flavio Perona ..............se
qualcuno non se ne fosse accorto !!!!!!!!!!!! Non perchè ci sia solo questo, ma perchè è stato il primo che ho trovato e
che mi ha dato la possibilità di iniziare il listamento, ho provato altri programmi ed eventualmente più avanti si
potrà dire qualcosa anche di loro!!!

Non c'è bisogno di riscriverlo basta fare il copiaincolla del listato o al limite scaricare il file subito sotto il listato.
Per la cronaca: VI = Variabile con indice.............quelle con () VF=Variabile Fissa..........tipo: a, b, es,
ini, fin...ecc...ecc...
Questo listato gira dalla versione 4.2....in sù di L8............scaricando il file !!!
Copiaincollato..........così com'è..........anche sulla 4.1....!!!



Inizio fisso per tutti i listati
Sub main()
' Dichiaro le variabili con indice "()" che userò e la dimensione delle stesse (procedura obbligatoria)
Dim ambata(1)
Dim ruota(1)
Dim posta(1)
' Attribuisco un valore ad alcune "VI"(variabile indicizzata)
ruota(1) = 1 ' 1 = bari
posta(1) = 1 ' 1 lira x ambata

' Dò a due variabili fisse "VF" il periodo di escursione sull'archivio
' estr. nel quale fare la verifica, solo per evitare di scrivere
' istruzioni + lunghe se si ripetono spesso
fin = EstrazioneFin
ini = fin -100
' Faccio avanzare la verifica estr. x estr. nell'archivio
For es=ini To fin
AvanzamentoElab ini,fin,es
' Serve solo x vedere se il listato lavora
' facendo avanzare la barra di stato dello Script Manager

' Condizione......se siamo alla 1° estr. del mese allora procedi con i
' conteggi, ma evita tutte le altre
If IndiceMensile(es) = 1 Then

'Attribuisco a 2 VF il valore degli estratti nell'estr.(es), sulla ruota
'(1=Bari), in posizione(1° e 5°)
a = Estratto(es,1,1)
b = Estratto(es,1,5)

' Dò ad una VI (solo queste sono accettate dall'Impostagiocata) il
' risultato della somma dei 2 estratti col Fuori90
ambata(1) = Fuori90(a + b)

' Imposto la giocata con: numero della giocata, numeri da giocare, ruota
' o ruote sù cui giocare, soldi da giocare, x quanti colpi e se l'esito
' é positivo interrompere o no la giocata
ImpostaGiocata 1,ambata,ruota,posta,9,1

' Attivo la giocata all'estrz. scelta(es)
Gioca es

' Chiudo la condizione "If IndiceMensile(es)=1 Then"
End If

' Avanzo fino a chiudere il conteggio chiesto dal "For....To....Next"
Next

' Chiedo il resoconto della giocata
ScriviResoconto

' ultima istruzione, fissa come la 1°
End Sub
Lezione 2

Si va avanti

Allora questo sotto è il listato "Prova 1" pulito dalle spiegazioni, così iniziamo a prendere confidenza
con l'architettura del listato e con l'armonia del suo scorrere...........eh eh eh !!!..........sembrerà una
baggianata, ma il più delle volte trovo un errore dove la fluidità del listato si intoppa e non corrisponde più
a quanto lo sviluppo del metodo mi aveva fatto pensare ...................mai detto che sono normale !!!!!



Sub main()
Dim ambata(1)
Dim ruota(1)
Dim posta(1)
ruota(1)=1
posta(1)=1fin= EstrazioneFin
ini=fin -100
For es=ini To fin
AvanzamentoElab ini,fin,es

If IndiceMensile(es)=1 Then
a=Estratto(es,1,1)
b=Estratto(es,1,5)
ambata(1)=Fuori90(a + b)

ImpostaGiocata 1,ambata,ruota,posta,9,1
Gioca es

End If
Next
ScriviResoconto
End Sub

Bene...............adesso cosa ci aggiungiamo ???????????

1°) Mettiamo un'altra ambata (che sarà il vertibile della 1°) e quattro abbinamenti x ambo, le giocate saranno
così......2 ambate e 8 ambi
2°) Per semplificare l'output del listato si può usare l'istruzione ",,True" dopo il "Gioca es",
in tal modo verranno visualizzati solo gli esiti positivi.....(poi spiegheremo meglio la fazenda !!!!)

Per adesso basta così, tanto più che andando assolutamente a caso, gli esiti mi sembrano del tutto felici........
........ per cui me li vado a giocare..............hai visto mai !!!!!!!!!!!!!!!!!!!!!!!!!!!!

Nuova istruzione: y = Vert(x)
Attribuisce a y il numero x ........ letto al contrario, spiegare cos'è il vertibile a chi mastica di lotto ...............sich !!!
................ siamo seri !!!

Sub main()
Dim ambata(2) 'Aumento a 2 la dimensione della (variabile indicizzata) "ambata"
Dim abb(4) 'Dichiaro la VI "abb(4)" per gli abbinamenti x ambo
Dim numeri(2) 'Dichiaro la VI "numeri(2)" x l'ImpostaGiocata ambi
Dim ruota(1)
Dim posta(1)
Dim poste(2) 'Dichiaro la VI "poste(2)" per il gioco d'ambo
ruota(1)=1
posta(1)=1 'Dò valore 1 (lira, euro, cent!!!) alle poste del gioco
poste(2)=1
abb(1)=10 'Dò alle 4 "abb" valori casuali per formare gli ambi
abb(2)=20
abb(3)=30
abb(4)=40

fin=EstrazioneFin
ini=fin -100
For es=ini To fin
AvanzamentoElab ini,fin,es

If IndiceMensile(es)=1 Then
a=Estratto(es,1,1)
b=Estratto(es,1,5)
ambata(1)=Fuori90(a + b)
ambata(2)=Vert(ambata(1))'Attribuisco alla (ambata(2)) il vertibile della 1°ambata

co=1 'metto ad 1 il contatore della giocate
ImpostaGiocata co,ambata,ruota,posta,9,1 'Imposto le giocate per ambata

For x=1 To 2 'conto le ambate
For y=1 To 4 'conto gli abbinamenti
co=co+1 'x ogni abbinamento ambata + abb incremento il contagiocate
numeri(1)=ambata(x) 'Dò a numeri(1) e (2) i vari valori di ambata e abb
numeri(2)=abb(y)
ImpostaGiocata co,numeri,ruota,poste,9,2 'imposto le giocate x ambo
Next 'chiudo i due for precedenti
Next

Gioca es,True 'Se si vogliono vedere solo gli esiti positivi, basta aggiungere",True"
'all'istruzione "Gioca es" togliendo l'apostrofo davantialla virgola
End If
Next
ScriviResoconto
End Sub
Lezione 3

La nave và

Facciamo 3 aggiuntine alla nostra nave scuola:

1°) Eliminiamo eventuali ambi con numeri ripetuti in gioco, inutili ai fini del gioco
2°) Mettiamo un blocco alle giocate in caso di un' esito positivo
3°) Razionalizziamo il "Gioca es"

Pulito il listato da tutte le spiegazioni precedenti:


Sub main
Dim ambata(2)
Dim abb(4)
Dim numeri(2)
Dim ruota(1)
Dim posta(1)
Dim poste(2)
ruota(1)=1
posta(1)=1
poste(2)=1
abb(1)=10
abb(2)=20
abb(3)=30
abb(4)=40

fin=EstrazioneFin
ini=fin -100
For es=ini To fin
AvanzamentoElab ini,fin,es
If IndiceMensile(es)=1 Then
a=Estratto(es,1,1)
b=Estratto(es,1,5)
ambata(1)=Fuori90(a + b)
ambata(2)=Vert(ambata(1))
co=1
ImpostaGiocata co,ambata,ruota,posta,9,1
For x=1 To 2
For y=1 To 4
co=co+1
numeri(1)=ambata(x)
numeri(2)=abb(y)
ImpostaGiocata co,numeri,ruota,poste,9,2
Next
Next

Gioca es

End If
Next
ScriviResoconto
End Sub



Subito dopo aver composto l'ambo con:

For x=1 To 2
For y=1 To 4
co=co+1
numeri(1)=ambata(x)
numeri(2)=abb(y)

può succedere che i due numeri siano uguali per cui la giocata sarebbe inutile,
ma il listato visualizzerebbe una giocata, non valida, ( un numero x ambo ) creando confusione,
si può eliminare il fatto con questa istruzione:

If NumeriRipetuti(numeri) = True Then Erase numeri

Che vuol dì: se i due numeri sono uguali allora me li cancelli tutti e due per cui l'ImpostaGiocata
non trovando numeri da giocare mi salta la giocata relativa, e questo lo si può vedere disattivando
il ",True" del " Gioca es " in modo da vedere tutte le giocate, si noterà che sulle 9 giocate può capitare
che ne manchi una, lì c'era un ambo ripetuto che è stato eliminato.

Terminati gli " ImpostaGiocata " vediamo di dire al listato come mi deve bloccare tutto il " Gioca es "
al 1° esito positivo:

For x=2 To 9
ImpostaInterruzioni x,1,1
ImpostaInterruzioni 1,x,2
Next
Ovvero, attivato un contatore da 2 a 9 (quanti sono gli ambi) col 1°" ImpostaInterruzioni x,1,1",
gli dirò bloccami le giocate da 2 a 9 (x) se la giocata numero 1 (,1,) e sarebbe quella dell'ambata,
avrà dato esito positivo per ambata (,1).

Viceversa......col secondo " ImpostaInterruzioni 1,x,2 " gli dico, mi blocchi la giocata
numero 1 (ambata) se la giocata x ( da 2 a 9........gli ambi) hanno dato esito positivo per 2 numeri.....
....un ambo appunto !!!!!!!
Arriviamo al "Gioca es"

Se la scrivo così com'è mi fa vedere in Output tutte e nove le giocate con tanto di esiti negativi per
ogni estrazione scelta, ovvero mi fa un casino della Mianonna da rimbecilirmi le palle
degli occhi......... d'altro canto se uso:
"Gioca es,True "
mi fa veder sì, solo gli esiti positivi,ma il vigliacco mi nasconde anche gli esiti eventualmente in corso,
per cui non so se devo giocarli ancora o no .............aluuuuuuuuura ???????

Basta dirgli le cose nelle dovute maniere !!!
If es<fin-9 Then
Gioca es, True
Else
Gioca es
End If

 
Top
Pireo
CAT_IMG Posted on 26/12/2010, 19:14




Grazie occhidiagiada sei bravissimaaaaaaa!!!!!
 
Top
occhidigiada58.
CAT_IMG Posted on 27/12/2010, 06:22




grazie ma nn e' farina del mio sacco, e' opera di danilo e robyca!!!
 
Top
CAT_IMG Posted on 9/2/2012, 19:37

Group:
Member
Posts:
6,363

Status:


CARISSIMA OKKI MI GIRA LA CAPA SOLO A LEGGERE FIGURATI A METTERLO IN PRATICA, COMUNQUE BRAVISSIMA ...CIAO...
 
Contacts  Top
occhidigiada58.
CAT_IMG Posted on 12/2/2012, 10:47




mimmo nn e' roba mia...e' complicato....lo so...io pure se lo prego e gli accendo il cero... lo script nn mi sente!!! :lol:
 
Top
CAT_IMG Posted on 13/6/2022, 13:14
Avatar

Group:
Member
Posts:
137

Status:


Ma vale anche per spaziometria ? Grazie.
 
Top
CAT_IMG Posted on 30/8/2023, 00:00

Group:
Fan
Posts:
86

Status:


CITAZIONE (ALIEN @ 13/6/2022, 14:14) 
Ma vale anche per spaziometria ? Grazie.

No ! Non vale !
Per la spaziometria vale il seguente codice sorgente java.
CODICE
private void BuildImmagine(Graphics g) {
       //--- inizio colorare lo sfondo di bianco ---
       g.setColor(Color.black);
       g.fillRect(0, 0, LarghezzaImmagine, AltezzaImmagine);
       //--- fine colorare lo sfondo di bianco ---
       
       int MargSin=20;
       int MargSinNumRuota=MargSin+160;
       int MargTop=30;
       int MargTopNum=160;
       int passo=30;
       int x1=0;
       int y1=0;
       int x2=0;
       int y2=0;

       java.awt.Font fontData = new Font("Default", java.awt.Font.BOLD, 16);
       java.awt.Font fontProp = new Font("Default", java.awt.Font.BOLD, 12);
       java.awt.Font fontRuota = new Font("Default", java.awt.Font.BOLD, 16);
       java.awt.Font fontNum = new Font("Default", java.awt.Font.PLAIN, 12);
       java.awt.Font fontNumGrassetto = new Font("Default", java.awt.Font.BOLD, 12);
       java.awt.Font fontTit = new Font("Default", java.awt.Font.ITALIC, 12);

       g.setFont(fontData);

       String LaData=getDataLike(VecchiaData, false);
       String zeta="Estrazione del "+LaData;

       g.setColor(Color.white);
       g.drawString(zeta, MargSin, MargTop);

       java.awt.Color marrone = new java.awt.Color(176,0,27);
       java.awt.Color grigio_chiaro = new java.awt.Color(192,192,192);
       java.awt.Color celeste = new java.awt.Color(0,162,232);
       java.awt.Color azzurro = new java.awt.Color(153,217,234);

       g.setFont(fontProp);
       g.setColor(Color.orange);
       String s="proposta sulla ruota di "+ruota+"    (ambo e ambetto)";
       y1=MargTop+20;
       g.drawString(s, MargSin, y1);
       
       y1+=15;
       g.drawString(RigaUno, MargSin, y1);

       y1+=15;
       g.drawString(RigaDue, MargSin, y1);

       y1+=15;
       g.drawString(RigaTre, MargSin, y1);

       y1+=15;
       g.drawString(RigaQuattro, MargSin, y1);

       g.setColor(Color.white);
       g.setFont(fontNum);
       y1+=15;
       String AlfaColpi=Integer.toString(LimiteNumeroDeiTentativi)+" colpi";
       g.drawString(AlfaColpi, MargSin, y1);
       
       
       g.setFont(fontRuota);
       g.drawString(ruota, MargSinNumRuota+passo, MargTop+100);
       
       
       
       g.setFont(fontNum);


       z1_meno_uno=z1-1;
       int MuroSinX2=MargSinNumRuota-8;
       int MuroDxX2=MargSinNumRuota-8+(NumEstratti*passo);

       boolean CerchioliniOvunque=false;

       if (CerchioliniOvunque) {
           // do nothing
       }else{
           g.setColor(Color.green);
           int aa=0;
           
           //--- inizio collegare i 4 numeri ripetuti ---
           x1=MargSinNumRuota+7+(PosX[0]*passo);
           x2=MargSinNumRuota+7+(PosX[1]*passo);
           y1=MargTopNum-5+(PosY[0]*passo);
           y2=MargTopNum-5+(PosY[1]*passo);
           g.drawLine(x1, y1-1, x2, y2-1);
           g.drawLine(x1-1, y1, x2-1, y2);
           g.drawLine(x1, y1, x2, y2);
           g.drawLine(x1+1, y1, x2+1, y2);
           g.drawLine(x1, y1+1, x2, y2+1);

           
           x1=MargSinNumRuota+7+(PosX[2]*passo);
           x2=MargSinNumRuota+7+(PosX[3]*passo);
           y1=MargTopNum-5+(PosY[2]*passo);
           y2=MargTopNum-5+(PosY[3]*passo);
           g.drawLine(x1, y1-1, x2, y2-1);
           g.drawLine(x1-1, y1, x2-1, y2);
           g.drawLine(x1, y1, x2, y2);
           g.drawLine(x1+1, y1, x2+1, y2);
           g.drawLine(x1, y1+1, x2, y2+1);

                       
           x1=MargSinNumRuota+7+(PosX[0]*passo);
           x2=MargSinNumRuota+7+(PosX[2]*passo);
           y1=MargTopNum-5+(PosY[0]*passo);
           y2=MargTopNum-5+(PosY[2]*passo);
           g.drawLine(x1, y1-1, x2, y2-1);
           g.drawLine(x1-1, y1, x2-1, y2);
           g.drawLine(x1, y1, x2, y2);
           g.drawLine(x1+1, y1, x2+1, y2);
           g.drawLine(x1, y1+1, x2, y2+1);


           x1=MargSinNumRuota+7+(PosX[1]*passo);
           x2=MargSinNumRuota+7+(PosX[3]*passo);
           y1=MargTopNum-5+(PosY[1]*passo);
           y2=MargTopNum-5+(PosY[3]*passo);
           g.drawLine(x1, y1-1, x2, y2-1);
           g.drawLine(x1-1, y1, x2-1, y2);
           g.drawLine(x1, y1, x2, y2);
           g.drawLine(x1+1, y1, x2+1, y2);
           g.drawLine(x1, y1+1, x2, y2+1);
           //--- fine collegare i 4 numeri ripetuti ---

           
           
           //--- inizio disegnare le 2 righe di intersezione ---
           // x1=MargSinNumRuota+7+(PosX[1]*passo);
           // x2=MargSinNumRuota+7+(PosX[2]*passo);
           // y1=MargTopNum-5+(PosY[1]*passo);
           // y2=MargTopNum-5+(PosY[2]*passo);
           // g.drawLine(x1, y1, x2, y2);
           
           // x1=MargSinNumRuota+7+(PosX[3]*passo);
           // x2=MargSinNumRuota+7+(PosX[0]*passo);
           // y1=MargTopNum-5+(PosY[3]*passo);
           // y2=MargTopNum-5+(PosY[0]*passo);
           // g.drawLine(x1, y1, x2, y2);
           //--- fine disegnare le 2 righe di intersezione ---

           
           g.setColor(grigio_chiaro);
       }

       
       //--- inizio reticolato ---
               
       //--- inizio linee verticali ---
       y1=110;
       y2=140+(passo*z1);

       g.drawLine(MargSin, y1+30, MargSin, y2);

       g.drawLine(MuroSinX2, y1, MuroSinX2, y2);
       for (int bb=1;bb<NumEstratti;bb++) {
           x1=MargSinNumRuota-8+(bb*passo);
           x2=x1;
           g.drawLine(x1, y1+passo, x2, y2);
       } // next bb

       x1=MargSinNumRuota-8+(NumEstratti*passo);
       x2=x1;
       g.drawLine(x1, y1, x2, y2);
       
       //for (int bb=NumEstratti+1;bb<NumEstratti+NumEstratti;bb++) {
       //    x1=MargSinNumRuota-8+(bb*passo);
       //    x2=x1;
       //    g.drawLine(x1, y1+passo, x2, y2);
       //} // next bb
       
       
       //x1=MargSinNumRuota-8+((NumEstratti+NumEstratti)*passo);
       //x2=x1;
       //g.drawLine(x1, y1, x2, y2);
       //--- fine linee verticali ---

       //--- inizio linee orizzontali ---
       x1=MargSin;
       x2=MargSinNumRuota+142;
       
       y1=110;
       y2=y1;
       g.drawLine(172, y1, x2, y2);
       
       for (int aa=1;aa<z1+2;aa++) {
           y1=110+(aa*passo);
           y2=y1;
           g.drawLine(x1, y1, x2, y2);
       } // next NumRuota        
       //--- fine linee orizzontali ---

       //--- fine reticolato ---


       if (CerchioliniOvunque) {
           for (int aa=0;aa<z1;aa++) {
               y1=MargTopNum-15+(aa*passo);

               //--- inizio ruota ---
               for (int bb=0;bb<NumEstratti;bb++) {
                   x1=MargSinNumRuota-3+(bb*passo);
                   g.drawOval(x1, y1, 20, 20);
               }
               //--- fine ruota ---                
               
           } // next aa
       }else{
           for (int aa=0;aa<z1;aa++) {
               y1=MargTopNum-15+(aa*passo);
               
               if (aa == PosY[0]) {
                   
                   for (int bb=0;bb<NumEstratti;bb++) {
                       if (bb == PosX[0]) {
                           x1=MargSinNumRuota-3+(bb*passo);
                           g.setColor(Color.black);
                           g.fillOval(x1, y1, 20, 20);
                           g.setColor(Color.yellow);
                           g.drawOval(x1, y1, 20, 20);
                           g.setColor(grigio_chiaro);
                       } // bb UGUALE a pos[0]
                   } // next bb  

               } else if (aa == PosY[1]) {
                   if (PosY[1] == PosY[2]) {
                       for (int bb=0;bb<NumEstratti;bb++) {
                           if (bb == PosX[1]) {
                               x1=MargSinNumRuota-3+(bb*passo);
                               g.setColor(Color.black);
                               g.fillOval(x1, y1, 20, 20);
                               g.setColor(Color.yellow);
                               g.drawOval(x1, y1, 20, 20);
                               g.setColor(grigio_chiaro);
                           } // bb UGUALE a pos[1]
                       } // next bb

                       for (int bb=0;bb<NumEstratti;bb++) {
                           if (bb == PosX[2]) {
                               x1=MargSinNumRuota-3+(bb*passo);
                               g.setColor(Color.black);
                               g.fillOval(x1, y1, 20, 20);
                               g.setColor(Color.yellow);
                               g.drawOval(x1, y1, 20, 20);
                               g.setColor(grigio_chiaro);
                           } // bb UGUALE a pos[1]
                       } // next bb

                   }else{
                       for (int bb=0;bb<NumEstratti;bb++) {
                           if (bb == PosX[1]) {
                               x1=MargSinNumRuota-3+(bb*passo);
                               g.setColor(Color.black);
                               g.fillOval(x1, y1, 20, 20);
                               g.setColor(Color.yellow);
                               g.drawOval(x1, y1, 20, 20);
                               g.setColor(grigio_chiaro);
                           } // bb UGUALE a pos[1]
                       } // next bb
                   }
                   
               } else if (aa == PosY[2]) {
                   for (int bb=0;bb<NumEstratti;bb++) {
                       if (bb == PosX[2]) {
                           x1=MargSinNumRuota-3+(bb*passo);
                           g.setColor(Color.black);
                           g.fillOval(x1, y1, 20, 20);
                           g.setColor(Color.orange);
                           g.drawOval(x1, y1, 20, 20);
                           g.setColor(grigio_chiaro);
                       } // bb UGUALE a pos[1]
                   } // next bb
                   
               } else if (aa == PosY[3]) {
                   for (int bb=0;bb<NumEstratti;bb++) {
                       if (bb == PosX[3]) {
                           x1=MargSinNumRuota-3+(bb*passo);
                           g.setColor(Color.black);
                           g.fillOval(x1, y1, 20, 20);
                           g.setColor(Color.orange);
                           g.drawOval(x1, y1, 20, 20);
                           g.setColor(grigio_chiaro);
                       } // bb UGUALE a pos[1]
                   } // next bb
               }
           } // next aa
           
           
           for (int aa=0;aa<z1;aa++) {
               y1=MargTopNum-15+(aa*passo);
               
               if (aa == NuovePosY[0]) {
                   for (int bb=0;bb<NumEstratti;bb++) {
                       if (bb == NuovePosX[0]) {
                           x1=MargSinNumRuota-3+(bb*passo);
                           g.setColor(Color.black);
                           g.fillOval(x1, y1, 20, 20);
                           g.setColor(Color.red);
                           g.drawOval(x1, y1, 20, 20);
                           g.setColor(grigio_chiaro);
                       } // bb UGUALE a pos[0]
                   } // next bb  

               }else{
                   if (aa == NuovePosY[1]) {
                       for (int bb=0;bb<NumEstratti;bb++) {
                           if (bb == NuovePosX[1]) {
                               x1=MargSinNumRuota-3+(bb*passo);
                               g.setColor(Color.black);
                               g.fillOval(x1, y1, 20, 20);
                               g.setColor(Color.red);
                               g.drawOval(x1, y1, 20, 20);
                               g.setColor(grigio_chiaro);
                           } // bb UGUALE a pos[1]
                       } // next bb
                   } // aa UGUALE a NuovePosY[1]
               }
           } // next aa

       } // CerchioliniOvunque UGUALE a false

       
       //--- inizio scrivere i numeri ---
       g.setColor(Color.gray);
       
       for (int aa=0;aa<z1;aa++) {            
           y1=MargTopNum+(aa*passo);

           String AlfaData=""+getDataLike(VecchieDate[aa], false);
           g.drawString(AlfaData, MargSin+15, y1);
           
           String kk1="";
           for (int bb=0;bb<NumEstratti;bb++) {
               x1=MargSinNumRuota+(bb*passo);
               if (usciti[bb][aa] < b10) {
                   kk1=""+Byte.toString(usciti[bb][aa]);
                   g.drawString(kk1, x1+4, y1);
               }else{
                   kk1=""+Byte.toString(usciti[bb][aa]);
                   g.drawString(kk1, x1, y1);
               }
           } // next bb

       } // next aa

       String kk1="";
       for (int aa=0;aa<z1;aa++) {
           y1=MargTopNum+(aa*passo);

           g.setColor(grigio_chiaro);
           String AlfaData=""+getDataLike(VecchieDate[aa], false);
           g.drawString(AlfaData, MargSin+15, y1);
           g.setColor(Color.gray);

           if (aa == PosY[0]) {
               for (int bb=0;bb<NumEstratti;bb++) {
                   x1=MargSinNumRuota+(bb*passo);
                   if (bb == PosX[0]) {
                       g.setFont(fontNumGrassetto); g.setColor(Color.white);
                       if (usciti[bb][aa] < b10) {
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1+4, y1);
                       }else{
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1, y1);
                       }
                       g.setColor(Color.gray); g.setFont(fontNum);
                   } // bb is DIFFERENT than PosX[0]
               } // next bb

           } else if (aa == PosY[1]) {
               if (PosY[1] == PosY[2]) {
                   for (int bb=0;bb<NumEstratti;bb++) {
                       x1=MargSinNumRuota+(bb*passo);
                       if (bb == PosX[1]) {
                           g.setFont(fontNumGrassetto); g.setColor(Color.white);
                           if (usciti[bb][aa] < b10) {
                               kk1=""+Byte.toString(usciti[bb][aa]);
                               g.drawString(kk1, x1+4, y1);
                           }else{
                               kk1=""+Byte.toString(usciti[bb][aa]);
                               g.drawString(kk1, x1, y1);
                           }
                           g.setColor(Color.gray); g.setFont(fontNum);
                       } // bb is DIFFERENT than PosX[1]
                   } // next bb
                       
                   for (int bb=0;bb<NumEstratti;bb++) {
                       x1=MargSinNumRuota+(bb*passo);
                       if (bb == PosX[2]) {
                           g.setFont(fontNumGrassetto); g.setColor(Color.white);
                           if (usciti[bb][aa] < b10) {
                               kk1=""+Byte.toString(usciti[bb][aa]);
                               g.drawString(kk1, x1+4, y1);
                           }else{
                               kk1=""+Byte.toString(usciti[bb][aa]);
                               g.drawString(kk1, x1, y1);
                           }
                           g.setColor(Color.gray); g.setFont(fontNum);
                       } // bb is DIFFERENT than PosX[2]
                   } // next bb

               }else{
                   for (int bb=0;bb<NumEstratti;bb++) {
                       x1=MargSinNumRuota+(bb*passo);
                       if (bb == PosX[1]) {
                           g.setFont(fontNumGrassetto); g.setColor(Color.white);
                           if (usciti[bb][aa] < b10) {
                               kk1=""+Byte.toString(usciti[bb][aa]);
                               g.drawString(kk1, x1+4, y1);
                           }else{
                               kk1=""+Byte.toString(usciti[bb][aa]);
                               g.drawString(kk1, x1, y1);
                           }
                           g.setColor(Color.gray); g.setFont(fontNum);
                       } // bb is DIFFERENT than PosX[1]
                   } // next bb
               }
                   
           } else if (aa == PosY[2]) {
               for (int bb=0;bb<NumEstratti;bb++) {
                   x1=MargSinNumRuota+(bb*passo);
                   if (bb == PosX[2]) {
                       g.setFont(fontNumGrassetto); g.setColor(Color.white);
                       if (usciti[bb][aa] < b10) {
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1+4, y1);
                       }else{
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1, y1);
                       }
                       g.setColor(Color.gray); g.setFont(fontNum);
                   } // bb is DIFFERENT than PosX[2]
               } // next bb

           } else if (aa == PosY[3]) {
               for (int bb=0;bb<NumEstratti;bb++) {
                   x1=MargSinNumRuota+(bb*passo);
                   if (bb == PosX[3]) {
                       g.setFont(fontNumGrassetto); g.setColor(Color.white);
                       if (usciti[bb][aa] < b10) {
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1+4, y1);
                       }else{
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1, y1);
                       }
                       g.setColor(Color.gray); g.setFont(fontNum);
                   } // bb is DIFFERENT than PosX[3]
               } // next bb

           } else if (aa == NuovePosY[0]) {
               for (int bb=0;bb<NumEstratti;bb++) {
                   x1=MargSinNumRuota+(bb*passo);
                   if (bb == NuovePosX[0]) {
                       g.setFont(fontNumGrassetto); g.setColor(Color.white);
                       if (usciti[bb][aa] < b10) {
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1+4, y1);
                       }else{
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1, y1);
                       }
                       g.setColor(Color.gray); g.setFont(fontNum);
                   } // bb is DIFFERENT than NuovePosX[0]
               } // next bb

           } else if (aa == NuovePosY[1]) {
               for (int bb=0;bb<NumEstratti;bb++) {
                   x1=MargSinNumRuota+(bb*passo);
                   if (bb == NuovePosX[1]) {
                       g.setFont(fontNumGrassetto); g.setColor(Color.white);
                       if (usciti[bb][aa] < b10) {
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1+4, y1);
                       }else{
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1, y1);
                       }
                       g.setColor(Color.gray); g.setFont(fontNum);
                   } // bb is DIFFERENT than NuovePosX[1]
               } // next bb

           }else{
               // do nothing
           }
       } // next aa
           

       //--- inizio evidenziare i numeri capi gioco ---
       for (int aa=0;aa<z1;aa++) {
           y1=MargTopNum+(aa*passo);

           g.setColor(grigio_chiaro);
           String AlfaData=""+getDataLike(VecchieDate[aa], false);
           g.drawString(AlfaData, MargSin+15, y1);
           g.setColor(Color.gray);

           if (aa == NuovePosY[0]) {
               for (int bb=0;bb<NumEstratti;bb++) {
                   x1=MargSinNumRuota+(bb*passo);
                   if (bb == NuovePosX[0]) {
                       g.setFont(fontNumGrassetto); g.setColor(Color.white);
                       if (usciti[bb][aa] < b10) {
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1+4, y1);
                       }else{
                           kk1=""+Byte.toString(usciti[bb][aa]);
                           g.drawString(kk1, x1, y1);
                       }
                       g.setColor(Color.gray); g.setFont(fontNum);
                   } // bb is DIFFERENT than NuovePosX[0]
               } // next bb

           }else{
               if (aa == NuovePosY[1]) {
                   for (int bb=0;bb<NumEstratti;bb++) {
                       x1=MargSinNumRuota+(bb*passo);
                       if (bb == NuovePosX[1]) {
                           g.setFont(fontNumGrassetto); g.setColor(Color.white);
                           if (usciti[bb][aa] < b10) {
                               kk1=""+Byte.toString(usciti[bb][aa]);
                               g.drawString(kk1, x1+4, y1);
                           }else{
                               kk1=""+Byte.toString(usciti[bb][aa]);
                               g.drawString(kk1, x1, y1);
                           }
                           g.setColor(Color.gray); g.setFont(fontNum);
                       } // bb is DIFFERENT than NuovePosX[1]
                   } // next bb
               }
           }
       } // next aa
       //--- inizio evidenziare i numeri capi gioco ---
           
       for (int aa=0;aa<z1;aa++) {
           y1=MargTopNum+(aa*passo);

           g.setColor(grigio_chiaro);
           String AlfaData=""+getDataLike(VecchieDate[aa], false);
           g.drawString(AlfaData, MargSin+15, y1);
           g.setColor(Color.gray);

       } // next aa

       //--- fine scrivere i numeri ---        

   }
 
Top
6 replies since 25/12/2010, 23:28   1891 views
  Share