Home  >  Informatica  >  Corso C++  >  Random

Random in C++

Download Slides in formato .pdf

Funzioni utili in C++

Il C++, come tutti i linguaggi, mette a disposizioni miriadi di funzioni utili ed anche indispensabili. Una tra queste, di sicuro, è la funzione rand() ovvero un generatore di valori interi casuali.

Funzione RAND

La funzione rand() senza argomenti restituisce un intero positivo da 0 ad un massimo che dipende dal sistema su cui il codice viene eseguito. Si può sapere il massimo con la costante RAND_MAX

Funzione RAND range

La funzione rand() genera un numero casuale.

La funzione rand() genera un numero casuale e si può dare un limite massimo inserendo l’operatore modulo % (resto)

Funzione chr

Una funzione utile è char(valore) che restituisce un carattere dal valore ASCII specificato.

Carattere ASCII

ASCII (American Standard Code for Information Interchange) è un sistema di codifica dei caratteri a 8 bit

Generatore di password



C’è un problema...

La funzione rand() genera sempre lo stesso numero casuale se non si resetta il generatore ad inizio esecuzione!

SOLUZIONE!

Si deve inizializzare con un numero. Per avere sempre una generazione di numeri diversi, si può usare il tempo in millisecondi attuali con la funzione time(NULL) e si passa alla funzione srand()

ESERCITAZIONE

Modificare il nostro generatore in modo da produrre delle password con questo formato: ASDF-FPIR-PORJ-PLOI Ovvero una password di lunghezza 15 composta da 4 gruppi di lettere maiuscole (codici ASCII da 65 a 90) separate da un trattino.

ESERCITAZIONE funzione chr e for

Stampare a video la tabella ASCII facendo stampare il numero decimale ed il carattere associato.

ESERCITAZIONE slot machine

Sapendo che una slot machine ha 3 rulli indipendenti da 10 simboli ciascuno, realizzare un piccolo programma che, in maniera random, visualizza 3 simboli tra un set di 10 simboli. Se i 3 simboli sono uguali viene stampata la scritta “hai vinto” altrimenti “ritenta”


Giochi con Random

La gran parte dei giochi contiene un generatore di valori casuali anche per rendere sempre lo scenario differente e non predicibile.
La funzione rand() genera un numero casuale e il generatore deve essere resettato all’inizio del programma.

Funzione RAND

La funzione rand() genera un numero casuale e il generatore deve essere resettato all’inizio del programma.

Per limitare la funzione rand() con un valore MASSIMO e un valore MINIMO, ci servirà l’operatore % RESTO.
Ricordiamo la REGOLA del RESTO:
Il resto non può mai essere uguale o maggiore del divisore
La funzione rand() genera un numero casuale e il generatore deve essere resettato all’inizio del programma.


La funzione rand() per il lancio di due dadi


Migliorare il gioco:

✽ Far inserire una puntata tra 1 e 100 €
✽ Primo tiro - Se si effettua 7 o 11 si vince raddoppiando la posta, altrimenti si perde
✽ Primo tiro - Se si effettua 2, 3 oppure 12 si perde
✽ Per qualsiasi altro numero, non 2, 3, 7, 11 o 12, si memorizza e si ritira finché non esce di nuovo quel numero, e si vince, oppure 7 e si perde.
✽ Il giocatore che tira i dadi gioca per vincere e punta sulla vittoria, un secondo giocatore, può puntare o sulla vincita o sulla perdita di chi tira i dadi.
✽ Inserire uno switch case che al posto dei numeri faccia uscire la faccia del dado come icona


Linguaggio C++