Universidad de Costa Rica
Escuela de Ciencias de la Computación e Informática
CI-0202 Principios de informática - 2012b
Profesor Jeisson Hidalgo-Céspedes
Fecha: 27-ago-2012. Entrega grupo 10: 10-set-2012, grupo 08: 11-set-2012.

Tarea 02

Implemente un pequeño juego de aritmética. Su programa inventa operaciones aleatoriamente y el jugador debe contestarlas. Su programa incrementará o decrementará el nivel de dificultad de las operaciones de acuerdo a si el jugador responde correcta o incorrectamente en cada intento. Ejemplo de ejecución:

Juego: reto matemático. Responda cada operación correctamente:

7 - 3 = 4
Felicidades, respuesta correcta!
¿Continuar jugando? [1=Sí, 2=No]: 1

15 + 53 = 68
Felicidades, respuesta correcta!
¿Continuar jugando? [1=Sí, 2=No]: 1

177 % 684 = 0
El resultado correcto es 177
¿Continuar jugando? [1=Sí, 2=No]: 1

95 * 45 = 4025
El resultado correcto es 4275
¿Continuar jugando? [1=Sí, 2=No]: 1

1 / 8 = 0
Felicidades, respuesta correcta!
¿Continuar jugando? [1=Sí, 2=No]: 1

74 / 24 = 3
Felicidades, respuesta correcta!
¿Continuar jugando? [1=Sí, 2=No]: 1

496 % 872 = 496
Felicidades, respuesta correcta!
¿Continuar jugando? [1=Sí, 2=No]: 1

4359 * 8978 = 0
El resultado correcto es 39135102
¿Continuar jugando? [1=Sí, 2=No]: 2
Ejemplo de ejecución del programa

Suponga que el nivel de dificultad está dado por la cantidad de dígitos de los números, el cual siempre es un número entre 1 y 18 inclusive. El nivel de dificultad inicial es 1, es decir, que la primera operación deberá tener dos operandos de un dígito cada uno. Si el jugador la responde correctamente, la próxima operación tendrá operandos de dos dígitos. Si la responde incorrectamente, se mantendrá en 1 dígito. Recuerde que el nivel de dificultad no puede superar los 18 dígitos, dado a que es la cantidad máxima de dígitos soportada por un long de Java.

Al generar un número aleatorio de d dígitos, debe cuidar que realmente tenga d dígitos. Por ejemplo, si el nivel de dificultad es 4, su programa debe generar operandos entre 1000 y 9999 inclusive y no generar números entre 0 y 999. Sugerencia, resuelva primero este problema matemáticamente antes de iniciar su solución en Java.

En cada oportunidad el juego debe generar dos números enteros aleatorios y conectarlos por un operador escogido también aleatoriamente. Dado que en Java no se puede generar un operador al azar, genere un número aleatorio entre 0 y 4 inclusive, y "mapee" cada uno de estos números con un operador aritmético utilizando un switch de Java. Dado a que los operandos son enteros, el jugador debe responder sabiendo que la división y el módulo lo son.

El juego imprime la operación y espera a que el jugador la conteste. Si responde correctamente se le indica y se incrementa el nivel de dificultad. Si falla, se le muestra la respuesta correcta y se decrementa el nivel de dificultad. Tras cada oportunidad se le pregunta al usuario si quiere seguir jugando. Puede solicitar un número, por ejemplo 1 para indicar que sí quiere seguir jugando y 2 para lo contrario. Si ingresa cualquier otro número se asume que quiere salir del juego.

Evaluación

  1. [10%] El juego se mantiene creando operaciones aleatorias hasta que el usuario responda que no quiere jugar más.
  2. [20%] Genera números aleatorios de la cantidad correcta de dígitos equivalente al nivel de dificultad.
  3. [20%] En cada oportunidad genera e imprime una operación escogida al azar entre los 5 operadores aritméticos de Java: suma, resta, multiplicación, división (entera) y módulo.
  4. [20%] Si el jugador acierta la respuesta de la operación, se felicita, se incrementa en 1 el nivel de dificultad y por ende, la cantidad de dígitos de los operandos, hasta un máximo de 18.
  5. [20%] Si el jugador falla la respuesta de la operación, se le revela la respuesta correcta, se decrementa en 1 el nivel de dificultad y por ende, la cantidad de dígitos de los operandos, hasta un mínimo de 1.
  6. [10%] La indentación es clara, los comentarios ayudan a comprender la solución y los identificadores son significativos.

Para presentar su solución, comprima los archivos .java que creó y súbalos a Mediación Virtual en la asignación con nombre Tarea02.