Indovinare un numero

1

Il computer pensa un numero e l’utente deve indovinarlo

Continua finché…

import random

MAX     = 100
segreto = random.randint(1, MAX)
ancora  = True
while(ancora):    
    tentativo  = int(input("Prova a indovinare! "))
    if(tentativo < segreto):
        print("Troppo piccolo...")
    elif(tentativo == segreto):
        print("Complimenti!")
        ancora=False
    else:
        print("Troppo grande...")

Per sempre, a meno che…

import random

MAX     = 100
segreto = random.randint(1, MAX)
while(true):
    tentativo  = int(input("Prova a indovinare! "))
    if(tentativo < segreto):
        print("Troppo piccolo...")
    elif(tentativo == segreto):
        print("Complimenti!")
        break
    else:
        print("Troppo grande...")

2

Alla fine del gioco il computer comunica il numero di tentativi

import random

MAX        = 100
segreto    = random.randint(1, MAX)
contatore = 0
ancora     = True
while(ancora):    
    tentativo  = int(input("Prova a indovinare! "))
    contatore += 1
    if(tentativo < segreto):
        print("Troppo piccolo...")
    elif(tentativo == segreto):
        print("Complimenti!")
        ancora=False
    else:
        print("Troppo grande...")
            
if(contatore == 1):
    print("Hai fatto un tentativo!")
else:
    print("Hai fatto", contatore, "tentativi.")

3

L’utente pensa un numero e il computer deve indovinarlo

  • Il computer tenta con il numero al centro dell’intervallo
  • l’utente risponde con ‘più grande’ (>), ‘esatto’ (=) oppure ‘più piccolo’ (<)
import random

MAX       = 100
contatore = 0
minimo    = 1
massimo   = MAX
ancora    = True
while(ancora):    
    contatore += 1
    tentativo  = (minimo+massimo)//2
    messaggio  = str(tentativo) + " (>, =, <) ? "
    risposta   = input(messaggio)
    if(risposta == ">"):
        minimo = tentativo+1
    elif(risposta == "="):
        print("Mi faccio i complimenti!")
        ancora=False
    elif(risposta == "<"):
        massimo = tentativo-1
    else:
        print("Problemi di comunicazione")
        ancora=False
            
if(contatore == 1):
    print("Ho fatto un tentativo!")
else:
    print("Ho fatto", contatore, "tentativi.")

4

Se l’utente commette un errore, o tenta di imbrogliare, … il programma termina quando esaurisce l’intervallo dei numeri

while(ancora and minimo <= massimo):