Skip to content
Snippets Groups Projects
Commit 2fb5488b authored by Yanis Dziki's avatar Yanis Dziki
Browse files

Omg les couleurs

parents 47b210cf 4a4b0813
Branches
No related tags found
No related merge requests found
......@@ -55,4 +55,3 @@ Item {
}
}
......@@ -4,6 +4,7 @@
#include <iostream>
#include <filesystem>
#include "fullligneexception.h"
#include "emptyligneexception.h"
#include <QString>
using namespace std;
......@@ -12,7 +13,7 @@ namespace fs = std::filesystem;
#include "nowordexception.h"
#include "brain.h"
Brain::Brain(string dicodir) : dicodir(dicodir), nbEssais(0) {
Brain::Brain(string dicodir) : dicodir(dicodir), nbEssais(0), inGame(0) {
vector<string> files = getTxtFiles();
// TODO
// Initialise le menu déroulant avec files
......@@ -20,6 +21,14 @@ Brain::Brain(string dicodir) : dicodir(dicodir), nbEssais(0) {
string Brain::getGrid() {
string res = "";
if (inGame > 0) {
for(int i=0;i<2;i++) {res += " ";}
res += (inGame == 1) ? " LOSER " : " WINNER ";
for(int i=0;i<2;i++) {res += " ";}
return res;
}
for (int i=0;i<mNbEssaisMax;i++) {
res += lignes[i]->getMot();
}
......@@ -55,13 +64,20 @@ vector<string> Brain::getTxtFiles() {
}
void Brain::entreLettre(char lettre) {
if (inGame > 0) return;
if (lettre == '0') {
validateWord();
return;
}
if (lettre == '!') {
try {
supprLettre();
lignes[nbEssais]->show();
}
catch (EmptyLigneException e) {
cout << e.what() << endl;
}
return;
}
try {
......@@ -88,8 +104,8 @@ void Brain::trouveMot() {
string line;
cout << "Mot de taille : " << mTailleMot << " dans " << dico << endl;
while (std::getline(file, line)) {
if (line.length() == mTailleMot) {
listeMots.push_back(line);
if (line.length() == mTailleMot + 1) {
listeMots.push_back(line.substr(0, 8));
}
}
......@@ -118,6 +134,7 @@ void Brain::initGame() {
lignes.push_back(new Ligne(getMot()));
lignes[i]->initLigne();
}
cout << "Solution : " << getMot() << endl;
} catch (NoWordException e) {
cout << e.what() << endl;
}
......@@ -146,18 +163,13 @@ void Brain::validateWord() {
void Brain::onGameFinish(bool isWin) {
if (!isWin) {
cout << "Perdu !" << endl;
inGame = 1;
}
else {
cout << "Gagné !" << endl;
inGame = 2;
}
// TODO :
// Si isWin
// Affiche un message de victoire sur la fenetre menu
// Ferme la fenetre de jeu
// Sinon
// Affiche un message de defaite sur la fenetre menu
// Ferme la fenetre de jeu
// Reset du brain
nbEssais = 0;
lignes.clear();
}
......@@ -33,6 +33,7 @@ private:
string dicodir;
string dico;
string mot;
int inGame;
int mNbEssaisMax;
int nbEssais;
int mTailleMot;
......
......
......@@ -16,15 +16,15 @@ void Ligne::initLigne() {
bool Ligne::isGameCleared() {
int nbjustes = 0;
cout << bonmot.length() <<endl;
show();
for (int i = 0; i < bonmot.length(); i++) {
char bonnelettre = toupper(bonmot[i]); // Convert to uppercase
char lettreacomparer = contenu[i]->getLetter(); // Get the QChar from contenu
char bonnelettre = toupper(bonmot[i]);
char lettreacomparer = contenu[i]->getLetter();
int etat1 = (bonnelettre == lettreacomparer) ? 1 : 0;
int etat2 = Ligne::dansMot(lettreacomparer, bonmot);
int etat = etat1+etat2;
contenu[i]->setEtat(etat);
nbjustes += etat;
}
......
......
......@@ -20,13 +20,14 @@ int main(int argc, char *argv[]) {
engine.rootContext()->setContextProperty("letterModel", &letterModel);
engine.loadFromModule("motus", "Main");
QObject *rootObject = engine.rootObjects().first(); // Gets the first root object
QObject *rootObject = engine.rootObjects().first();
QQuickItem *rootItem = qobject_cast<QQuickItem *>(rootObject);
QQuickItem *parentItem = rootItem;
// Créer l'objet Jeu sans mot
Jeu jeu(rootObject);
jeu.setLetterModel(&letterModel);
engine.rootContext()->setContextProperty("jeu", &jeu);
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment