Files
jaildoctors_dilemma/source/game/gameplay/stats.hpp
2026-04-03 08:29:06 +02:00

50 lines
1.6 KiB
C++

#pragma once
#include <string> // Para string
#include <vector> // Para vector
class Stats {
private:
struct RoomData {
std::string name; // Nombre de la habitación
int visited; // Cuenta las veces que se ha visitado una habitación
int died; // Cuenta las veces que se ha muerto en una habitación
};
// Variables
std::vector<RoomData> buffer_list_; // Lista con las estadisticas temporales por habitación
std::vector<RoomData> list_; // Lista con las estadisticas completas por habitación
std::string buffer_path_; // Fichero con las estadísticas temporales
std::string file_path_; // Fichero con las estadísticas completas
// Busca una entrada en la lista por nombre
static auto findByName(const std::string& name, const std::vector<RoomData>& list) -> int;
// Carga las estadisticas desde un fichero
static void loadFromFile(const std::string& file_path, std::vector<RoomData>& list);
// Guarda las estadisticas en un fichero
static void saveToFile(const std::string& file_path, const std::vector<RoomData>& list);
// Calcula cual es la habitación con más muertes
void checkWorstNightmare();
// Vuelca los datos del buffer en la lista de estadisticas
void updateListFromBuffer();
public:
// Constructor
Stats(std::string file, std::string buffer);
// Destructor
~Stats();
// Inicializador
void init();
// Añade una muerte a las estadisticas
void addDeath(const std::string& name);
// Añade una visita a las estadisticas
void addVisit(const std::string& name);
};