https://github.com/dnbsammie/reto01
Simulador de Viaje Interplanetario
https://github.com/dnbsammie/reto01
code exercises java space
Last synced: 8 months ago
JSON representation
Simulador de Viaje Interplanetario
- Host: GitHub
- URL: https://github.com/dnbsammie/reto01
- Owner: dnbsammie
- Created: 2024-11-18T23:23:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-02T01:40:42.000Z (over 1 year ago)
- Last Synced: 2025-02-01T05:27:03.890Z (over 1 year ago)
- Topics: code, exercises, java, space
- Language: Java
- Homepage:
- Size: 2.32 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
RETO 1 - Simulador de Viaje Interplanetario
Introducción
Desarrollar un simulador de viaje interplanetario, donde se gestionará un viaje espacial a diferentes planetas del sistema solar. El usuario obtendrá la experiencia de elegir el destino, gestionar recursos de la nave y resolver conflictos a medida que los eventos se vuelven más complejos.
Puedes encontrar el link de la presentación acá mismo 🎥
Lenguajes y herramientas:
Índice:
🎯 Objetivos
- Seleccionar Destino interplanetario
- Permitir al usuario elegir un planeta destino entre una lista de planetas del sistema solar.
- Calcular distancia y tiempo de viaje
- Calcular la distancia entre la tierra y el planeta destino, considerar el tiempo de viaje tomando la velocidad dada.
- Gestionar Recursos de la nave
- Calcular la cantidad de combustible necesario para el viaje y permitir al usuario administrar los recursos (Combustible y oxigeno). Esto variara según los recursos disponibles y necesarios para cierto destino.
- Simular eventos aleatorios durante el viaje
- Introducción de eventos aleatorios que puedan afectar el viaje tanto del entorno como del sistema. El usuario deberá intervenir para resolverlos.
- Monitoreo el estado del viaje
- El usuario podrá ver el progreso del viaje, cantidad de recursos disponibles y tiempo restante para llegar al destino.
🚀 Requerimientos
- Selección de Planeta de Destino
- Presentar al usuario una lista de planetas del sistema solar para elegir el destino del viaje.
- Solicitar la confirmación del usuario y mostrar información básica del planeta.
- Gestión de la Nave Espacial
- El sistema ofrecerá al usuario una lista de naves espaciales, cada una con características básicas, como la velocidad máxima y la capacidad de pasajeros.
- El usuario deberá especificar la cantidad de pasajeros que viajarán. El sistema solo verificará que se ingrese un valor positivo, pero no limitará la cantidad máxima.
- Basado en la velocidad de la nave y la distancia del planeta seleccionado, el sistema calculará la duración estimada del viaje en días.
- Simulación del Viaje
- El sistema mostrará el avance del viaje mediante una serie de mensajes en la consola, indicando el porcentaje completado del trayecto.
- El progreso se calculará utilizando bucles básicos y se presentaran mensajes condicionales para indicar las etapas clave del viaje, como: "Inicio del viaje", "Mitad del camino", y "Llegada al destino".
- Interacción con el Usuario
- El sistema debe proporcionar un menú interactivo en consola que permita al usuario elegir entre las siguientes opciones:
- Seleccionar un Planeta de Destino.
- Seleccionar una Nave Espacial.
- Iniciar la simulación del viaje.
- Salir del programa.
- El sistema debe verificar que el usuario elija una opción válida en el menú. Si el usuario ingresa una opción no válida, se mostrará un mensaje y se volverá a presentar el menú.
- Manipulación de Datos
- Los datos como la distancia al planeta, la velocidad de la nave, y la cantidad de pasajeros se manejarán utilizando tipos de datos básicos como int, double, y String.
- Los planetas y las naves espaciales se almacenarán en arrays para facilitar su selección e información. Por ejemplo, un array de strings para los nombres de los planetas y otro array para las distancias correspondientes.
- Modularidad y Métodos
- El sistema debe utilizar métodos para separar la lógica de selección del planeta, cálculo de la duración del viaje, y simulación del trayecto. Cada funcionalidad principal se implementará en un método separado.
- Los métodos aceptarán parámetros para recibir datos del usuario.
⚙️ Metodología
Descripción General del Flujo de Sistema:
- Inicio del Programa:
- El programa se inicia y muestra al usuario un menú interactivo. El usuario puede elegir la acción que desea realizar.
- Selección del Planeta y la Nave
- El usuario elige un planeta de destino de una lista proporcionada por el sistema. El sistema muestra la distancia y una breve descripción del planeta.
- A continuación, el usuario selecciona una nave para el viaje y específica la cantidad de pasajeros.
- Simulación del Viaje
- Al iniciar la simulación, el sistema muestra el progreso del viaje en intervalos, indicando etapas clave y calculando la duración total del trayecto en función de la velocidad de la nave y la distancia al planeta.
- Finalización del Viaje
- Una vez que el viaje alcanza el 100% de progreso, el sistema muestra un mensaje indicando la llegada exitosa al planeta de destino.
- Salir del Programa
- Si el usuario selecciona la opción para salir, el sistema cierra el programa de manera correcta.
📦 Estructura de Paquetes:
```
spacesimulator/
└── src/
├── controllers/
│ ├── MenuController.java
│ ├── ResourceController.java
│ └── SimulationController.java
├── managers/
│ └── EventManager.java
│
├── models/
│ ├── Event.java
│ ├── EventContext.java
│ ├── Planet.java
│ ├── Spaceship.java
│
├── utils/
│ ├── ConsoleUtil.java
│ └── TimeUtil.java
│
└── App.java
```
🎬 Creditos
Author: Luis Triana
GitHub: https://github.com/luistriana032006
Author: Samuel Rivera
GitHub: https://github.com/dnbsammie
---