Questo sito fa uso di cookie, i cookie introducono una gamma di servizi che migliorano la tua fruizione del sito. Utilizzando il sito si ritiene accettato l'uso dei cookie secondo le nostre linee guida. Per maggiori informazioni clicca qui.

Home Risorse Roulette Xtreme Guida alla programmazione I loop di verifica

I loop di verifica

Qui si entra nel cuore del sistema, ovvero i comandi che analizzano le terzine uscite e fanno i controlli
Utilizzeremo due routine di ciclo, ovvero delle routine che permettono di eseguire ripetutamente una serie di comandi finchè la condizione non viene rispettata.

method "Verifica"
Begin
if flag "Gioca" true
begin
return
end


Innanzitutto con il codice sopra comunichiamo al programma che se si sta puntando (gioca = true) non occorre elaborare alcuna verifica. Se il flag è true interrompe subito la routine.

Si provvede poi ad azzerare tutti i valori e settare i parametri che si useranno per la verifica per rimuovere dati eventualmente presenti in memoria dall'analisi precedente.

// inizializzazioni variabili di verifica
clear record "Massimo" data
Clear record "Num. Terzine in calore" data
Set list [0,0,0,0,0,0,0,0,0,0,0,0] record "Conta nelle 18" data
Set flag "gioca" false


Per ogni terzina partendo dalla 1 alla 12 (ciclo principale) leggeremo tutte le 18 terzine uscite (ciclo secondario) per vedere se quella terzina è uscita, se è uscita la aggiungiamo ad un record che chiameremo “conta nelle 18”, in questo record avremo il conteggio di quante volte le singole terzine sono uscite.
Inoltre ad ogni terzina faremo un controllo per vedere se è quella con più uscite, per trovare il massimo delle uscite nelle 18 boules.
Il programma quindi eseguirà per 12 volte (le terzine) un ciclo da 18 (le terzine uscite).
Terminati cicli avremo un record contenente per ogni terzina il totale di quante volte è uscita, un record con il numero massimo di uscite di una o più terzine. Con questi elementi potremo verifcare le condizioni del sistema, ovvero verificare se il massimo delle uscite è superiore a 4 e quante sono le terzine in calore.

Loop principale

put 1 record "Terzine" layout index
loop until record "Terzine" layout index > record "Terzine" layout count
begin


add 1 record "Terzine" layout index
end

Sopra potete vedere la routine di ciclo base, i … stanno ad indicare lo spazio per i comandi da far eseguire ad ogni ciclo.
Il loop deve avere come minimo i seguenti comandi:

  • Inizializzare l'indice - La prima riga setta a 1 l’indice del record “Terzine”
  • Definire la condizione - La seconda è la condizione da soddisfare ovvero confronta l’indice con il totale dei record. Se l’indice supera il conteggio il ciclo si interrompe (la condizione diventa vera quando si raggiunge la fine del record)
  • Aumentare l'indice - La riga con Add aumenta di 1 l’indice

Quindi tutti i comandi compresi tra begin ed end verranno eseguiti tante volte quanti sono gli elementi nel record “Terzine”

Loop secondario

put 1 record "18 terzine" layout index
loop until record "18 terzine" layout index > record "18 terzine" layout count
begin


add 1 record "18 terzine" layout index
end

All’interno del loop si possono inserire altre condizioni, nel nostro caso inseriremo un altro loop per poter
confrontare due record indicizzati e cioè “Terzine” e “18 terzine”.
Come potete vedere i due loop hanno la stessa struttura, quello che cambia è solo la loro posizione. Il loop secondario deve essere contenuto tutto all’interno del loop principale (ovvero tra begin ed end) altrimenti il programma segnalerà un errore.