Introducción a la Programación Help

T5A3: Completando la lógica e implementando el juego

En los pasos previos ya hemos establecido la estructura básica del juego de aventura numérica. Ahora, en esta actividad, nos enfocaremos en completar la lógica del juego e implementar las funciones subsidiarias de playLevel(), así como en probar el juego en su conjunto.

Objetivo

El objetivo de esta actividad es completar la lógica del juego de aventura numérica, implementando las funciones subsidiarias necesarias para que el juego funcione correctamente. Al finalizar, deberás probar el juego para asegurarte de que todas las funcionalidades estén operativas.

Instrucciones

Para completar esta actividad, sigue estos pasos:

Implementar las funciones subsidiarias

Debemos implementar las siguientes funciones que serán llamadas desde playLevel():

  • presentChallenge(): Esta función presentará un reto numérico al jugador y devolverá su respuesta.

  • checkAnswer(): Esta función verificará si la respuesta del jugador es correcta o incorrecta.

  • updateStats(): Esta función actualizará la energía del jugador según si su respuesta fue correcta o incorrecta.

  • showResults(): Esta función mostrará un resumen final del juego, incluyendo la energía restante y la puntuación total.

Completar la función playLevel()

En paso anterior teniamos una versión básica de playLevel(). Ahora debemos modularizarla para que utilice las funciones subsidiarias que hemos implementado. La función playLevel() debe entonces seguir este flujo:

  1. Llamar a presentChallenge() para mostrar un reto al jugador y obtener su respuesta.

  2. Llamar a checkAnswer() para verificar la respuesta del jugador.

  3. Llamar a updateStats() para ajustar la energía del jugador según su respuesta.

  4. Mostrar un mensaje al jugador indicando si su respuesta fue correcta o incorrecta, junto con su energía actual.

  5. Incrementar el nivel actual del jugador.

Por consiguiente las funciones deben tener las siguientes firmas:

public static String presentChallenge() { // Lógica para presentar un reto y obtener la respuesta del jugador } public static boolean checkAnswer(String playerAnswer, String correctAnswer) { // Lógica para verificar la respuesta del jugador } public static void updateStats(boolean isCorrect) { // Lógica para actualizar la energía del jugador } public static void showResults() { // Lógica para mostrar el resumen final del juego }

presentChallenge()

Esta función seleccionará un reto numérico aleatorio del arreglo challenges, lo presentará al jugador mediante una ventana emergente y devolverá la respuesta del jugador.

Si seguimos la logica pasada, la función presentChallenge() podría verse así:

public static String presentChallenge() { int challengeIndex = (int) (Math.random() * challenges.length); String currentChallenge = challenges[challengeIndex]; String playerAnswer = InputHelper.showInputDialog( "Reto: " + currentChallenge, "Desafío Numérico"); return playerAnswer; }

checkAnswer()

Esta función comparará la respuesta del jugador con la respuesta correcta almacenada en el arreglo answers y devolverá true si la respuesta es correcta o false si es incorrecta.

public static boolean checkAnswer(String playerAnswer, String correctAnswer) { return playerAnswer.equals(correctAnswer); }

updateStats()

Esta función ajustará la energía del jugador según si su respuesta fue correcta o incorrecta. Si la respuesta es correcta, aumentará la energía en 10 puntos; si es incorrecta, la disminuirá en 15 puntos.

public static void updateStats(boolean isCorrect) { if (isCorrect) { playerEnergy += 10; } else { playerEnergy -= 15; } }

showResults()

Esta función mostrará un resumen final del juego, incluyendo la energía restante y la puntuación total del jugador.

public static void showResults() { String message = "Juego terminado!\n" + "Energía restante: " + playerEnergy + "\n" + "Puntuación total: " + (currentLevel - 1) * 10; InputHelper.showInfoDialog(message, "Resultados Finales"); }

playLevel()

Finalmente, debemos completar la función playLevel() para que utilice las funciones subsidiarias que hemos implementado. La función playLevel() podría verse así:

public static void playLevel() { String playerAnswer = presentChallenge(); int challengeIndex = (int) (Math.random() * challenges.length); String correctAnswer = answers[challengeIndex]; boolean isCorrect = checkAnswer(playerAnswer, correctAnswer); updateStats(isCorrect); String resultMessage = isCorrect ? "¡Correcto!" : "Incorrecto."; resultMessage += "\nEnergía actual: " + playerEnergy; InputHelper.showInfoDialog(resultMessage, "Resultado del Reto"); currentLevel++; }

playGame()

Finalmente, debemos crear la función playGame() que manejará el flujo completo del juego, llamando a initializeGame(), showIntro(), playLevel() en un bucle hasta que el jugador se quede sin energía o alcance el nivel máximo, y luego llamando a showResults().

public static void playGame() { initializeGame(); showIntro(); while (playerEnergy > 0 && currentLevel <= maxLevels) { playLevel(); } showResults(); }

Probar el juego

Una vez que hayas implementado todas las funciones, es hora de probar el juego en su conjunto. Asegúrate de quetodas las funcionalidades estén operativas y que el juego se comporte como se espera.

  1. Ejecuta el programa y verifica que la introducción se muestre correctamente.

  2. Juega a través de varios niveles, respondiendo a los retos numéricos.

  3. Asegúrate de que la energía del jugador se actualice correctamente según sus respuestas.

  4. Verifica que el resumen final muestre la energía restante y la puntuación total correctamente.

Al completar estos pasos, habrás finalizado la actividad T5A3, completando la lógica del juego de aventura numérica e implementando las funciones necesarias para su funcionamiento. ¡Buena suerte y diviértete programando!

Entrega

En un solo documento PDF, incluye lo siguiente:

  1. Portada con los siguientes datos:

    • Nombre del curso

    • Nombre del proyecto

    • Nombre de los integrantes del equipo

  2. Código fuente completo de la clase AventuraNumerica con la implementación de todas las funciones.

  3. Capturas de pantalla del juego en funcionamiento, mostrando la introducción, algunos niveles jugados y el resumen final.

  4. Breve explicación de cómo funciona cada función y las decisiones tomadas en su implementación.

  5. Resultados de las pruebas realizadas, incluyendo cualquier error encontrado y cómo se solucionaron.

  6. Reflexión sobre el proceso de desarrollo y lo aprendido durante la actividad.

  7. Cualquier mejora o característica adicional que te gustaría implementar en el futuro.

  8. Conclusión sobre la experiencia de programar el juego de aventura numérica.

Por consiguiente el documento debe estar bien organizado y presentado, facilitando la comprensión del trabajo realizado. Asegúrate de seguir este índice para estructurar tu entrega de manera clara y coherente:

  • Portada

  • Introducción

  • Código Fuente

  • Capturas de Pantalla

  • Explicación de Funciones

  • Resultados de Pruebas

  • Reflexión

  • Mejoras Futuras

  • Conclusión

¡Buena suerte con tu entrega!

Criterios de Evaluación

Criterio

Descripción

Puntos

Funcionalidad

El juego cumple con todos los requisitos especificados.

30%

Uso adecuado de funciones

Las funciones están correctamente implementadas y utilizadas.

25%

Experiencia del usuario

Mensajes claros y buena interacción con el jugador.

15%

Calidad del código

Código limpio, bien comentado y organizado.

15%

Documentación y presentación

El documento PDF está bien organizado y presenta toda la información requerida.

15%

Total

**100%

Last modified: 23 November 2025