Hola, les comparto una propuesta de un juego de Matemáticas:
import java.util.Random; import java.util.Scanner;
public class RetoCalculoMental { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Random random = new Random();
int puntaje = 0;
int errores = 0;
final int MAX_ERRORES = 3;
System.out.println("¡Bienvenido al Reto de Cálculo Mental!");
System.out.println("Resuelve tantos problemas como puedas. ¡Tienes un máximo de " + MAX_ERRORES + " errores!");
while (errores < MAX_ERRORES) {
// Generar dos números aleatorios y una operación
int numero1 = random.nextInt(10) + 1; // Números entre 1 y 10
int numero2 = random.nextInt(10) + 1;
char operacion = generarOperacionAleatoria();
int resultadoCorrecto = calcularResultado(numero1, numero2, operacion);
// Mostrar la pregunta
System.out.print("¿Cuánto es " + numero1 + " " + operacion + " " + numero2 + "? Respuesta: ");
int respuestaUsuario = scanner.nextInt();
// Verificar respuesta
if (respuestaUsuario == resultadoCorrecto) {
System.out.println("¡Correcto!");
puntaje += 10;
} else {
System.out.println("Incorrecto. La respuesta correcta era: " + resultadoCorrecto);
errores++;
}
System.out.println("Puntaje actual: " + puntaje);
System.out.println("Errores: " + errores + "/" + MAX_ERRORES);
System.out.println("----------------------------");
}
System.out.println("¡Juego terminado! Tu puntaje final es: " + puntaje);
scanner.close();
}
// Genera una operación aleatoria (+, -, *)
private static char generarOperacionAleatoria() {
char[] operaciones = {'+', '-', '*'};
Random random = new Random();
return operaciones[random.nextInt(operaciones.length)];
}
// Calcula el resultado de una operación
private static int calcularResultado(int numero1, int numero2, char operacion) {
switch (operacion) {
case '+':
return numero1 + numero2;
case '-':
return numero1 - numero2;
case '*':
return numero1 * numero2;
default:
throw new IllegalArgumentException("Operación desconocida: " + operacion);
}
}
}