Creada la classe ManageHiScoreTable

This commit is contained in:
2024-07-13 17:57:15 +02:00
parent ebbe84da64
commit 6eef3ada55
4 changed files with 110 additions and 2 deletions
+58
View File
@@ -0,0 +1,58 @@
#include "manage_hiscore_table.h"
// Constructor
ManageHiScoreTable::ManageHiScoreTable(std::vector<hiScoreEntry_t> *table)
{
this->table = table;
}
// Destructor
ManageHiScoreTable::~ManageHiScoreTable()
{
}
// Borra toda la tabla
void ManageHiScoreTable::clear()
{
// Limpia la tabla
table->clear();
// Añade 10 entradas predefinidas
table->push_back({"Bry", 1000000});
table->push_back({"Usufondo", 500000});
table->push_back({"G.Lucas", 100000});
table->push_back({"P.Delgat", 50000});
table->push_back({"P.Arrabalera", 10000});
table->push_back({"Pelechano", 5000});
table->push_back({"Sahuquillo", 1000});
table->push_back({"Bacteriol", 500});
table->push_back({"Pepe", 200});
table->push_back({"Rosita", 100});
}
// Añade un elemento a la tabla
void ManageHiScoreTable::add(hiScoreEntry_t entry)
{
// Añade la entrada a la tabla
table->push_back(entry);
// Ordena la tabla
sort();
// Deja solo las 10 primeras entradas
if ((int)table->size() >= 10)
{
table->resize(table->size() - 10);
}
}
// Ordena la tabla
void ManageHiScoreTable::sort()
{
struct
{
bool operator()(hiScoreEntry_t a, hiScoreEntry_t b) const { return a.score < b.score; }
} customLess;
std::sort(table->begin(), table->end(), customLess);
}