-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettings.h
More file actions
98 lines (79 loc) · 2.84 KB
/
settings.h
File metadata and controls
98 lines (79 loc) · 2.84 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#ifndef SETTINGS_H
#define SETTINGS_H
#include <QWidget>
#include <QString>
#include <QLineEdit>
#include <QRadioButton>
#include <QSpinBox>
#include <QGridLayout>
#include <QButtonGroup>
/**
* @brief Classe Settings : Interface utilisateur pour configurer les paramètres de la partie.
*
* Cette classe permet de définir les noms des joueurs, choisir le type d'adversaire
* (humain ou IA), et spécifier le nombre de tours pouvant être annulés.
*/
class Settings : public QWidget
{
Q_OBJECT
public:
/**
* @brief Constructeur de la classe Settings.
*
* @param parent Le widget parent (par défaut nullptr).
*/
explicit Settings(QWidget* parent = nullptr);
signals:
/**
* @brief Signal émis pour retourner au menu principal.
*/
void retour_menu_principal();
/**
* @brief Signal émis pour sauvegarder les paramètres de la partie.
*
* @param joueur1 Le nom du Joueur 1.
* @param joueur2 Le nom du Joueur 2 ou "IA" si contre l'IA.
* @param contreIA Booléen indiquant si l'adversaire est une IA.
* @param nb_undos Nombre de tours pouvant être annulés.
* @param extensions les extense
*/
void parametres_changes(QString joueur1, QString joueur2, int nb_undos, std::vector<std::string> extensions, bool contreIA);
private:
/**
* @brief Configure la disposition principale des paramètres.
*/
void setup_settings();
/**
* @brief Configure les champs d'entrée pour les noms des joueurs.
*/
void setup_entrees_joueurs();
/**
* @brief Configure les options pour le nombre de tours annulables.
*/
void setup_undo_options();
/**
* @brief Configure les boutons (Retour et Sauvegarde).
*/
void setup_boutons();
/**
* @brief Configure les boutons d'extensions
*/
void setup_extension_options();
std::vector<std::string> insectes;
void ajouter_extension(std::string str) { insectes.push_back(str); }
void enlever_extension(std::string str) { insectes.erase(std::remove(insectes.begin(), insectes.end(), str), insectes.end()); }
private:
QGridLayout* layout; ///< Disposition principale pour organiser les widgets.
QLineEdit* player1_input; ///< Champ de saisie pour le nom du Joueur 1.
QLineEdit* player2_input; ///< Champ de saisie pour le nom du Joueur 2.
QRadioButton* vs_joueur_bouton; ///< Bouton radio pour sélectionner un adversaire humain.
QRadioButton* vs_IA_bouton; ///< Bouton radio pour sélectionner un adversaire IA.
QButtonGroup* boutons_ia_joueur; ///< Groupe de boutons pour gérer le choix de l'adversaire.
QSpinBox* undo_spin_box; ///< Boîte à incréments pour le nombre de tours annulables.
private slots:
/**
* @brief Sauvegarde les paramètres et émet un signal.
*/
void sauvegarder_parametres();
};
#endif // SETTINGS_H