#pragma once #include #include "common/utils.h" #include #include #ifndef STATS_H #define STATS_H class Stats { private: struct stats_t { 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 }; struct stats_dictionary_t { std::string number; // Numero de la habitación std::string name; // Nombre de la habitación }; // Punteros y objetos options_t *options; // Variables std::vector dictionary; // Lista con la equivalencia nombre-numero de habitacion std::vector list; // Lista con las estadisticas por habitación std::string filePath; // Fichero con las estadísticas // Busca una entrada en la lista por nombre int findByName(std::string name); // Carga las estadisticas desde un fichero bool loadFromFile(); // Carga las estadisticas desde un servidor void loadFromServer(); // Guarda las estadisticas en un fichero void saveToFile(); // Guarda las estadisticas en un servidor void saveToServer(); // Calcula cual es la habitación con más muertes void checkWorstNightmare(); // Obtiene el nombre de una habitación a partir del número std::string numberToName(std::string number); // Obtiene el número de una habitación a partir del nombre std::string nameToNumber(std::string name); public: // Constructor Stats(std::string file, options_t *options); // Destructor ~Stats(); // Añade una muerte a las estadisticas void addDeath(std::string name); // Añade una visita a las estadisticas void addVisit(std::string name); // Añade una entrada al diccionario void addDictionary(std::string number, std::string name); }; #endif