El equipo de ladrones, dirigido por El Profesor, ha ingresado a la Fábrica Nacional de Moneda y Timbre con un objetivo claro: imprimir 2.400 millones de euros y escapar sin ser atrapados. En este simulador, deberás modelar el sistema con clases e interfaces, aplicando los 4 principios de la Programación Orientada a Objetos (abstracción, encapsulación, herencia y polimorfismo). Cada personaje tiene un rol clave y debe interactuar de manera coherente dentro del atraco.
- Personajes con características comunes y específicas, organizados correctamente según sus roles en la historia, con la categoría de ladrón, policía y rehén.
- Una acción de actuar que son acciones diferentes para cada categoría de personaje (ladrón, policía y rehén), asegurando que cada uno cumpla su función dentro del atraco.
- Un sistema de estrategias de los ladrones y la policía, que permita modificar el plan del atraco sin alterar el comportamiento de los personajes.
- Protección de los datos de los personajes, asegurando que la información sensible no sea modificada directamente desde fuera del sistema.
- Piensa qué atributos y métodos necesitan los personajes para desempeñar su papel en la historia, en base al apartado "Personajes" que se encuentra más abajo.
- Diseña la jerarquía de clases: ¿Qué personajes comparten características? ¿Cuáles son sus diferencias?.
- Todos los personajes pueden actuar según su categoría.
- Decide cómo implementar las estrategias de los ladrones y de los policías: ¿Qué opciones tienen para ejecutar su cometido? Los rehenes no tendrán ninguna estrategia.
Estos son los personajes mínimos que crearás, puedes añadir más:
- Alias: Profesor; Nombre: Sergio Marquina; rol: líder; especialidades: planificación, autor, robo, negociación; categoría: ladrón.
- Alias: Berlín; Nombre: Andrés Marquina; rol: segundo al mando; especialidades: robo; categoría: ladrón.
- Alias: Tokio; Nombre: Silene Oliveira; rol: ejecutor; especialidades: robo, asesinato; categoría: ladrón.
- Alias: Nairobi; Nombre: Ágata Jiménez; rol: ejecutor; especialidades: falsificación - control de calidad - producción del dinero; categoría: ladrón.
- Alias: Río; Nombre: Anibal Cortés; rol: hacker; especialidades: experto en computación; categoría: ladrón.
- Alias: Denver; Nombre: Daniel Ramos; rol: ejecutor; especialidades: robo, trabajo duro; categoría: ladrón.
- Alias: Helsinski; Nombre: Mirko Dragić; rol: ejecutor; especialidades: experto en armas, soldado de guerra, explosivista; categoría: ladrón.
- Alias: Moscú; Nombre: Agustín Ramos; rol: ejecutor; especialidades: minería - apertura de cajas fuertes - trabajo duro, explosivista; categoría: ladrón.
- Alias: Oslo; Nombre: Radko Dragić; rol: ejecutor; especialidades: experto en armas, soldado de guerra; categoría: ladrón.
- Nombre: Mónica Gaztambide; Puesto de trabajo: secretaría; categoría: rehén.
- Nombre: Arturo Román; Puesto de trabajo: director de la fábrica nacional de la moneda y timbre de España; categoría: rehén.
- Nombre: Raquel Murillo; Puesto de trabajo: inspectora; categoría: policía.
Cuando tengas todas las clases e interfaces definidas con sus métodos y atributos has de crear objetos e imprimir en la terminal lo siguente:
- The team of thiefs are: Professor, Berlin, Tokyo, Nairobi, Rio, Denver, Helsinki, Moscow, Oslo.
- The specialties of the Professor are: robbery, planning, negotiation, author.
- Arturo got Mónica pregnant, he is the director and she is his secretary.
- Something happens in the following seasons with Raquel the inspector and the Professor.
Al evocar actuar:
- Tokyo that is the executor is stealing the bank.
- Mónica that is a secretary is down on the floor in the middle of the robbery.
- Raquel the inspector is trying to negotiate the release of the hostages.
Al evocar ejecutar plan:
- Enter the building, close the doors, take out the weapons, gather the hostages and start the plan to print money.
- Try to contact the leader of the gang, find out how many hostages there are and negotiate their release.
Los tests se encuentran resueltos y es una buena idea ir a mirar para guiar tu solución.
- Java 21
- JUnit Jupiter 5.12.0