Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C] Gioco impiccato

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    83

    gioco impiccato in c

    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...

  2. #2
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Servono per avere un numero (pseudo)casuale ogni volta
    Poteva fare semplicemente srand(time(NULL));
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  3. #3
    Se ti può essere utile ho realizzato tempo fa un progetto simile, è solo testuale e si può switchare far due vocabolari (Inglese ed italiano), lo trovi corredato dal codice sorgente qui:

    http://www.code4fun.org/_games/hangmancpp/

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    83
    --------------------------------------------
    Poteva fare semplicemente srand(time(NULL));
    --------------------------------------------

    si ma srand(time(NULL)) cosa mi restituisce? un intero? devo fare comunque t=rand() oppure faccio t=srand(time(NULL))???
    e per annullare la parola come faccio??
    grazie 1000 cmq x la disponibilità...


    x alvaro vitali...
    grazie x il link e x i codici ma sono in c++ e io nn lo conosco...


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.