Programma di esempio BINGO.PRT |
; BINGO
;
; Programma per Proteus
;
; (C) 1998-2003 Simone Zanella Productions
;
; Estrazione casuale completa (senza reinserimento) a console
; dei numeri dall'1 al 90. Dimostra l'uso di code e vettori;
; l'ingresso e l'uscita di default sono ignorati.
; Parametri impliciti: input e output predefiniti nulli
;!proteus -z
FUNCTION Extract(limit, numbers, extlist)
; Estrae un numero casuale
rn = INC(RANDOM(limit))
ENQUEUE(extlist, VECGET(numbers, rn))
VECDEL(numbers, rn, 1)
RETURN DEC(limit)
; Costruisce la lista dei numeri da estrarre (1-90)
Numbers = VECNEW(90)
ExtList = QUEUENEW()
FOR NumExt = 1 TO 90
VECSET(Numbers, NumExt, NumExt)
NEXT
Limit = 90
; Estrae ogni numero
WHILE Limit
Limit = Extract(Limit, Numbers, ExtList)
LOOP
; Stampa la lista dei numeri estratti
FOR NumExt = 1 TO 90
CONSOLELN "Numero " PFORMAT("2d", NumExt) ": " \
PFORMAT("2d", DEQUEUE(ExtList))
NEXT
ABORT 0