{"id":24873042,"url":"https://github.com/dnbsammie/reto01","last_synced_at":"2025-10-30T10:46:32.547Z","repository":{"id":264699502,"uuid":"890638774","full_name":"dnbsammie/Reto01","owner":"dnbsammie","description":"Simulador de Viaje Interplanetario","archived":false,"fork":false,"pushed_at":"2024-12-02T01:40:42.000Z","size":2434,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T05:27:03.890Z","etag":null,"topics":["code","exercises","java","space"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dnbsammie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-18T23:23:26.000Z","updated_at":"2024-12-02T01:40:45.000Z","dependencies_parsed_at":"2024-11-25T21:23:55.979Z","dependency_job_id":"4cb58bbb-2c96-4174-833f-44c3fbf4acb8","html_url":"https://github.com/dnbsammie/Reto01","commit_stats":null,"previous_names":["dnbsammie/reto01"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnbsammie%2FReto01","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnbsammie%2FReto01/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnbsammie%2FReto01/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dnbsammie%2FReto01/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dnbsammie","download_url":"https://codeload.github.com/dnbsammie/Reto01/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245755682,"owners_count":20667027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["code","exercises","java","space"],"created_at":"2025-02-01T05:27:06.449Z","updated_at":"2025-10-30T10:46:32.537Z","avatar_url":"https://github.com/dnbsammie.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eRETO 1 - Simulador de Viaje Interplanetario\u003c/h1\u003e\n\u003cimg src=\"./assets/banner.png\" width=\"100%\"\u003e\u003c/img\u003e\n\u003ch3\u003eIntroducción\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/dnbsammie/Reto01/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/dnbsammie/Reto01\" alt=\"Issues\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/dnbsammie/Reto01/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/dnbsammie/Reto01\" alt=\"Stars\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003eDesarrollar 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.\u003c/p\u003e\n\n\u003cp\u003ePuedes encontrar el link de la presentación \u003ca href=\"https://youtu.be/VV7WT9pXnbc\"\u003eacá mismo 🎥\u003c/a\u003e\u003c/p\u003e\n\n\u003ch3 align=\"left\"\u003eLenguajes y herramientas:\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://skillicons.dev\"\u003e\n    \u003cimg src=\"https://skillicons.dev/icons?i=git,github,md,java,vscode\u0026theme=dark\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eÍndice:\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#objectives\"\u003e🎯 Objetivos\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#requirements\"\u003e🚀 Requerimientos\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#methodology\"\u003e⚙️ Metodología\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#credits\"\u003e🎬 Creditos\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\u003ch2 id=\"objectives\"\u003e🎯 Objetivos\u003c/h2\u003e\n\u003col\u003e\n    \u003cli\u003e\u003cstrong\u003eSeleccionar Destino interplanetario\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003ePermitir al usuario elegir un planeta destino entre una lista de planetas del sistema solar.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eCalcular distancia y tiempo de viaje\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eCalcular la distancia entre la tierra y el planeta destino, considerar el tiempo de viaje tomando la velocidad dada.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eGestionar Recursos de la nave\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eCalcular 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.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eSimular eventos aleatorios durante el viaje\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eIntroducción de eventos aleatorios que puedan afectar el viaje tanto del entorno como del sistema. El usuario deberá intervenir para resolverlos.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eMonitoreo el estado del viaje\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eEl usuario podrá ver el progreso del viaje, cantidad de recursos disponibles y tiempo restante para llegar al destino.\u003c/li\u003e\n      \u003c/ul\u003e\n\u003c/ol\u003e\n\n\u003ch2 id=\"requirements\"\u003e🚀 Requerimientos\u003c/h2\u003e\n\u003col\u003e\n    \u003cli\u003e\u003cstrong\u003eSelección de Planeta de Destino\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003ePresentar al usuario una lista de planetas del sistema solar para elegir el destino del viaje.\u003c/li\u003e\n        \u003cli\u003eSolicitar la confirmación del usuario y mostrar información básica del planeta.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eGestión de la Nave Espacial\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eEl 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.\u003c/li\u003e\n        \u003cli\u003eEl 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.\u003c/li\u003e\n        \u003cli\u003eBasado en la velocidad de la nave y la distancia del planeta seleccionado, el sistema calculará la duración estimada del viaje en días.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eSimulación del Viaje\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eEl sistema mostrará el avance del viaje mediante una serie de mensajes en la consola, indicando el porcentaje completado del trayecto.\u003c/li\u003e\n        \u003cli\u003eEl 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\".\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eInteracción con el Usuario\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eEl sistema debe proporcionar un menú interactivo en consola que permita al usuario elegir entre las siguientes opciones:\u003c/li\u003e\n          \u003cul\u003e\n            \u003cli\u003eSeleccionar un Planeta de Destino.\u003c/li\u003e\n            \u003cli\u003eSeleccionar una Nave Espacial.\u003c/li\u003e\n            \u003cli\u003eIniciar la simulación del viaje.\u003c/li\u003e\n            \u003cli\u003eSalir del programa.\u003c/li\u003e\n          \u003c/ul\u003e\n        \u003cli\u003eEl 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ú.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eManipulación de Datos\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eLos 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.\u003c/li\u003e\n        \u003cli\u003eLos 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.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eModularidad y Métodos\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eEl 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.\u003c/li\u003e\n        \u003cli\u003eLos métodos aceptarán parámetros para recibir datos del usuario.\u003c/li\u003e\n      \u003c/ul\u003e\n\u003c/ol\u003e\n\n\u003ch2 id=\"methodology\"\u003e⚙️ Metodología\u003c/h2\u003e\n\u003ch4\u003eDescripción General del Flujo de Sistema:\u003c/h4\u003e\n\n\u003col\u003e\n    \u003cli\u003e\u003cstrong\u003eInicio del Programa:\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eEl programa se inicia y muestra al usuario un menú interactivo. El usuario puede elegir la acción que desea realizar.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eSelección del Planeta y la Nave\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eEl 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.\u003c/li\u003e\n        \u003cli\u003eA continuación, el usuario selecciona una nave para el viaje y específica la cantidad de pasajeros.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eSimulación del Viaje\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eAl 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.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eFinalización del Viaje\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eUna vez que el viaje alcanza el 100% de progreso, el sistema muestra un mensaje indicando la llegada exitosa al planeta de destino.\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003cli\u003e\u003cstrong\u003eSalir del Programa\u003c/strong\u003e\u003c/li\u003e\n      \u003cul\u003e\n        \u003cli\u003eSi el usuario selecciona la opción para salir, el sistema cierra el programa de manera correcta.\u003c/li\u003e\n      \u003c/ul\u003e\n\u003c/ol\u003e\n\n\u003ch4\u003e📦 Estructura de Paquetes:\u003c/h4\u003e\n\n```\nspacesimulator/\n└── src/\n    ├── controllers/\n    │   ├── MenuController.java\n    │   ├── ResourceController.java\n    │   └── SimulationController.java\n    ├── managers/\n    │   └── EventManager.java\n    │\n    ├── models/\n    │   ├── Event.java\n    │   ├── EventContext.java\n    │   ├── Planet.java\n    │   ├── Spaceship.java\n    │\n    ├── utils/\n    │   ├── ConsoleUtil.java\n    │   └── TimeUtil.java\n    │\n    └── App.java\n```\n\n\u003ch2 id=\"credits\"\u003e🎬 Creditos\u003c/h2\u003e\n\n\u003cp\u003e\n  \u003cstrong\u003eAuthor:\u003c/strong\u003e Luis Triana\u003cbr\u003e\n  \u003cstrong\u003eGitHub:\u003c/strong\u003e \u003ca href=\"https://github.com/luistriana032006\"\u003ehttps://github.com/luistriana032006\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\n  \u003cstrong\u003eAuthor:\u003c/strong\u003e Samuel Rivera\u003cbr\u003e\n  \u003cstrong\u003eGitHub:\u003c/strong\u003e \u003ca href=\"https://github.com/dnbsammie\"\u003ehttps://github.com/dnbsammie\u003c/a\u003e\n\u003c/p\u003e\n\n---","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnbsammie%2Freto01","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdnbsammie%2Freto01","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdnbsammie%2Freto01/lists"}