-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmain.cpp
103 lines (78 loc) · 2.59 KB
/
main.cpp
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
99
100
101
102
103
#include <stdlib.h> // Initialisation de la seed pour rand() avec srand()
#include <time.h> // Pour générer une seed différente pour chaque itération de srand()
#include <unistd.h> // Pour sleep(), pour ralentir l'éxécution
#include <QCoreApplication>
#include <QString>
#include <QFile>
#include <QtWidgets>
#include "Controlleur/Partie.hh"
#include "Intelligence/Indila.hh"
#include "Intelligence/Tay.hh"
#include "Intelligence/IPA.hh"
#include "Intelligence/Manuel.hh"
#include "Modele/generateur/position.hh"
#include "Menu/menu.hpp"
#include "Resultat/resultat.hpp"
extern int InitialisationRendu(int argc,char* argv[]);
QApplication* app = nullptr;
QIcon* appIcon = nullptr;
Partie* p = nullptr;
Menu* menu = nullptr;
Resultat* result = nullptr;
JoueurManuel* m = nullptr;
void Etape3_Recap(Result_Player a,Result_Classement b) {
QFile styleFile("./Resultat/resultat.qss");
styleFile.open(QFile::ReadOnly);
QString style(styleFile.readAll());
result = new Resultat(a,b);
result->setStyleSheet(style);
result->showMaximized();
app->setActiveWindow(result);
glutLeaveMainLoop();
}
void Etape2_Jeu(PlayerData pd) {
menu->close();
// Création de la partie
m = new JoueurManuel(pd.PlayerColor.red(),pd.PlayerColor.green(),pd.PlayerColor.blue(),pd.PlayerName);
std::vector<Joueur*> v;
v.push_back(m);
for(int i=0;i<7;i++) {
v.push_back(new IPA());
v.push_back(new Tay());
v.push_back(new Indila());
}
p = new Partie(v,2048,1020);
QObject::connect(p, &Partie::PartieTermine, &Etape3_Recap );
InitialisationRendu(0,nullptr);
}
void Etape1_Menu() {
// 1.1 Import du style
QFile styleFile("./Menu/menu.qss");
styleFile.open(QFile::ReadOnly);
QString style(styleFile.readAll());
// 1.3 Création du menu
menu = new Menu();
menu->setStyleSheet(style);
// 1.2 Liaison d'événements
QObject::connect(menu, &Menu::EnvoieFormulaire, &Etape2_Jeu);
// 1.4 Rendu et affichage
menu->showMaximized();
app->setActiveWindow(menu);
appIcon = new QIcon("./Menu/ressource/icon.png");
app->setWindowIcon(*appIcon);
}
void Initialisation(int argc,char* argv[]) {
// 0.1 Initilisation générateur random
srand(time(nullptr));
// 0.2 Création de l'application
app = new QApplication(argc,argv);
QCoreApplication::setApplicationName(QString("Agar.ia"));
}
int main(int argc,char* argv[]) {
Initialisation(argc,argv);
Etape1_Menu();
return app->exec();
}
void updateManuallyHandled(int x,int y,int w,int h) {
m->setSouris(x,y,w,h);
}