diff --git a/Motus/Case.qml b/Motus/Case.qml index 6ca6f640ad51667b5f78899ab08d18a3aea1099e..0c4e67410dbeef9845561557b6701ea20582d853 100644 --- a/Motus/Case.qml +++ b/Motus/Case.qml @@ -4,7 +4,7 @@ Item { id: _item width: 70 height: 70 - property alias rectangleBordercolor: rectangle.border.color + property alias rectangleBorderColor: rectangle.border.color property alias rectangleColor: rectangle.color focus: false property alias rectangleBorderwidth: rectangle.border.width diff --git a/Motus/Main.qml b/Motus/Main.qml index 8918f816e84464b9d9462a44e1b4b85887c55ec1..921c6356c24efb4ae58ccd890bbc1cc8a2cac324 100644 --- a/Motus/Main.qml +++ b/Motus/Main.qml @@ -46,7 +46,7 @@ Window { if (mot !== "") { // Saisie d'une lettre (de A à Z) if (/^[a-zA-Z]$/.test(event.text)) { - if (indice_case < nb_lettres) { // On s'assure de ne pas dépasser la ligne + if (indice_case < nb_lettres) { var cellIndex = current_essai * nb_lettres + indice_case; caseArray[cellIndex]._textText = event.text.toUpperCase(); indice_case++; @@ -74,8 +74,7 @@ Window { console.log("Mot entré :", mot_entre); if (motusGame.existWord(mot_entre)) { - // Le mot existe, on procède à l'évaluation - // Préparer le mot cible en majuscules (mot_split contient le mot à deviner) + // Le mot existe, on procède à l'évaluation avec gestion des doublons var target = mot_split.map(function(letter) { return letter.toUpperCase(); }); @@ -91,26 +90,23 @@ Window { // Par défaut, on ne change pas le style (chaîne vide) var resultColors = new Array(nb_lettres); - // Première passe : lettres bien placées (vert) + // Première passe : marquer en vert les lettres bien placées for (var i = 0; i < nb_lettres; i++) { if (candidate[i] === target[i]) { resultColors[i] = "#42cc3d"; // vert targetCounts[candidate[i]]--; } else { - resultColors[i] = ""; // ne change pas le style de base + resultColors[i] = ""; } - if (mot==mot_entre){ - motusGame.setWinbool(true); - - } - - } - + // Vérifier si le mot entré correspond exactement au mot à deviner + if (mot_entre.toUpperCase() === mot.toUpperCase()) { + motusGame.setWinbool(true); + console.log("✅ Victoire !"); } - // Deuxième passe : lettres présentes mais mal placées (jaune) + // Deuxième passe : marquer en jaune les lettres présentes mais mal placées for (var i = 0; i < nb_lettres; i++) { if (resultColors[i] === "") { var letter = candidate[i]; @@ -118,7 +114,6 @@ Window { resultColors[i] = "#f0d437"; // jaune targetCounts[letter]--; } - // Sinon, resultColors[i] reste vide et le style de base est conservé } } @@ -127,17 +122,11 @@ Window { var case_verif = caseArray[current_essai * nb_lettres + i]; if (resultColors[i] !== "") { case_verif.rectangleColor = resultColors[i]; - case_verif.rectangleBordercolor = resultColors[i]; + case_verif.rectangleBorderColor = resultColors[i]; changeKeyColor(candidate[i], resultColors[i]); } } - // Vérifier si le mot entré correspond exactement au mot à deviner - if (mot_entre.toUpperCase() === mot.toUpperCase()) { - motusGame.setWinbool(true); - console.log("✅ Victoire !"); - } - // Passage à la ligne suivante et mise à jour du focus if (current_essai < nb_essais - 1) { current_essai++; @@ -152,7 +141,7 @@ Window { for (var i = 0; i < nb_lettres; i++) { var case_verif = caseArray[current_essai * nb_lettres + i]; case_verif.rectangleColor = "#cf1b2a"; - case_verif.rectangleBordercolor = "#cf1b2a"; + case_verif.rectangleBorderColor = "#cf1b2a"; } revertTimer.start(); } @@ -172,7 +161,7 @@ Window { for (var i = 0; i < nb_lettres; i++) { var case_verif = caseArray[current_essai * nb_lettres + i]; case_verif.rectangleColor = "#323232"; - case_verif.rectangleBordercolor = "#ffffff"; + case_verif.rectangleBorderColor = "#ffffff"; } } } @@ -202,7 +191,6 @@ Window { id: choosebutton anchors.horizontalCenter: parent.horizontalCenter _textText: "Générer un mot" - // Exemple : affichage d'un mot généré dans un Case enfant Case { id: case3 x: 131 @@ -423,9 +411,9 @@ Window { width: (modelData === "Entrée" || modelData === "<") ? 80 : 50 height: 60 - color: keyColor // Liaison dynamique avec keyColor + color: keyColor radius: 5 - border.color: keyColor // Même couleur pour la bordure + border.color: keyColor Text { anchors.centerIn: parent @@ -457,7 +445,6 @@ Window { } } Component.onCompleted: { - // Enregistrer chaque touche dans keysArray pour y accéder plus tard mainWindow.keysArray.push(keyRect); } } @@ -483,7 +470,7 @@ Window { y: 50 anchors.horizontalCenter: parent.horizontalCenter spacing: 20 - // Combobox pour le nombre de lettres + Rectangle { id: rectangle_combobox width: 193 @@ -494,7 +481,6 @@ Window { border.width: 3 } - // Timer MotusTimer { id: motusTimer width: 100 @@ -505,7 +491,6 @@ Window { } } - // Au chargement, remplir caseArray à partir des instances créées par le Repeater de la grille Component.onCompleted: { caseArray = []; for (var i = 0; i < caseRepeater.count; i++) {