Arreglos en la estructura i format del codi

This commit is contained in:
2025-03-01 19:33:40 +01:00
parent 31cded15cc
commit 5c371e7517
12 changed files with 98 additions and 202 deletions

View File

@@ -1,17 +1,12 @@
#include "stats.h"
#include <fstream> // for basic_ostream, basic_ifstream, basic_istream
#include <sstream> // for basic_stringstream
#include "options.h" // for Options, OptionsStats, options
#include <fstream> // for basic_ostream, basic_ifstream, basic_istream
#include <sstream> // for basic_stringstream
#include "options.h" // for Options, OptionsStats, options
// Constructor
Stats::Stats(std::string file, std::string buffer)
{
bufferPath = buffer;
filePath = file;
bufferList.clear();
list.clear();
dictionary.clear();
}
Stats::Stats(const std::string &file, const std::string &buffer)
: bufferPath(buffer),
filePath(file) {}
// Destructor
Stats::~Stats()
@@ -43,7 +38,7 @@ void Stats::init()
}
// Añade una muerte a las estadisticas
void Stats::addDeath(std::string name)
void Stats::addDeath(const std::string &name)
{
// Primero busca si ya hay una entrada con ese nombre
const int index = findByName(name, bufferList);
@@ -64,7 +59,7 @@ void Stats::addDeath(std::string name)
}
// Añade una visita a las estadisticas
void Stats::addVisit(std::string name)
void Stats::addVisit(const std::string &name)
{
// Primero busca si ya hay una entrada con ese nombre
const int index = findByName(name, bufferList);
@@ -85,11 +80,11 @@ void Stats::addVisit(std::string name)
}
// Busca una entrada en la lista por nombre
int Stats::findByName(std::string name, std::vector<stats_t> &list)
int Stats::findByName(const std::string &name, const std::vector<stats_t> &list)
{
int i = 0;
for (auto l : list)
for (const auto &l : list)
{
if (l.name == name)
{
@@ -102,7 +97,7 @@ int Stats::findByName(std::string name, std::vector<stats_t> &list)
}
// Carga las estadisticas desde un fichero
bool Stats::loadFromFile(std::string filePath, std::vector<stats_t> &list)
bool Stats::loadFromFile(const std::string &file_path, std::vector<stats_t> &list)
{
list.clear();
@@ -110,12 +105,12 @@ bool Stats::loadFromFile(std::string filePath, std::vector<stats_t> &list)
bool success = true;
// Variables para manejar el fichero
std::string line;
std::ifstream file(filePath);
std::ifstream file(file_path);
// Si el fichero se puede abrir
if (file.good())
{
std::string line;
// Procesa el fichero linea a linea
while (std::getline(file, line))
{
@@ -150,21 +145,21 @@ bool Stats::loadFromFile(std::string filePath, std::vector<stats_t> &list)
else
{
// Crea el fichero con los valores por defecto
saveToFile(filePath, list);
saveToFile(file_path, list);
}
return success;
}
// Guarda las estadisticas en un fichero
void Stats::saveToFile(std::string filePath, std::vector<stats_t> &list)
void Stats::saveToFile(const std::string &file_path, const std::vector<stats_t> &list)
{
// Crea y abre el fichero de texto
std::ofstream file(filePath);
std::ofstream file(file_path);
// Escribe en el fichero
file << "# ROOM NAME;VISITS;DEATHS" << std::endl;
for (auto item : list)
for (const auto &item : list)
{
file << item.name << ";" << item.visited << ";" << item.died << std::endl;
}
@@ -177,7 +172,7 @@ void Stats::saveToFile(std::string filePath, std::vector<stats_t> &list)
void Stats::checkWorstNightmare()
{
int deaths = 0;
for (auto item : list)
for (const auto &item : list)
{
if (item.died > deaths)
{
@@ -188,42 +183,16 @@ void Stats::checkWorstNightmare()
}
// Añade una entrada al diccionario
void Stats::addDictionary(std::string number, std::string name)
void Stats::addDictionary(const std::string &number, const std::string &name)
{
dictionary.push_back({number, name});
}
// Obtiene el nombre de una habitación a partir del número
std::string Stats::numberToName(std::string number)
{
for (auto l : dictionary)
{
if (l.number == number)
{
return l.name;
}
}
return "";
}
// Obtiene el número de una habitación a partir del nombre
std::string Stats::nameToNumber(std::string name)
{
for (auto l : dictionary)
{
if (l.name == name)
{
return l.number;
}
}
return "";
}
// Vuelca los datos del buffer en la lista de estadisticas
void Stats::updateListFromBuffer()
{
// Actualiza list desde bufferList
for (auto buffer : bufferList)
for (const auto &buffer : bufferList)
{
int index = findByName(buffer.name, list);