Skip to content
Snippets Groups Projects
Commit 67571449 authored by Delplanque Sara's avatar Delplanque Sara
Browse files

ajot meilleur score

parent ac866a43
Branches
No related tags found
No related merge requests found
...@@ -344,6 +344,41 @@ void GameManager::undo() { ...@@ -344,6 +344,41 @@ void GameManager::undo() {
emit calculscore(); emit calculscore();
} }
} }
void GameManager::enregistrerMeilleurScore() {
QFile file("meilleurScore.json");
qDebug() << "Fichier JSON pour le meilleur score enregistré à : " << QFileInfo(file).absoluteFilePath();
if (!file.open(QIODevice::ReadWrite)) {
qWarning() << "Impossible d'ouvrir le fichier pour écriture :" << file.errorString();
return;
}
QJsonDocument doc;
if (file.size() > 0) { // Vérifier si le fichier n'est pas vide
doc = QJsonDocument::fromJson(file.readAll());
} else { // Si le fichier est vide, initialiser un objet vide
doc = QJsonDocument(QJsonObject());
}
QJsonObject rootObj = doc.object(); // Récupérer l'objet JSON racine
// Vérifier si le meilleur score est déjà enregistré, sinon l'initialiser
if (rootObj.contains("meilleurScore")) {
int meilleurScore = rootObj["meilleurScore"].toInt();
if (m_score > meilleurScore) { // Si le score actuel est supérieur au meilleur score enregistré
rootObj["meilleurScore"] = m_score; // Mettre à jour le meilleur score
}
} else {
rootObj["meilleurScore"] = m_score; // Si aucune entrée "meilleurScore", on l'ajoute
}
// Réécriture du fichier avec la nouvelle version
file.resize(0); // Effacer le contenu du fichier avant d'écrire la nouvelle version
file.write(QJsonDocument(rootObj).toJson());
file.close();
emit historiqueChanged(); // Notifie que l'historique a changé
}
void GameManager::enregistrerPartie(QString partieName){ void GameManager::enregistrerPartie(QString partieName){
QFile file("historique.json"); QFile file("historique.json");
...@@ -447,5 +482,17 @@ bool GameManager::isGameOver() { ...@@ -447,5 +482,17 @@ bool GameManager::isGameOver() {
} }
} }
return true; // Si la grille est pleine et aucune fusion n'est possible, la partie est terminée return true; // Si la grille est pleine et aucune fusion n'est possible, la partie est terminée
endGame();
} }
<<<<<<< Updated upstream
>>>>>>> e22daca7a3c09bd0a515d12093b0cbf7e3e4e152 >>>>>>> e22daca7a3c09bd0a515d12093b0cbf7e3e4e152
=======
void GameManager::endGame() {
// Comparer le score actuel avec le meilleur score
if (m_score > m_bestScore) {
m_bestScore = m_score; // Mettre à jour le meilleur score
enregistrerMeilleurScore(); // Enregistrer le meilleur score
}
}
>>>>>>> Stashed changes
...@@ -37,13 +37,19 @@ private: ...@@ -37,13 +37,19 @@ private:
std::vector<std::vector<int>> grid; std::vector<std::vector<int>> grid;
QJsonArray historyArray; QJsonArray historyArray;
int m_score; int m_score;
int m_bestScore;
int bestScore() const;
Q_INVOKABLE void addRandomElement(); Q_INVOKABLE void addRandomElement();
Q_INVOKABLE void enregistrerPartie(QString partieName); Q_INVOKABLE void enregistrerPartie(QString partieName);
Q_INVOKABLE void calculscore(); Q_INVOKABLE void calculscore();
Q_INVOKABLE void enregistrerMeilleurScore();
Q_INVOKABLE void endGame();
QJsonArray gridToJsonArray(); QJsonArray gridToJsonArray();
bool m_gameOver; bool m_gameOver;
...@@ -52,6 +58,7 @@ signals: ...@@ -52,6 +58,7 @@ signals:
void gridChanged(); void gridChanged();
void historiqueChanged(); void historiqueChanged();
void scoreChanged(); void scoreChanged();
void bestScoreChanged();
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment