En esta ocasión te presentamos un entretenido juego matemático escrito en C++ llamado "Adivina mi número". El juego consiste en adivinar un número elegido al azar entre 0 y 100 en un máximo de 4 intentos. Por cada intento fallido, el programa proporcionará pistas al jugador, indicándole si el número es mayor o menor al número secreto.
Si se sobrepasa el rango permitido (de 0 a 100), el programa solicitará que introduzca un número válido y lo evaluará solo cuando cumpla esta condición.
Chequemos el código:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
// Semilla aleatoria para generar el número secreto
srand(time(0));
int numeroSecreto = rand() % 101; // Genera un número aleatorio entre 0 y 100
int intentos = 0;
int intentoUsuario;
cout << "¡Hola! ¡Bienvenido al juego \"Adivina Mi Número\"!" << endl;
cout << "He pensado en un número secreto entre 0 y 100, y tu misión es adivinarlo en un máximo de 4 intentos." << endl;
do {
intentos++;
switch (intentos) {
case 1:
cout << "Introduce tu primer intento: ";
break;
case 2:
cout << "Introduce tu segundo intento: ";
break;
case 3:
cout << "Introduce tu tercer intento: ";
break;
case 4:
cout << "Introduce tu cuarto intento: ";
break;
}
// Verifica si la entrada está en el rango válido
while (true) {
cin >> intentoUsuario;
if (intentoUsuario >= 0 && intentoUsuario <= 100) {
break; // Sale del bucle si la entrada es válida
} else {
cout << "Número no válido. El rango de operación es de 0 a 100. Por favor, introduce un número válido:";
}
}
if (intentoUsuario < numeroSecreto && intentos < 4) {
cout << "Mi número es mayor. Intenta de nuevo." << endl;
} else if (intentoUsuario > numeroSecreto && intentos < 4) {
cout << "Mi número es menor. Intenta de nuevo." << endl;
} else if (intentoUsuario != numeroSecreto) {
cout << "Agotaste tus 4 intentos. Mi número secreto era: " << numeroSecreto << endl;
} else {
cout << "¡Felicidades! Adivinaste mi número en " << intentos << " intentos." << endl;
}
} while (intentoUsuario != numeroSecreto && intentos < 4);
return 0;
}
El código ha sido probado en Code::Blocks en Windows, por lo que es completamente funcional.
Puedes descargar el código .CPP aquí.
NOTA: Si los acentos o caracteres especiales no se muestran correctamente, puedes checar esta solución: ¿Cómo mostrar acentos y caracteres especiales en programas escritos en C++?