RETO 1: Clase PsicoHistoriador (Fundación)
Contexto
Formas parte del Proyecto Seldon, dentro del universo de Fundación. Vas a modelar a un psico-historiador, un especialista capaz de analizar el futuro del Imperio mediante matemáticas y sociología.
Objetivo
Crear una única clase en Java que represente a un psico-historiador. Este reto sirve para practicar atributos privados, constructores, getters, setters y métodos simples. No se permite utilizar listas, arrays, ni otras clases.
Instrucciones
1. Nombre de la clase
La clase debe llamarse PsicoHistoriador.
2. Atributos privados obligatorios
Debes declarar:
String nombre;int nivelMatematico;(0 a 100)boolean lealtadFundacion;int prediccionesRealizadas;
3. Constructor
El constructor debe recibir String nombre e int nivelMatematico.
El resto se inicializa así:lealtadFundacion = true;prediccionesRealizadas = 0;
4. Getters y setters
Implementa métodos getter y setter para los atributos necesarios, al menos los siguientes:
getNombre()getNivelMatematico()ysetNivelMatematico(int n)isLealtadFundacion()ysetLealtadFundacion(boolean v)getPrediccionesRealizadas()
5. Método realizarPrediccion()
Cada vez que se llame:
- Aumenta en 1
prediccionesRealizadas. - Calcula una probabilidad usando
nivelMatematico. - Devuelve un texto como:
“El psico-historiador NOMBRE calcula una probabilidad de colapso del Imperio del X%.”
6. Método evaluarRiesgoImperial()
Debe devolver un mensaje según el valor de nivelMatematico:
- Mayor de 80 → “Riesgo alto: el Imperio se derrumbará pronto.”
- Entre 50 y 80 → “Riesgo moderado: el Plan Seldon sigue estable.”
- Menor de 50 → “Riesgo bajo: estabilidad aparente, pero no te fíes.”
7. Método main
La misma clase debe contener un main que:
- Cree un objeto
PsicoHistoriador. - Llame a
realizarPrediccion()varias veces e imprima el resultado. - Llame a
evaluarRiesgoImperial()y muestre el mensaje final.
RETO 2: Clase NaveEstelarFundacion (Constructores y Aleatoriedad)
La Fundación mantiene una flota de naves estelares para explorar la galaxia. En este ejercicio practicarás atributos privados, varios constructores y el uso de un método auxiliar que genera valores aleatorios.
Objetivo
Crear la clase NaveEstelarFundacion implementando tres constructores, getters, setters, un método aleatorio proporcionado y un pequeño main de prueba. No se permite el uso de listas, arrays ni otras clases.
Instrucciones
1. Nombre de la clase
La clase debe llamarse NaveEstelarFundacion.
2. Atributos privados
String nombre;String modelo;int escudo;int velocidadMaxima;int misionesCompletadas;
3. Método auxiliar ya proporcionado (NO modificar)
private int generarAleatorio(int min, int max) { return (int)(Math.random() * (max - min + 1)) + min; }
4. Constructores obligatorios
a) Constructor sin parámetros
Debe asignar valores por defecto, por ejemplo:
nombre = "Anonima"modelo = "Basico"escudo = 50velocidadMaxima = 2000misionesCompletadas = 0
b) Constructor con parámetros (nombre y modelo)
Debe asignar los valores recibidos y generar:
escudoaleatorio entre 40 y 90velocidadMaximaaleatoria entre 1500 y 4000misionesCompletadas = 0
c) Constructor con todos los atributos
Debe recibir y asignar todos los campos: nombre, modelo, escudo, velocidadMaxima y misionesCompletadas.
5. Getters y setters
Debes implementar getters y setters para todos los atributos.
6. Método desplegar()
Devuelve un texto con los datos de la nave:
"La nave NOMBRE, modelo MODELO, se despliega con escudo ESCUDO% y velocidad máxima VELOCIDAD km/s."
7. Método registrarMision()
Aumenta en 1 el contador misionesCompletadas.
8. Main de prueba
Debe:
Aumentar misiones con registrarMision() y mostrar el total.
Crear una nave con el constructor por defecto.
Crear otra con el constructor de dos parámetros.
Crear una con el constructor completo.
Llamar a desplegar() en cada una.


![R7 [Solución] - Guerra por el Sistema Solar: Tierra, Marte y el Cinturón” (The Expanse) Captura de pantalla 2025-12-22 a las 20.54.03](https://laaventuradeaprender.com/wp-content/uploads/2025/12/Captura-de-pantalla-2025-12-22-a-las-20.54.03-1.png)





![R3.1 [Solución] - Programación-bucles profe](https://laaventuradeaprender.com/wp-content/uploads/2025/12/profe-2.png)
![R3.2 [Solución] Programación-Bucles profe](https://laaventuradeaprender.com/wp-content/uploads/2025/12/profe.png)