Zmeika
простая аркадная игра
|
#include <map>
#include <string>
#include <sstream>
#include <type_traits>
Определения типов | |
typedef std::map< std::string, std::string > | Dictionary |
базовый тип словаря Подробнее... | |
Функции | |
Dictionary | loadDictionary (const char *fn) |
загрузить словарь из файла | |
void | refreshDictionary (const char *fn, const Dictionary &) |
обновить файл словарём | |
template<class T > | |
std::string | toString (T t) |
вспомогательная функция для перевода значений в строки | |
template<class T > | |
std::decay< T >::type | try_parse (const std::string &input, T &&default_value=T()) |
вспомогательная конструкция для разбора строк "на месте". | |
template<class T > | |
std::decay< T >::type | try_get (const Dictionary &dict, const std::string &key, T &&default_value=T()) |
попытаться извлечь значение по ключу и одновременно разобрать его строковое представление | |
Средства для чтения файлов-"словарей", состоящих из строчек вида "ключ" = "значение" // комментарий Нераспознанные строчки игнорируются (refreshDictionary сохраняет их нетронутыми).
Кавычки не обязательны, но если их нет, то читается только одно "слово". В начале полагается, что ключи и значения – строки.
typedef std::map<std::string, std::string> Dictionary |
базовый тип словаря
На данный момент это map, который хранит уникальные ключи. При совпадении ключей, будет сохранено только последнее из значений. При сохранении в файл, содержащий несколько записей с совпадающим ключом, все их значения будут заменены на одно.
Пока это является потенциальной проблемой лишь для списка лучших игроков, так как там в качестве ключа используется количество очков.