0Pricing
C++ Academy · Lección

Un juego de adivinar números

Implemente un pequeño juego interactivo de adivinar números con números aleatorios.

Un juego de adivinar números es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C++ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C++ Academy incluye 4 lecciones en total.

Plan del juego

El programa elige un número secreto del 1 al 100. El usuario intenta adivinarlo y el programa indica «demasiado alto» o «demasiado bajo». Se gana después de un número fijo de intentos o al acertar el número.

Cabeceras necesarias

Para generar números aleatorios y realizar E/S.

#include <iostream>
#include <random>
#include <string>

Generar el número secreto

Use las facilidades modernas de <random>. Inicialice la semilla una sola vez.

std::random_device rd;
std::mt19937 engine(rd());
std::uniform_int_distribution<int> dist(1, 100);
int secret = dist(engine);

Bucle principal

Muestre el indicador, lea la entrada, compárela y repita hasta acertar.

int guess;
int attempts = 0;
while (true) {
    ++attempts;
    std::cout << "Guess (1-100): ";
    if (!(std::cin >> guess)) break;
    if (guess == secret) {
        std::cout << "Got it in " << attempts << " tries\n";
        break;
    }
    std::cout << (guess < secret ? "too low" : "too high") << "\n";
}

Limitar los intentos

Añada un número máximo de intentos para aumentar la dificultad del juego.

const int MAX = 10;
if (attempts >= MAX) {
    std::cout << "Out of tries! It was " << secret << "\n";
    break;
}

Validar la entrada

Si el usuario introduce un valor no numérico, cin entra en estado de error. Recupérese de forma controlada.

if (!(std::cin >> guess)) {
    std::cin.clear();
    std::cin.ignore(10000, '\n');
    std::cout << "Please enter a number\n";
    continue;
}

Intentos fuera de rango

Rechace los números fuera del rango del 1 al 100 antes de contabilizar el intento.

if (guess < 1 || guess > 100) {
    std::cout << "Out of range\n";
    --attempts;     // not a real attempt
    continue;
}

Bucle de repetición

Cuando termine una partida, pregunte al usuario si quiere volver a jugar.

std::cout << "Play again? (y/n): ";
char reply;
std::cin >> reply;
if (reply != 'y') break;

Registrar estadísticas

Conserve los totales entre partidas: la mejor puntuación, el promedio de intentos y el total de victorias.

int wins = 0;
int bestAttempts = INT_MAX;
// update inside the win branch

Personalizar el rango

Permita que el usuario elija los modos fácil (1..10), medio (1..100) o difícil (1..1000). Ajuste dist en consecuencia.

Sistema de pistas

Opcionalmente, después de varios intentos incorrectos, reduzca el rango. «Es como mínimo 40».

Separar en funciones

Refactorice el código en generateSecret(), readGuess(), playRound() y main(). Cada función debe encargarse de una sola tarea.

Comprobación rápida

¿Qué secuencia de inclusiones de cabeceras se necesita para generar un número aleatorio en C++ moderno?

Resumen

Un juego de adivinar números reúne la generación de números aleatorios, la validación de entradas, los bucles y el estado del juego. Refactorice el código en funciones pequeñas y añada repetición, estadísticas y niveles de dificultad para perfeccionarlo.

Preguntas frecuentes

¿La lección «Un juego de adivinar números» es gratis?

Sí — el texto completo de «Un juego de adivinar números» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C++ Academy, actualiza a CoddyKit PRO. El curso de C++ Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Un juego de adivinar números»?

Implemente un pequeño juego interactivo de adivinar números con números aleatorios. Practicas C++ Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C++ Academy?

No se requiere experiencia previa. C++ Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Un juego de adivinar números»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C++ Academy?

Sí. Cada lección de C++ Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Construcción de una calculadora CLI sencilla
  2. Lectura y escritura de archivos CSV
  3. Un juego de adivinar números
  4. Un contador de frecuencia de palabras
← Volver a C++ Academy