-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathNoteGame.hpp
More file actions
54 lines (47 loc) · 1.38 KB
/
NoteGame.hpp
File metadata and controls
54 lines (47 loc) · 1.38 KB
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
#ifndef NOTEGAME_HPP
#define NOTEGAME_HPP
#include "AnswerValidator.hpp"
#include "ChallengeFactory.hpp"
#include "IGameMode.hpp"
#include "IMidiInput.hpp"
#include "ITransport.hpp"
#include <random>
#include <string>
#include <vector>
/**
* @brief Jeu de reconnaissance de notes individuelles
* Le joueur doit jouer la note affichée
*/
class NoteGame : public IGameMode {
private:
ITransport& transport; ///< Référence au transport
IMidiInput& midi; ///< Référence à l'entrée MIDI
ChallengeFactory& factory; ///< Référence à la factory
GameConfig config; ///< Configuration du jeu
AnswerValidator validator; ///< Validateur de réponses
int challengeId; ///< ID du challenge actuel
public:
/**
* @brief Constructeur
* @param transport Transport pour communication
* @param midi Entrée MIDI
* @param factory Factory pour générer les challenges
* @param config Configuration du jeu
*/
NoteGame(ITransport& transport, IMidiInput& midi, ChallengeFactory& factory,
const GameConfig& config);
/**
* @brief Démarre le jeu
*/
void start() override;
/**
* @brief Exécute une partie
* @return Résultat de la partie
*/
GameResult play() override;
/**
* @brief Arrête le jeu
*/
void stop() override;
};
#endif // NOTEGAME_HPP