Realizzeremo in questo tutorial il gioco indovina il numero in Python, anche conosciuto come giochino alto-basso.
Immaginiamo cioè che il calcolatore pensi un numero in un determinato intervallo e noi dobbiamo provare ad indovinarlo.
Risoluzione del gioco indovina il numero in Python
Indovinare un numero compreso tra 1 e 100, con un massimo però di 10 tentativi.
Funzione randrange()
Innanzitutto dobbiamo generare un numero random.
Per generare un numero random in python possiamo utilizzare il metodo randrange(), che genera un numero casuale in un intervallo specificato.
Ecco dunque la sintassi:
random.randrange(inizio,fine+1, step) #step è opzionale
Cioè ad esempio se vogliamo un numero compreso tra 2 e 7 dobbiamo impostare randrange (2,8).
Attenzione però, per utilizzare questo metodo dobbiamo importare la libreria che lo contiene.
Utilizziamo quindi questo comando:
import random
Pertanto, dopo aver generato il numero random, possiamo continuare ad implementare il nostro gioco.
Impostiamo il numero massimo di tentativi a 10 utilizzando, come già spiegato, la funzione range().
Dopo facciamo inserire in input un numero compreso tra 1 e 100 e controlliamo con l’istruzione if se questo numero è uguale a quello pensato dal computer. Se è uguale allora diamo in output il messaggio ‘indovinato’ e usciamo dal programma con la funzione break.
Altrimenti controlliamo se abbiamo ancora tentativi a disposizione. Se ne abbiamo, controlliamo anche se il numero che abbiamo inserito è minore di quello pensato dal computer. Se è così visualizziamo in output il messaggio ‘più alto‘ per suggerire di inserire un numero più alto.
Viceversa se invece il numero è maggiore del numero pensato dal computer diamo il messaggio ‘più basso‘ per suggerire di inserire un numero più basso.
Infine se abbiamo esaurito i tentativi avvisiamo l’utente con un messaggio in output.
Ecco dunque il codice completo:
import random #importiamo la libreria
n=random.randrange(1,101) #generiamo un numero random tra 1 e 100
for i in range(10):
x=int(input(‘Inserisci un numero compreso tra 1 e 100: ‘))
if x==n: #se ha indovinato
print(‘Hai indovinato al tentativo numero: ‘, i+1)
break #usciamo dal programma
elif i<9: #altrimenti se siamo ancora nel range
if x<n: #valutiamo se il numero è più basso di quello pensato dal computer
print(‘Inserisci un numero più alto’)
else: #valutiamo se il numero è più alto di quello pensato dal computer
print(‘Inserisci un numero più basso’)
else:
print(‘Mi spiace, hai esaurito i tentativi a disposizione’)
N.B. Facciamo il controllo se i<9 in quanto i diventa uguale a 9 solo dopo che inserisco l’ultimo numero.
Seconda soluzione
Un’altra possibile implementazione può essere ad esempio questa.
import random #importiamo la libreria
n=random.randrange(1,101) #generiamo un numero random tra 1 e 100
for i in range(10):
x=int(input(‘Inserisci un numero: ‘))
if x==n: #se ha indovinato
print(‘Hai indovinato al tentativo numero: ‘, i+1)
break #usciamo dal ciclo
elif x<n: #se il numero è più basso di quello pensato dal computer
print(‘Più alto’)
else:
print(‘Più basso’)
if x!=n:
print(‘Mi spiace, hai esaurito i tentativi a disposizione, il numero era’, n)
Sfruttando quanto detto nella precedente lezione al posto di if x!=n si può mettere l’else:
else:
print(‘Mi spiace, hai esaurito i tentativi a disposizione, il numero era’, n)
Infatti l’else viene eseguito solo se non si ha l’uscita dal break, cioè se il numero non è stato indovinato.
Terza soluzione con il ciclo indefinito
In quest’ultimo esempio non stabiliamo un numero predefinito di tentativi ma usciamo dal ciclo solo dopo aver indovinato il numero.
import random
n=random.randrange(1,101)
indovinato=0
while indovinato==0:
x=int(input(‘Inserisci un numero: ‘))
if x==n:
print(‘Hai indovinato’)
indovinato=1
elif x<n:
print(‘Più alto’)
else:
print(‘Più basso’)
Come potete vedere ci possono essere vari modi per implementare il gioco indovina il numero in Python. Proponete pure la vostra soluzione nei commenti sotto.
Alcuni link utili
Indice tutorial sul linguaggio Python
1 – Introduzione al linguaggio Python
2 – Le variabili
3 – Operatori aritmetici e di assegnazione
4 – Stringhe
5 – Casting
6 – Input e print
8 – Errori in python
9 – Script python
10 – Scambio di variabili in python
11 – Libreria math
12 – Operatori di confronto e booleani in python
13 – If else in python
14 – If elif else
15 – If annidati