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

Merge branch 'master' of gitlab.ec-lyon.fr:durandu/projetcppqt

parents ec1b224d 0a3fa25b
No related branches found
No related tags found
No related merge requests found
......@@ -37,7 +37,7 @@ qt_add_qml_module(appmotus
SOURCES jeu.h jeu.cpp
SOURCES
QML_FILES Case.qml
QML_FILES Grille.qml
QML_FILES
SOURCES lettermodel.h lettermodel.cpp
)
......
......@@ -13,8 +13,8 @@ Item {
Grid {
id: letterGrid
columns: 8
rows: 5
columns: jeu.getWidth()
rows: jeu.getHeight()
spacing: 4
anchors.centerIn: parent
width: 600
......
import QtQuick
import QtQuick.Controls
Grid {
id: grille
rows: jeu.grilleManager.rows // Get the number of rows dynamically
columns: jeu.grilleManager.columns // Get the number of columns dynamically
spacing: 5
// Use a Repeater to populate the grid with cases
Repeater {
model: jeu.grilleManager.cases
delegate: Case {
letter: modelData.letter
etat: modelData.etat
}
}
}
......@@ -105,7 +105,7 @@ void Brain::trouveMot() {
cout << "Mot de taille : " << mTailleMot << " dans " << dico << endl;
while (std::getline(file, line)) {
if (line.length() == mTailleMot + 1) {
listeMots.push_back(line.substr(0, 8));
listeMots.push_back(line.substr(0, mTailleMot));
}
}
......
#include "jeu.h"
#include <iostream>
#include <QString>
#include <QQmlContext>
Jeu::Jeu(QObject* rootObject, QObject *parent) : QObject(parent), rootObject(rootObject) {
Jeu::Jeu(QQmlApplicationEngine* engine, QObject *parent) : QObject(parent), engine(engine) {
brain = new Brain("./");
}
// void Jeu::setMot(const QString& mot) {
// this->mot = mot;
// grilleManager.createGrid(mot.length(), 1); // Utilise la longueur du mot pour la grille
// emit motChanged();
// }
width = 10;
height = 7;
}
int Jeu::getWidth() {return width;}
int Jeu::getHeight(){return height;}
QString Jeu::getMotAffiche() {
return mot;
}
void Jeu::onClavierClick(QString lettre) {
if (!m_letterModel)
return;
if (currentIndex < 40) { // on évite de dépasser la grille
if (currentIndex < width*height) {
m_letterModel->setLetter(currentIndex, lettre);
currentIndex++;
}
brain->entreLettre(lettre.toStdString()[0]);
for (int index = 0; index < 40; index ++) {
for (int index = 0; index < width*height; index ++) {
m_letterModel->setLetter(index, QString::fromLatin1(&brain->getGrid()[index], 1));
......@@ -65,14 +61,13 @@ void Jeu::initGame() {
void Jeu::startGame() {
engine->rootContext()->setContextProperty("jeu", this);
brain->setFichierDico("words_alpha.txt");
brain->setNombreEssais(5);
brain->setTailleMots(8);
brain->setNombreEssais(height);
brain->setTailleMots(width);
brain->initGame();
// grilleManager.createGrid(6, 5); // à synchroniser avec les paramètres du brain
}
void Jeu::setLetterModel(LetterModel* model) {
......
......@@ -4,6 +4,7 @@
#include <QObject>
#include <QQuickItem>
#include <QQmlComponent>
#include <QQmlApplicationEngine>
#include "brain.h"
#include "lettermodel.h"
......@@ -13,10 +14,12 @@ class Jeu : public QObject {
Q_PROPERTY(QQuickItem* gameWindow READ getGameWindow NOTIFY gameWindowChanged)
public:
explicit Jeu(QObject* rootObject, QObject *parent = nullptr);
explicit Jeu(QQmlApplicationEngine* engine, QObject *parent = nullptr);
QString getMotAffiche();
Q_INVOKABLE void onClavierClick(QString lettre);
Q_INVOKABLE void initGame();
Q_INVOKABLE int getWidth();
Q_INVOKABLE int getHeight();
Q_INVOKABLE void startGame(); // pour init depuis QML
QQuickItem* getGameWindow() const { return gameWindow; } // Getter for gameWindow
void setLetterModel(LetterModel* model); // Setter pour le modèle
......@@ -28,11 +31,13 @@ signals:
private:
Brain* brain;
QObject* rootObject;
QQmlApplicationEngine* engine;
QString mot;
QQuickItem* gameWindow; // Pointer to the QQuickItem of the GameWindow
LetterModel* m_letterModel = nullptr; // Modèle QML
int currentIndex = 0; // Pour suivre où on écrit
int width;
int height;
};
#endif // JEU_H
......@@ -4,7 +4,6 @@
#include "iostream"
#include <cctype>
using namespace std;
#include <QString>
Ligne::Ligne(string bonmot) : bonmot(bonmot), positionCurseur(0) {}
......
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QQuickItem>
#include <QQmlApplicationEngine>
......@@ -25,7 +24,7 @@ int main(int argc, char *argv[]) {
QQuickItem *parentItem = rootItem;
Jeu jeu(rootObject);
Jeu jeu(&engine);
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 register or to comment