
Gioco indovina numero in C
Il gioco indovina numero, che di seguito verrà sviluppato in C, è un gioco molto semplice che consiste nel cercare di indovinare un determinato numero generato a caso dal programma.
Procedimento
Il procedimento che ho intrapreso per lo sviluppo dell’algoritmo consiste in pochi semplici passi:
Primo passo – Facciamo generare un numero random a caso in un intervallo di tempo (si veda la spiegazione sui numeri random che ho spiegato in questo articolo), ad esempio tra 1 e 10. Memorizziamo il numero nella variabile n.
Secondo passo – Stabiliamo il numero dei tentativi massimi per indovinare il numero generato casualmente. Memorizziamo i tentativi in una variabile che chiamiamo tentativi.
Terzo passo – Generiamo il ciclo che si fermerà ad esempio dopo aver effettuato un certo numero di tentativi. Chiaramente si può impostare un numero a piacere.
Quarto passo – Facciamo inserire un numero all’utente e lo memorizziamo nella variabile x.
Quinto passo: Confrontiamo n con x:
se x è maggiore di n, diciamo di inserire un numero più piccolo;
se x è minore di n, diciamo di inserirne un numero più grande;
invece, se x è uguale ad n, i numeri sono uguali e abbiamo vinto per cui usiamo la funzione break per uscire dal programma.
Esempio del gioco indovina numero:
Il computer genera un numero random x. Ad esempio supponiamo che generi x=6.
Il programma dà tre possibilità per indovinare il numero.
Supponiamo che l’utente inserisca come prima possibilità il numero 8 quindi n=8. Il numero n è maggiore di x, allora il programma suggerisce all’utente di inserire un numero più basso.
All’utente viene chiesta una seconda possibilità e inserisce un numero più basso come da suggerimento, ad esempio 5 quindi n=5. Il numero n è minore di x e il programma gli suggerisce di inserire un numero più alto.
A questo punto l’utente ha due possibilità di indovinare il numero: o inserire il numero 6 oppure il numero 7.
Nel caso in cui l’utente deciderà di inserire il numero 6 il programma gli restituirà il messaggio “Hai vinto!“. Se invece deciderà di inserire il numero 7, il programma gli restituirà il messaggio “Hai perso!“
Chiaramente ci possono essere tanti procedimenti per la risoluzione del gioco indovina numero in C. Proponete la vostra.
Allego il codice di seguito.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i,n,x, tentativi=0;
srand( time (NULL) ); /* cambia il seme in base al tempo */
n=1+(rand() %10); /* genera un numero casuale compreso tra 1 e 10 */
printf("Indovina un numero tra 1 e 10, hai tre tentativi\n");
while(tentativi<3) {
printf("Inserisci un numero: ");
scanf("%d", &x);
if (x>n)
if(tentativi!=2)
printf("Inserisci un numero piu' piccolo\n", tentativi);
else printf("Hai perso, il numero da indovinare era %d\n" , n );
else if (x<n)
if(tentativi!=2)
printf("Inserisci un numero piu' grande\n", tentativi);
else printf("Hai perso, il numero da indovinare era %d\n" , n );
else {
printf("Hai vinto\n" );
break;
}
tentativi=tentativi+1;
}
return 0;
}
Alcuni link utili:
Ricerca di un elemento in una matrice
Array o vettori in linguaggio C
Media dei numeri in un array in linguaggio C