Blog Informatica & Programmazione

  1. Indovina Numero
    [LIVELLO BASE]

    Avatar
    Tags
    Giochi
    By giratina23 il 19 Feb. 2012
     
    1 Comments   2,884 Views
    .

    Indovina Numero



    Uno dei giochi più semplici da sviluppare è il numero da indovinare, un gioco che può essere sviluppato con tutti i linguaggi di programmazione e che non richiede di un'interfaccia grafica.
    Nel gioco, l'utente deve indovinare un numero che viene scelto casualmente dal programma, che può andare da 1 a 100, o per renderlo ancora più difficile da 1 a 1000.

    Pre-requisiti:

    • Conoscenza del ciclo Do-While;

    • Conoscenza della funzione di randomizzazione di un numero (Topic Apposito;)

    • Conoscenza delle variabili e delle istruzioni per leggere una variabile in input dall'utente;

    • Conoscenza delle condizioni if-else (Spiegazione del concetto;


    Utilizzerò inizialmente il Visual Basic e il C, come linguaggi per esporre il codice, ma è possibile sviluppare questo programma anche con gli altri linguaggi di programmazione.
    L'algoritmo per rappresentare questo gioco è rappresentato dai seguenti passaggi:

    1. Si dichiara una variabile che contiene i numeri interi da randomizzare che vanno da 1 ad un numero scelto dal programmatore;

    2. si dichiara la variabile del Numero che l'utente deve inserire;

    3. con un ciclo pre-condizionale si legge un numero inserito dall'utente che verrà inserito nella variabile Numero;

    4. Se il numero inserito è maggiore del numero randomizzato, stampa un messaggio a video che dice all'utente che il numero inserito è troppo alto

    5. Se invece, il numero inserito è più basso del numero randomizzato stampa un messaggio a video che dice che il numero inserito è più basso rispetto al numero randomizzato

    6. Altrimenti l'utente ha indovinato e quindi stampa un messaggio che dica all'utente che ha indovinato;

    7. Torniamo all'inizio del codice e creiamo una variabile di tipo intero inizializzato a 0, che rappresenta il numero di tentativi fatti dall'utente

    8. Ora andate nelle prime due condizioni e oltre al messaggio 'troppo basso' o 'troppo alto', incrementa la variabile dei tentativi

    9. Andare nell'else, e stampare il numero di tentativi effettuati per indovinare il numero;


    -Risoluzione in Visual Basic:
    CODICE
    Randomize() 'funzione che Varia casualmente un numero ogni volta che il programma viene eseguito
    Dim x As Integer = Int(1000 * Rnd() + 1) 'Il numero casuale che va da 1 a 1000
    Dim Numero As Integer 'Il numero che l'utente inserisce
    Dim Tentativi As Integer = 0 'Il numero di tentativi effettuati nel corso del gioco
    Do 'Inizio ciclo pre-condizionale
    Console.Write("Inserisci il numero: ") 'Spazio per scrivere il valore della variabile Numero
    Numero = Console.ReadLine() 'Il numero inserito dall'utente viene letto
    If((Numero > 1000) Or (Numero <= 0)) Then 'Verifica se il numero è valido
     Console.WriteLine("Numero Non valido!") 'Se non è valido stampa un messaggio con scritto Non valido!
    Else 'Altrimenti
      If(Numero > x) Then 'Verifica se il Numero è maggiore di x
       Console.WriteLine("Troppo alto!") 'Se è vero stampa un messaggio con scritto Troppo alto!
       Tentativi = Tentativi + 1 'Si incrementano i tentativi effettuati
      Else 'Altrimenti
        If(Numero < x) Then 'Verifica se il numero è minore di x
         Console.WriteLine("Troppo basso!") 'Se è vero stampa un messaggio con scritto Troppo basso!
         Tentativi = Tentativi + 1 'Si incrementano i tentativi effettuati
        Else 'Altrimenti
          Console.WriteLine("Bravo hai indovinato!") 'Stampa un messaggio con scritto Bravo hai indovinato!
          Tentativi = Tentativi + 1 'Si incrementano i tentativi effettuati
          Console.WriteLine("Tentativi effettuati: " & Tentativi) 'Stampa i tentativi effettuati
    Loop While(Numero <> x) 'Il ciclo si ripete finché il Numero inserito dall'utente è diverso dal numero scelto casualmente
    Console.Write("Premere invio per terminare...") 'Messaggio che da indicazioni all'utente su come terminare il programma
    Console.ReadLine() 'funzione che tiene aperto il programma, una volta che il gioco è completato, in modo da poter visualizzare il risultato.


    Vediamo ora questo gioco in linguaggio C:
    CODICE
    int main() {
    int i;
    srang(Tim(NULL));
    i = rand() % 1000 + 1;
    int Numero;
    int Tentativi = 0;
    Do {
    printf("Inserisci il numero: ");
    scanf("%d", & Numero);
    if(Numero <= 0 || Numero > 1000) {
     printf("Numero non valido! \n");
    }
    else if(Numero > x) {
     printf("Troppo alto! \n");
     Tentativi++;
    }
    else if(Numero < x) {
     printf("Troppo basso! \n");
     Tentativi++;
    }
    else {
     printf("Bravo, hai indovinato! \n");
     Tentativi++;
     printf("tentativi effettuati: %d", Tentativi);
    } while(Numero != x);
    }


    Edited by giratina23 - 7/4/2012, 17:02
      Share  
     
    .

Comments
  1. Smithg848
    view post
     
    .

    User deleted

    User deleted


    Normally I do not read post on blogs, but I wish to say that this writeup very compelled me to try and do it! Your writing style has been surprised me. Thanks, quite great article. eekdgdebdfddaked
     
    Top
    .