Desarrollo Web

Juego Adivinanza Numérica

Descripción General

Desarrollado como un proyecto colaborativo entre un equipo de 4 personas dentro del Programa de Prácticas de Mayerfeld, el Juego Adivinanza Numérica es una aplicación interactiva para navegador y consola donde el jugador compite contra una IA simulada para adivinar un número oculto entre 1 y 100 con un máximo de 10 intentos.

El objetivo principal de esta tarea fue construir un motor de juego robusto y lógico utilizando JavaScript puro. Diseñado para la ejecución interactiva en terminal, el proyecto enfatiza conceptos fundamentales de programación, como la generación dinámica de números aleatorios, bucles de validación de entrada, seguimiento de intentos con estado, evaluación de retroalimentación condicional y un mecanismo integrado de puntuación de bonificación basado en la velocidad y la eficiencia.

El Desafío

Desarrollar un juego interactivo para consola requiere crear un flujo de control robusto que guíe al jugador con fluidez en cada turno, protegiéndolo de entradas inválidas y casos límite lógicos.
Entre los principales desafíos técnicos se incluyen:
     - Generación Aleatoria de Objetivos: Diseñar una función matemática precisa (generateRandomNumber) para producir valores enteros impredecibles entre 1 y 100 en cada sesión.

     - Gestión de Entradas con Protección: Diseñar una función de entrada aislada (getPlayerGuess) que solicite la entrada del usuario, la convierta a enteros, detecte entradas no numéricas o cancelaciones y vuelva a solicitarla continuamente hasta que se proporcione una respuesta válida.

     - Control del Estado y el Bucle del Juego: Gestionar un bucle por turnos (juego) que ejecuta hasta 10 intentos válidos, evaluando con precisión el estado de las respuestas ("demasiado alta", "demasiado baja" o "correcta") y aplicando los límites de fin de partida.

     - Arquitectura de Puntuación Adicional: Formular un algoritmo de puntuación matemática que evalúe el rendimiento del jugador y otorgue puntos dinámicos en función del número mínimo de intentos realizados.

     - Integración y Colaboración del Equipo: Coordinar el código entre 4 desarrolladores para garantizar estándares de codificación consistentes, una sintaxis limpia y una interoperabilidad de funciones perfecta sin excepciones en tiempo de ejecución en la consola.

Nuestro Enfoque

Trabajando en un equipo de cuatro personas, dividimos la aplicación en funciones JavaScript modulares con responsabilidad única, garantizando una programación defensiva y una ejecución impecable en cada paso:
     - Motor de Generación de Números Objetivo (generateRandomNumber): Utilizamos Math.random() y Math.floor() para generar un rango uniforme de enteros del 1 al 100.

     - Protección de Entrada Robusta (getPlayerGuess): Implementamos un bucle de validación que utiliza las comprobaciones parseInt() e isNaN(). Si el usuario introduce texto, deja el campo en blanco o introduce valores fuera de rango, la función muestra una alerta y vuelve a solicitar la entrada hasta recibir datos enteros válidos.

     - Evaluador de Comparación (checkGuess): Implementamos una función auxiliar que compara la suposición del jugador con el entero objetivo y devuelve cadenas de salida definitivas para proporcionar retroalimentación al jugador.

Controlador Principal del Juego (game): Integramos el bucle principal del juego que gestiona el estado de la sesión:
     - Inicializamos un contador de intentos con un límite de 10 turnos.

     - Se registraba retroalimentación en tiempo real después de cada intento, notificando al jugador si su puntuación era demasiado alta o demasiado baja.

     - Se incorporó un sistema dinámico de Puntuación de Bonificación que calcula los puntos finales proporcionales a los intentos restantes tras un acierto.

     - Se imprimían mensajes claros de victoria/derrota y el total de intentos utilizados directamente en la consola del desarrollador.

     - Revisión Colaborativa de Código: Se realizaron sesiones conjuntas de depuración para eliminar errores en casos excepcionales, optimizar el formato de la salida de la consola y mantener el cumplimiento del estándar ES6.

Galería de Proyectos

Resultados

Desarrollado con éxito en el marco del Programa de Prácticas Mayerfeld, el proyecto entregó un minijuego de consola atractivo y a prueba de errores que cumplió con todos los objetivos de la tarea, destacando además sólidos fundamentos de JavaScript puro:
     - Mecánica de Juego Impecable: Se ejecutaron sesiones de juego fluidas de 10 intentos con evaluación precisa del objetivo, límites de intentos y retroalimentación condicional instantánea.

     - Resistencia a la Entrada sin Errores: Se manejaron sin problemas entradas no válidas, letras y entradas de mensajes vacías, sin bloqueos ni excepciones de consola no controladas.

     - Sistema de Rendimiento Gamificado: Se integró con éxito un modelo de puntuación adicional que aumentó la rejugabilidad e incentivó la adivinación estratégica.

     - Colaboración Efectiva en Equipo: Se mantuvo un código base unificado, limpio y bien comentado mediante revisiones por pares estructuradas y resolución colaborativa de problemas entre los cuatro miembros.

AÑO

2026

SERVICIOS

Diseño y Desarrollo Web
Experiencia Interactiva
Ingeniería de Software Colaborativa

HERRAMIENTAS Y TECNOLOGÍA

JavaScript

HTML5

VS Code

Git

GitHub

Chrome DevTools

Consola API

ETIQUETAS

Desarrollo Web

Colaboración en Equipo

Mecánicas de juego

Programación Funcional

Lógica Algorítmica

Juego de Consola

JavaScript

¿Te interesa un proyecto similar?