Academia-Cimne-Iber-Developers / java-rpg-ex

Proyecto Java demostrando principios
1 stars 43 forks source link

Mejora del Sistema de Mapa - Conexiones entre Ubicaciones [Max Propuestas] #22

Open santiemanuel opened 2 months ago

santiemanuel commented 2 months ago

Implementación del Sistema de Viaje Mejorado

Descripción

Desarrollar un sistema de viaje mejorado para nuestro juego, que combine un sistema de ubicaciones adyacentes con puntos de viaje rápido desbloqueables. Este sistema hará que la exploración del mundo sea más divertida y estratégica, a la vez que proporciona comodidad una vez que el jugador haya explorado suficiente.

Objetivos

  1. Implementar un sistema de ubicaciones adyacentes para limitar el viaje inicial del jugador.
  2. Crear un sistema de puntos de viaje rápido que el jugador pueda desbloquear y utilizar.
  3. Integrar ambos sistemas en la estructura existente del mapa y el sistema de viaje.
  4. Mejorar la experiencia de exploración y progresión del juego.

Requerimientos Funcionales

  1. El jugador solo puede viajar a ubicaciones adyacentes por defecto.
  2. Cada ubicación debe tener una lista de ubicaciones adyacentes.
  3. Implementar puntos de viaje rápido en ciertas ubicaciones del mapa.
  4. Los puntos de viaje rápido deben ser desbloqueables al visitarlos por primera vez.
  5. Una vez desbloqueado un punto de viaje rápido, el jugador puede viajar instantáneamente a él desde cualquier otro punto de viaje rápido desbloqueado.
  6. El sistema debe mostrar claramente al jugador las opciones de viaje disponibles en cada momento.

Idea Propuesta

Componentes Principales

  1. Clase Ubicacion: Modificar para incluir una lista de ubicaciones adyacentes y un estado de punto de viaje rápido.
  2. Clase Mapa: Actualizar para manejar la lógica de ubicaciones adyacentes y puntos de viaje rápido.
  3. GestorExploracion: Actualizar para incluir la nueva lógica de viaje, incluyendo validaciones y desbloqueo de puntos de viaje rápido.
  4. Interfaz: Actualizar para mostrar opciones de viaje disponibles y puntos de viaje rápido desbloqueados.

Diseños Sugeridos

1. Modificación de la Clase Ubicacion

public class Ubicacion {
    // ... (atributos anteriores)
    private List<Ubicacion> ubicacionesAdyacentes;
    private boolean esPuntoViajeRapido;
    private boolean puntoViajeRapidoDesbloqueado;

    // ... (métodos anteriores)
    public List<Ubicacion> getUbicacionesAdyacentes() { /* ... */ }
    public boolean esPuntoViajeRapido() { /* ... */ }
    public boolean estaPuntoViajeRapidoDesbloqueado() { /* ... */ }
    public void desbloquearPuntoViajeRapido() { /* ... */ }
}

2. Actualización de la Clase Mapa

public class Mapa {
    // ... (atributos anteriores)
    private List<Ubicacion> puntosViajeRapido;

    // ... (métodos anterioes)
    public List<Ubicacion> getPuntosViajeRapidoDesbloqueados() { /* ... */ }
    public void desbloquearPuntoViajeRapido(Ubicacion ubicacion) { /* ... */ }
}

3. Actualización de GestorExploracion

public class GestorExploracion {

    // ... (métodos anteriores)
    public boolean puedeViajarA(Ubicacion destino) { /* ... */ }
    public String viajar(Ubicacion destino) { /* ... */ } // Método existente, actualizar lógica
    public List<Ubicacion> getOpcionesViajeDisponibles() { /* ... */ }
    public void desbloquearPuntoViajeRapido(Ubicacion ubicacion) { /* ... */ }
}

Integración con la Clase Juego

Tareas de Implementación

  1. Modificar la clase Ubicacion para incluir ubicaciones adyacentes y estado de punto de viaje rápido.
  2. Actualizar la clase Mapa para manejar puntos de viaje rápido y sus estados.
  3. Actualizar la clase GestorExploracion con la nueva lógica de viaje y validaciones.
  4. Modificar la clase Juego para integrar la nueva funcionalidad de viaje.
  5. Actualizar la clase Interfaz para mostrar las opciones de viaje disponibles y los puntos de viaje rápido desbloqueados.
  6. Implementar la lógica de desbloqueo de puntos de viaje rápido en el método de exploración.
  7. Actualizar el sistema de inicialización del mapa para definir ubicaciones adyacentes y puntos de viaje rápido.

Criterios de Aceptación

  1. El jugador solo puede viajar a ubicaciones adyacentes por defecto.
  2. Los puntos de viaje rápido se desbloquean al visitarlos por primera vez.
  3. El jugador puede viajar instantáneamente entre puntos de viaje rápido desbloqueados.
  4. La interfaz muestra claramente las opciones de viaje disponibles en cada momento.
  5. El sistema de viaje se integra correctamente con el flujo de juego existente.
  6. El código cumple con los principios SOLID y está bien documentado.
  7. Se mantiene un registro de los puntos de viaje rápido desbloqueados por el jugador.
isnado commented 2 months ago

Buenas noches profesor, puedo trabajar en esta issue?

GabrielN2004 commented 2 months ago

Bunas noches Profesor nuestro grupo conformado por Gabriela Nuñez (GabrielaNu27) y Susana Guaymas (SusanaGuaymas) y Gabriel Ismael Nuñez (GabrielN2004), queremos trabajar esta issue.

santiemanuel commented 2 months ago

Buenas noches profesor, puedo trabajar en esta issue?

Hola Marcos, listo anotado.

santiemanuel commented 2 months ago

Bunas noches Profesor nuestro grupo conformado por Gabriela Nuñez (GabrielaNu27) y Susana Guaymas (SusanaGuaymas) y Gabriel Ismael Nuñez (GabrielN2004), queremos trabajar esta issue.

Hola Gabriel, bien, ya los anoté.

pablodamianr1983 commented 2 months ago

Buneas profe, me puede anotar en esta ctividad?

santiemanuel commented 2 months ago

Buneas profe, me puede anotar en esta ctividad?

Hola Pablo, listo ya te anoté

chunlucia commented 2 months ago

Hola profe me anoto Chungara lucia

santiemanuel commented 2 months ago

Hola profe me anoto Chungara lucia

Hola Lucía. Listo anotada

TinchoARS commented 2 months ago

Profe me anota en este por favor

santiemanuel commented 2 months ago

Profe me anota en este por favor

Hola ya te anoto

nazzgrelitod10s commented 2 months ago

hola profe quiero trabajar en esta issues

Josed278 commented 2 months ago

hola profe quiero trabajar en esta issues

Molina230977 commented 2 months ago

Buenas tardes profesor, yo trabajare en este issue

gabyelizabet commented 2 months ago

Buenas tardes profesor. Todavía hay disponibilidad para trabajar en alguna issue?

Josed278 commented 2 months ago

hola profe quiero trabajar en esta issues

santiemanuel commented 2 months ago

@Molina230977 @gabyelizabet @Josed278 @nazzgrelitod10s ya hay bastantes propuestas en esta issue, pueden trabajar en la de Combate por turnos, por favor dejen su mensaje ahí con el nombre y username de compañeros en caso de trabajar en grupo.