Scaricare la presentazione
1
Gioco dell’impiccato in C
Casuccio Giuseppe
2
Approccio modulare Parte operativa grafica
3
Come funziona il programma
Parte Operativa Come funziona il programma
4
Il programma sceglie una parola a caso dal dizionario presente in memoria
5
int *p_parola; /*puntatore*/
char dizionario [MAX_PAROLE] [MAX_LUNG_PAROLE+1]; dizionario = { “alfa”; “beta”; “gamma”; ...} randomize(); p_parola = dizionario[ random( MAX_PAROLE -1 ) ] lunghezza_parola = strlen(p_parola);
6
Come stampare la parola?
Inizializzo un vettore di VISIBILITA’ Se vett_visib[indice] è VISIBILE stampa ( parola[indice] ) Altrimenti stampa(“__”) aumenta incognite stampate;
7
typedef enum {NASCOSTA, VISIBILE} stato_lettera;
stato_lettera vett_visib[MAX_LUNG_PAR+1]; /* tutte le entrate sono NASCOSTE tranne la prima e l’ultima*/ vett_visib[0] = VISIBILE; vett_visib[lung_par] = VISIBILE; /* DA AGGIORNARE OGNI LETTERA CHIAMATA */
8
leggi_lettera() Già chiamata? E’ in parola? Si: esito = GIA_CHIAMATA
No: E’ in parola? Si : esito = TROVATA; aggiorna vett_visib; No: esito = NON_TROVATA; aumenta numero_errori;
9
leggi_lettera(); if (lettera_gia_chiamata(lettera)) /* Memorizzare un vettore esito = GIA_CHIAMATA; di lettere chiamate */ else { if (lettera_in_parola(lettera)) esito = TROVATA; aggiorna_vett_visib(lettera); } num_errori++; esito = ERRORE;
10
Parte Grafica “la schermata”
11
STAMPA LA FIGURA …blank… P-a-r-o-l-a rimanenti
12
Stampa_figura_e_parola (int errori)
{ /* esempio con errori = MAX_ERRORI */ switch ( errori ): { case MAX_ERRORI: - - - Stampa_blank(); printf(“ _____ - - - Stampa_blank(); printf(“ | | Stampa_parola(); printf(“ | - - - Stampa_blank(); printf(“ | |- - - - Stampa_blank(); printf(“ | / \ - - - Stampa_blank(); printf(“___.___ Stampa_blank rimanenti(); }
13
STAMPA LE INFORMAZIONI:
Errori rimanenti ESITO PRECEDENTE Leggi nuova mossa
14
printf (“ Errori Rimanenti: %d \n”,
MAX_ERR – errori_fatti); Stampa_esito_precedente(); * [GIA’ CHIAMATA] * [TROVATA] * [NON TROVATA] printf (“Inserisci una lettera: \n”); leggi_lettera();
15
La stampa della pagina deve essere in un ciclo, che termina quando:
C’è l’IMPICCATO (troppi errori); Gioco Completato; EOF (CTRL+Z)
16
Alla fine si controlla il motivo per cui si è usciti dal ciclo:
17
Se per troppi errori, stampa:
IMPICCATO, la parola esatta era: stampa_parola( );
18
/ * */ Se per il gioco completato, stampa: COMPLIMENTI, HAI VINTO!
Il gioco è completato se il numero di incognite stampate = 0 */
19
Se per il comando di EOF, stampa:
Hai deciso di uscire!
20
Fine presentazione
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.