Vai al contenuto

Progetto finale: indovina il numero

In questa lezione impari a

  • progettare un algoritmo completo partendo da un problema
  • usare insieme variabili, sequenza, selezione e cicli
  • generare un numero casuale con Random

Il computer pensa un numero, tu provi a indovinarlo con l'aiuto di indizi. Un solo algoritmo che usa tutto quello che hai imparato: variabili, sequenza, selezione e iterazione.

Il problema

Il computer sceglie a caso un numero segreto tra 1 e 50. L'utente prova a indovinarlo: dopo ogni tentativo il programma dice se il numero segreto è più alto o più basso, finché non viene indovinato. Alla fine mostra in quanti tentativi ci si è riusciti.

1. Variabili e numero casuale

  • Dichiara numeroSegreto, tentativo e contatore, tutte Integer.
  • Genera il numero segreto: numeroSegreto = Random(50) + 1. Random(50) dà un numero da 0 a 49, il + 1 lo porta tra 1 e 50.
  • Metti contatore = 0 e tentativo = 0: un valore che di sicuro non è il numero segreto, così si entra nel ciclo.

La funzione Random si trova tra le funzioni disponibili quando modifichi un blocco di assegnazione, di solito tra quelle matematiche.

2. Il ciclo dei tentativi

  • Un blocco Mentre che continua finché tentativo <> numeroSegreto.
  • Dentro il ciclo: chiedi un tentativo e aumenta il contatore di 1.

3. Gli indizi, dentro il ciclo

  • Se tentativo > numeroSegreto → mostra "Troppo alto!".
  • Altrimenti, se tentativo < numeroSegreto → mostra "Troppo basso!".
  • Se sono uguali, il ciclo finisce da solo al controllo successivo.

4. Il risultato

Fuori dal ciclo mostra: "Hai indovinato in " & contatore & " tentativi!".

Lo schema completo

Main
numeroSegreto = Random(50) + 1
contatore = 0, tentativo = 0
Mentre tentativo <> numeroSegreto
Input tentativo
contatore = contatore + 1
tentativo > numeroSegreto ?
VERO
"Troppo alto!"
FALSO
"Troppo basso!"
↩ torna a controllare tentativo <> numeroSegreto
Output "Hai indovinato in " & contatore & " tentativi!"
End

Nello schema il ramo FALSO dice sempre "Troppo basso!" per semplicità. Nel tuo diagramma metti lì il secondo Se, così quando indovini non compare nessun indizio.

Sfide extra

⭐⭐ Medio

Sfida 1 – Tentativi limitati. Aggiungi un massimo di 7 tentativi: se li superi, il gioco finisce con "Hai perso! Il numero era …".

⭐⭐⭐ Sfida

Sfida 2 – Quanto manca? Invece di dire solo alto o basso, dai un indizio più preciso: "Fuochino" se la differenza è al massimo 5, "Acqua" altrimenti.

Consegna: salva il file .fprg e gioca almeno 3 partite davanti all'insegnante, mostrando che il conteggio dei tentativi è corretto.

Complimenti: hai costruito il tuo primo algoritmo completo. Nel corso di Python userai esattamente questi concetti, scritti come testo invece che come diagramma.