#pragma once #include // Para string #include // 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 buffer_list_; // Lista con las estadisticas temporales por habitación std::vector 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& list) -> int; // Carga las estadisticas desde un fichero static void loadFromFile(const std::string& file_path, std::vector& list); // Guarda las estadisticas en un fichero static void saveToFile(const std::string& file_path, const std::vector& 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); };