52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
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<Info>&`.
|
|
*/
|
|
auto getDifficulties() -> std::vector<Info>&;
|
|
|
|
/**
|
|
* @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
|