Ricerca di un numero
- L'utente sceglie un numero n con 0 < n < 1024.
- Il programma scoprira` il numero nel minor tempo possibile.
- Si assume che il giocatore sia onesto!
*/
#include <iostream.h>
main() {
int max = 1024;
int min = 0;
// Il primo tentativo e` a meta` dell'intervallo, e quindi:
// min + (max - min) / 2 --> (max + min) / 2
int tentativo = (max + min) / 2;
char c;
do {
cout << "Ecco il mio tentativo: " << tentativo << endl;
cout << "Il tuo numero e` piu` (a)Alto, piu` (b)Basso, o (g)Giusto? ";
cin >> c;
switch (c) {
case 'b':
case 'B':
// Il numero da scoprire e` piu` basso: il nuovo massimo e` il vecchio
// tentativo e il nuovo tentativo e` a meta` del nuovo intervallo:
max = tentativo;
tentativo = (max + min) / 2;
break;
case 'a':
case 'A':
// Il numero da scoprire e` piu` alto: il nuovo minimo e` il vecchio
// tentativo
min = tentativo;
tentativo = (max + min) / 2;
case 'g':
case 'G':
// Trovato!
break;
default:
// Per qualunque altro tasto premuto abbiamo un errore!
cout << "\a";
cout << "Le risposte possibili sono a, b, g!" << endl;
}
} while ((c != 'g') && ( c != 'G'));
}
do-while e switch
Semplice programmino che con un semplice giochino si vede l'utilizzo del do-while e switch. In questo giochino il PC deve indovinare il numero da noi pensato; si intende che l'utente sia onesto.