#pragma once #include #include namespace Difficulty { /** * @brief Códigos que identifican unívocamente cada nivel de dificultad. */ enum class Code { EASY = 0, NORMAL = 1, HARD = 2, }; /** * @brief Estructura que asocia un código de dificultad con su nombre traducible. */ struct Info { Code code; std::string name; }; // --- Interfaz Pública --- /** * @brief Inicializa la lista de dificultades con sus valores por defecto. */ void init(); /** * @brief Devuelve una referencia al vector de todas las dificultades para su lectura o modificación. * @return Referencia a `std::vector&`. */ auto getDifficulties() -> std::vector&; /** * @brief Obtiene el nombre de una dificultad a partir de su código. * @param code El código de la dificultad. * @return El nombre de la dificultad. */ auto getNameFromCode(Code code) -> std::string; /** * @brief Obtiene el código de una dificultad a partir de su nombre. * @param name El nombre de la dificultad. * @return El código de la dificultad. */ auto getCodeFromName(const std::string& name) -> Code; } // namespace Difficulty