Gioco Indovina il Numero con Ciclo While in Java


Spiegazione del Gioco "Indovina il Numero"

Questo programma Java implementa un semplice gioco in cui il computer sceglie un numero casuale e il giocatore deve indovinarlo ricevendo degli aiuti.

Struttura del Programma

Import e Dichiarazioni Iniziali

import java.util.Scanner;
import java.util.Random;

Il programma importa due classi fondamentali:

  • Scanner: per leggere l'input dell'utente dalla tastiera
  • Random: per generare numeri casuali

Variabili Principali

Scanner input = new Scanner(System.in);
int segreto = new Random().nextInt(100) + 1; // 1 - 100
System.out.println("Il numero segreto e': "+segreto); // solo per debug
int tentativo = 0;
int conta = 0;

Le variabili utilizzate sono:

  • input: oggetto Scanner per leggere i dati inseriti dall'utente
  • segreto: il numero casuale da indovinare (compreso tra 1 e 100)
  • tentativo: memorizza il numero inserito dal giocatore
  • conta: conta quanti tentativi ha fatto il giocatore

Come Funziona il Gioco

Generazione del Numero Segreto

Il numero segreto viene generato con:

int segreto = new Random().nextInt(100) + 1;
  • nextInt(100) genera un numero da 0 a 99
  • Aggiungendo + 1 otteniamo un numero da 1 a 100

Ciclo Principale del Gioco

while(tentativo != segreto){
    System.out.println("Inserisci un numero (1-100)");
    tentativo = input.nextInt();
    conta++;

    if(tentativo > segreto) System.out.println("Troppo Alto");
    else if(tentativo < segreto) System.out.println("Troppo Basso");
}

Il ciclo while continua finché il giocatore non indovina il numero:

  1. Richiesta input: chiede al giocatore di inserire un numero
  2. Lettura tentativo: legge il numero inserito
  3. Incremento contatore: aumenta il numero di tentativi
  4. Controllo e suggerimenti:
    • Se il numero è troppo alto, stampa "Troppo Alto"
    • Se il numero è troppo basso, stampa "Troppo Basso"
    • Se è uguale, il ciclo termina

Messaggio Finale

System.out.println("Complimenti ! hai indovinato il numero "+segreto+" in "+conta+" mosse");

Quando il giocatore indovina, il programma mostra un messaggio di congratulazioni con il numero di tentativi effettuati.

Esempio di Esecuzione

Il numero segreto e': 42
Inserisci un numero (1-100)
50
Troppo Alto
Inserisci un numero (1-100)
25
Troppo Basso
Inserisci un numero (1-100)
42
Complimenti ! hai indovinato il numero 42 in 3 mosse

Nota Importante

La riga che stampa il numero segreto è presente solo per debug (test del programma). In un gioco reale, questa riga dovrebbe essere rimossa per mantenere il mistero!


Esercitazione svolta

/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
 */
package indovinailnumero;

import java.util.Scanner;
import java.util.Random;
/**
 *
 * @author perna.mario
 */
public class IndovinaIlNumero {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int segreto = new Random().nextInt(100) + 1; // 1 - 100
        System.out.println("Il numero segreto e': "+segreto); // solo per debug
        int tentativo = 0;
        int conta = 0;

        while(tentativo != segreto){
            System.out.println("Inserisci un numero (1-100)");
            tentativo = input.nextInt();
            conta++;

            if(tentativo > segreto) System.out.println("Troppo Alto");
            else if(tentativo < segreto) System.out.println("Troppo Basso");
        }

        System.out.println("Complimenti ! hai indovinato il numero "+segreto+" in "+conta+" mosse");
    }
}