Grazie. Sei stato chiaro. Cmq il C sarà stupido come tutti i bambini che hanno bisogno di informazioni per sapere, ma chi l'ha inventato è un.....Genio!!
Grazie ) A proposito, un'altra domanda su questo esercizio che sto svolgendo...:
se devo randomizzare un'estrazione di numeri casuali, dunque passare dalla funzione rand() alla funzione srand(seed) ed ancora meglio alla funzione srand(time(NULL)), sono sufficienti i 2 file di intestazione
#include <stdio.h>
#include <stdlib.h>
o è necessario anche il file di intestazione
#include <time.h>? Dunque:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
Nello svolgimento dell'esercizio, il libro riporta nella soluzione la seconda opzione ma in questo esercizio "gioco del craps" non ho utilizzato il file di intestazione <time.h> per usare la randomizzazione con srand(time(NULL)):
// FIGURA 5.14: Simulazione del gioco del "craps".
// Codice sorgente:
#include <stdio.h>
#include <stdlib.h>
int main( void ) {
srand( time( NULL ) );
puts( "Gioco del \"craps\".\n" );
puts( "Vi presentiamo il gioco del \"craps\"!!!\n\nVerranno lanciati 2 dadi contemporaneamente. In base al risultato della somma dei numeri estratti si ha:\nVINCENTE: se al primo lancio il risultato della somma dei numeri estratti è: 7 oppure 11.\nPERDENTE: se al primo lancio il risultato della somma dei numeri estratti è: 2 oppure 3 OPPURE 12.\nNegli altri casi verrà acquisito il risultato della somma dei numeri estratti come PUNTEGGIO DEL GIOCATORE.\nSi continueranno a lanciare i dadi finchè, se il risultato della somma dei numeri estratti a ciascun successivo lancio è 7 allora HAI PERSO!\nSe il risultato della somma dei numeri estratti a ciascun successivo lancio è pari al punteggio del giocatore allora HAI VINTO!\n" );
printf( "%8s", "1^ lancio:\n" );
int dice1A = 1 + rand() % 6;
printf( "\n%-8s%8d\n", "1^ DADO", dice1A );
int dice1B = 1 + rand() % 6;
printf( "%-8s%8d", "2^ DADO", dice1B );
int result1 = dice1A + dice1B;
printf( "%-8s%5d", "\n\nIl risultato della somma dei numeri estratti è:", result1 );
switch( result1 ) {
case 7:
printf( "%8s", "\n\nHAI VINTO!!\n" );
break;
case 11:
printf( "%8s", "\n\nHAI VINTO!!\n" );
break;
case 2:
printf( "%8s", "\n\nHAI PERSO!!\n" );
break;
case 3:
printf( "%8s", "\n\nHAI PERSO!!\n" );
break;
case 12:
printf( "%8s", "\n\nHAI PERSO!!\n" );
break;
default:
printf( "%-8s%14d", "\n\nIl tuo PUNTEGGIO\nè:", result1 );
int dice2A = 1 + rand() % 6;
printf( "\n%8s", "\n2^ lancio:\n" );
printf( "\n%-8s%8d\n", "1^ DADO", dice2A );
int dice2B = 1 + rand() % 6;
printf( "%-8s%8d", "2^ DADO", dice2B );
int result2 = dice2A + dice2B;
printf( "%-8s%5d", "\n\nIl risultato della somma dei numeri estratti è:", result2 );
while ( result2 != result1 ){
int dice2A = 1 + rand() % 6;
printf( "\n%8s", "\nSuccessivo lancio:\n" );
printf( "\n%-8s%8d\n", "1^ DADO", dice2A );
int dice2B = 1 + rand() % 6;
printf( "%-8s%8d", "2^ DADO", dice2B );
result2 = dice2A + dice2B;
printf( "%-8s%5d", "\n\nIl risultato della somma dei numeri estratti è:", result2 );
if( result2 == 7 ) {
printf( "%8s", "\n\nHAI PERSO!!\n" );
break;
}
if( result2 == result1 ) {
printf( "%8s", "\n\nHAI VINTO!!\n" );
break;
}
}
break;
}
}
Mi chiedo dunque se è indispensabile.
Grazie.