Qualche anno fa anche io avevo cercato di creare una versione di "Indovina il numero",eccone una:

codice:
/*
*****************************************
**** NOME: indovina il numero v.3.5 *****
**** DATA: 21 Agosto 2002 ***************
*****************************************
Programma che genera due numeri casuali mediante la funzione "time" e riferisce
se un numero digitato è maggiore o minore di uno dei due numeri(in sequenza ciclica).
*/
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <time.h>
#include<dos.h>

int main(){


   int casuale,
       casuale2,
       numero=1001,
       numero2=1001,
	   sentinella=1,
       sentinella2=1,
       minore,
       maggiore;
   char selezione='s',
	nome[11],
	nome2[11];

   cout <<"\n    -----------------------------";
   cout <<"\n    | INDOVINA IL NUMERO(v.3.5) |\n";
   cout   <<"    -----------------------------\n";
   while(selezione=='s'){
	srand(time (0) *23);//generazione del seme
	(casuale =(rand() % 1001)); //generazione del numero casuale
	srand(time (0) );//generazione del secondo seme
	(casuale2 =(rand() % 1001)); //generazione del secondo numero casuale
	minore=0;
	maggiore=1000;
	cout <<"\n    E' stato generato un numero da 0 a 1000 per ogni giocatore. Indovinate!\n\n";
	cout <<"    Nome primo giocatore: COMPUTER("<<casuale<<")\n";
	cout <<"    Nome secondo giocatore: ";
	cin >> nome2;
	cout<<"\n";
	while(numero!=casuale || numero2!=casuale2){
		 if(numero!=casuale){
	       cout <<"    Turno di COMPUTER("<<casuale<<") : ";
	       numero=(minore+maggiore)/2;
	       if(numero==minore)
	       ++numero;
	       if(numero==maggiore)
	       --numero;
	       cout <<numero;
		       if(numero < casuale){
		 minore=numero;
			     cout<<"\n" << setw(2) <<sentinella <<") Troppo piccolo.\n\n";
		       }
		   if(numero > casuale){
		 maggiore=numero;
			 cout<<"\n" << setw(2) <<sentinella <<") Troppo grande.\n\n";
		       }
		       if(numero==casuale){
			 sound(100);
			 delay(100);
			 nosound();
			 cout<<"\n" << setw(2) <<sentinella <<") NUMERO INDOVINATO!\n\n";
		       }
	      ++sentinella;
	     }
	     if(numero2!=casuale2){
		       cout <<"    Turno di " <<nome2<< " : ";
	       cin >> numero2;
	       if(numero2==-1){
		 cout<<"    (il tuo numero e' "<<casuale2<<")\n";
	       }
		       if(numero2 < casuale2){
			     cout<< setw(2) <<sentinella2 <<") Troppo piccolo.\n\n";
		   }
		       if(numero2 > casuale2){
			     cout<< setw(2) <<sentinella2 <<") Troppo grande.\n\n";
		       }
		       if(numero2==casuale2){
			     sound(100);
			 delay(100);
			 nosound();
			     cout<< setw(2) <<sentinella2 <<") NUMERO INDOVINATO!\n\n";
		       }
	       ++sentinella2;
	     }
	}
	if(sentinella > sentinella2){
	      cout <<"    "<<nome2<<" vince con " <<sentinella2 -1 <<" tentativi.";
	}
	if(sentinella < sentinella2){
	      cout <<"    COMPUTER vince con " <<sentinella -1 <<" tentativi.";
	}
	if(sentinella==sentinella2){
	      cout <<"    Situazione di parita'.\n";
	}
	sentinella=1;
	sentinella2=1;
        numero=1001;
        numero2=1001;
    	cout <<"\n    Vuoi rigiocare? s/n : ";
	    cin >> selezione;
    	switch(selezione){
	          case 's' :
	              break;
	          case 'n' :
			  break;
	          default :
		             while(selezione!='s' && selezione!='n'){
		                  cout <<"    Selezione non valida,ripetere: ";
		                  cin >> selezione;
                     }
		             break;
        }
   }
   return 0;
}
Si gioca contro il computer!