Generare un numero casualmente, per creare imprevisti, aggiunge
eccitazione ad un gioco. Il cambio di strategia esercitato da un
simulatore degli scacchi o l'improvvisa apparizione di una creatura
nemica in un FPS, introduce nel giocatore il fattore sorpresa.
Per richiamare la funzione rand(), per prima cosa è
necessario include un nuovo file libreria nel programma.
#include<cstlib>
Questo file contiene tra le altre cose, una funzione che permette
di generare numeri casuali. Una volta incluso il file, siamo liberi
di richiamare la funzione che contiene rand(),
la quale viene inserita nella funzione main().
int
numerocasuale = rand();
Utilizzando questa funzione viene
generato un numero casuale assegnato alla variabile intera
numerocasuale, questo
valore viene generato come ritorno dalla funzione. Questa funzione
come si capisce dalle due parentesi chiuse non ha bisogno di
argomenti per essere richiamata.
Generare un seme per il generatore numerico
I computer a
differenza di un dado fisico lanciato varie volte, possono generare
solo numeri pseudocasuali basati
su una formula. Un modo di pensare è che la funzione rand() legge da
un grande libro di numeri casuali predeterminati. Ma la funzione
rand() inizia sempre da un punto diverso la lettura di questo libro.
Per modificare il punto di inizio della funzione vien utilizzato
l'orologio interno del calcolatore utilizzando la libreria ctime.
Pertanto viene determinato il seme mediante la funzione:
srand(time(0));
Questa funzione è corretta in quanto time(0)
restituisce un numero basandosi sull'ora corrente, la quale
costituisce il seme per il valore casuale.
Calcolare un numero casuale in un intervallo
Dopo aver generato un valore
intero mediante la funzione srand(), il
valore casuale determinato è compreso tra 0 e 32677, per limitare
questo intervallo si utilizza quindi l'operazione matematica modulo.
int dado
= (numerocasuale % 6)+1;
In questo caso simuliamo un dado
a 6 facce che può assumere un valore numerico casuale compreso tra 1
e 6, il risultato che volevamo ottenere vien ottenuto sommando 1 al valore dell'operazione modulo.
Nessun commento:
Posta un commento