-
Notifications
You must be signed in to change notification settings - Fork 7
/
Score.hpp
62 lines (54 loc) · 1.9 KB
/
Score.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/******************************************************************************
* @file Score.hpp
* @author Andrés Gavín Murillo, 716358
* @author Rubén Rodríguez Esteban, 737215
* @date Mayo 2020
* @coms Videojuegos - OutRun
******************************************************************************/
#ifndef OUTRUN_SCORE_HPP
#define OUTRUN_SCORE_HPP
#include <string>
#include <vector>
/**
* Representa un récord de puntuación (score), con el nombre del jugador (name) y su marca de tiempo.
*/
struct Score {
unsigned long score;
std::string name;
int minutes;
int secs;
int cents_second;
/**
* Constructor por defecto.
* @param score
* @param name
* @param minutes
* @param secs
* @param centsSecond
*/
Score(unsigned long score, const std::string &name, int minutes, int secs, int centsSecond);
};
/**
* Devuelve todos los récords de puntuación ordenados de mayor a menor puntuación, es decir, el mejor récord estará en
* la posición 0. El tamaño del vector está comprendido entre 0 (no hay ningún récord) y 7 (hay 7 récords en las
* posiciones 0 a 6).
* @return
*/
std::vector<Score> getGlobalScores();
/**
* Dados todos los récords de puntuación ordenados de mayor a menor puntuación y una puntuación score, devuelve la
* posición del nuevo récord (0 a 6) o -1 si no es un nuevo récord.
* @param globalScores
* @param score
* @return
*/
int isNewRecord(const std::vector<Score> &globalScores, unsigned long score);
/**
* Dados todos los récords de puntuación ordenados de mayor a menor puntuación y un nuevo récord, añade el nuevo récord
* de puntuación y devuelve true si ha sido almacenado con éxito y false en caso contrario.
* @param globalScores
* @param newRecord
* @return
*/
bool saveNewRecord(const std::vector<Score> &globalScores, const Score &newRecord);
#endif //OUTRUN_SCORE_HPP