-
Notifications
You must be signed in to change notification settings - Fork 44
Description
Descripción
Actualmente, el juego requiere un sistema eficiente para marcar zonas del mapa que ya han sido exploradas o donde ocurrieron ciertos eventos, sin que el rendimiento o el uso de memoria se degrade conforme crece el tamaño del mapa.
Para esto, se propone utilizar std::bitset, una estructura que permite representar el estado de exploración de forma extremadamente eficiente en memoria y con acceso en tiempo constante (O(1)). Es ideal para verificar rápidamente si una celda ha sido visitada, si una trampa fue activada, o si un objeto ya fue recolectado.
Objetivo
Implementar un sistema de seguimiento de exploración basado en bits para representar un mapa de 64x64 celdas (4096 bits en total). Cada bit del bitset representará si una celda del mapa ha sido explorada (1) o no (0).
Tareas
-
Crear un nuevo archivo de cabecera:
ExplorationTracker.hpp. -
Definir una clase
ExplorationTrackerque utilice internamente unstd::bitset<4096>. -
Implementar al menos las siguientes funciones públicas:
bool fueExplorado(int x, int y) const;
Devuelvetruesi la celda fue explorada,falseen caso contrario.void marcarExplorado(int x, int y);
Marca la celda como explorada.void imprimirExploracion(const Mapa& mapa) const;
Muestra un minimapa en consola, utilizando caracteres para indicar las zonas exploradas y no exploradas. El objetoMapase pasará por referencia para obtener detalles si se desea enriquecer la visualización.
-
Integrar
ExplorationTrackeral sistema de exploración del jugador, de modo que las celdas se marquen automáticamente al ser visitadas. -
Opcionalmente: permitir que eventos especiales también marquen zonas como “exploradas” (trampas, campamentos, puestos de avanzada, etc.).