PDA

Visualizza la versione completa : [C]prob con num casuale


Alex'87
08-10-2003, 20:43
provate questo codice e ditemi perkè i tre numeri sono uguali...
grazie


#include <stdio.h> /* */
#include <stdlib.h> /* */
#include <time.h> /* inclusione librerie */

int pv, dm, dif, nome[10], /* variabili del personaggio */
forza, intelligenza, vitalita, /* variabili per caratteristiche */
dadoPOZ, dado6, dado12, /* variabili dei dadi */
menu1, menu2, /* variabili dei menu */
giorno, ore, min; /* variabili del tempo */


void CreaEroe() /* creare il personaggio */
{
printf("\t\n");
printf("\tCREAZIONE PERSONAGGIO\n");
printf("\t\n");
printf("\tPrima di cominciare devi crearti il personaggio.\n");
printf("\tInnanzitutto dai un nome al tuo personaggio:\n");
printf("\t\n");
printf("\t");
scanf("%s", nome);
printf("\t\n");
printf("\tOk %s, adesso stabiliremo le caratteristiche\n", nome);
printf("\tdel tuo personaggio...\n");
printf("\t\n");

/* tiro x determinare la forza */
srand((unsigned)time(NULL));
forza=1+rand()%6;
printf("\tTiro dado per determinare la FORZA: %d\n", forza);
/* tiro x determinare la vitalità */
srand((unsigned)time(NULL));
vitalita=1+rand()%6;
printf("\tTiro dado per determinare la VITALITA\': %d\n", vitalita);
/* tiro x determinare l'intelligenza */
srand((unsigned)time(NULL));
intelligenza=1+rand()%6;
printf("\tTiro per determinare l\'INTELLIGENZA: %d\n", intelligenza);
}

main() /* funzione MAIN */
{
CreaEroe();
system("PAUSE");
}

LeleFT
08-10-2003, 20:48
Semplice: reinizializzi 3 volte il generatore con lo stesso seme!

Lascia la prima istruzione srand e togli le altre 2.



Ciao.

Alex'87
08-10-2003, 20:52
ma mi servono tutti e tre i tiri di dado!! se no come facciop a creare il personaggio del mio RPG testuale?

LeleFT
08-10-2003, 20:55
la funzione che ti restituisce un numero casuale è rand(), mentre srand serve solo a inizializzare il seme.
Tu inizializzi con srand(), poi fai tre chiamate successive alla funzione rand() che ti restituisce 3 numeri pseudo-causali.



Ciao.

Alex'87
08-10-2003, 21:07
sonoun novellino... ti spiegheresti meglio?

ty

cosadevo fare?

LeleFT
08-10-2003, 21:21
Devi fare così:



#include <stdio.h> /* */
#include <stdlib.h> /* */
#include <time.h> /* inclusione librerie */

int pv, dm, dif, nome[10], /* variabili del personaggio */
forza, intelligenza, vitalita, /* variabili per caratteristiche */
dadoPOZ, dado6, dado12, /* variabili dei dadi */
menu1, menu2, /* variabili dei menu */
giorno, ore, min; /* variabili del tempo */


void CreaEroe() /* creare il personaggio */
{
printf("\t\n");
printf("\tCREAZIONE PERSONAGGIO\n");
printf("\t\n");
printf("\tPrima di cominciare devi crearti il personaggio.\n");
printf("\tInnanzitutto dai un nome al tuo personaggio:\n");
printf("\t\n");
printf("\t");
scanf("%s", nome);
printf("\t\n");
printf("\tOk %s, adesso stabiliremo le caratteristiche\n", nome);
printf("\tdel tuo personaggio...\n");
printf("\t\n");

/* tiro x determinare la forza */
srand((unsigned)time(NULL));
forza=1+rand()%6;
printf("\tTiro dado per determinare la FORZA: %d\n", forza);
/* tiro x determinare la vitalità */

srand((unsigned)time(NULL));

vitalita=1+rand()%6;
printf("\tTiro dado per determinare la VITALITA': %d\n", vitalita);
/* tiro x determinare l'intelligenza */

srand((unsigned)time(NULL));

intelligenza=1+rand()%6;
printf("\tTiro per determinare l'INTELLIGENZA: %d\n", intelligenza);
}

main() /* funzione MAIN */
{
CreaEroe();
system("PAUSE");
}


Togli le istruzioni in grassetto.


Ciao.

Loading