ciao a tutti!!!![]()
sto realizzando il gioco dell'impiccato in c e, cercando in giro, ho trovato il codice per una delle tante realizzazioni...
ho un problema a capire a che cosa serve la funzione time(&t) e srand(t).![]()
![]()
![]()
vi scrivo la parte di programma dove vengono utilizzate (playgame è la funzione contenente la parte di codice che legge la parola da un file, acquisisce i caratteri da tastiera e li cerca nella parola).
void playgame(int option) {
char parola[20];
int num=0, cont=0, doit=0, started=0, i=0;
char c, gioc1[20], gioc2[20], buf[20];
FILE *fp;
time_t t;
time(&t);
srand(t);
t=rand();
t=t%NUM_PAROLE;
switch(t) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
do {
c=fgetc(fp);
num=c-'0';
} while(num!=t && c!=EOF); break;
}
// copio la parola presa (a caso) dal file nel buffer...
i=0;
for(;{
c=fgetc(fp);
if(c=='#')
break;
else
parola[i]=c;
i++;
}
fclose(fp);
praticamente il file delle parole è questo:
1insalata#
2ciao#
3computer#
...
e in t ho il numero (casuale) corrispondente alla parola. a che serve lo switch??? e i comandi time(&t) e srand(t)?
un'altra domanda. l'array di caratteri parola è una variabile globale e la dichiaro prima del main. siccome il programma, finita una partita, torna al menu e si può giocare subito un'altra volta, mantiene, in parola, la vecchia parola scelta quindi se la nuova parola è più piccola mi mantiene i vecchi caratteri. come faccio a cancellare la parola? in java avrei fatto qualcosa del tipo parola=null ma in c come si fa???
grazie tante a chiunque risp...
![]()
![]()
![]()