Close #61 : Possibilité de directement validé si le mot est totalement prérempli
This commit is contained in:
parent
eaead3341a
commit
e601d3b3ce
23
ts/input.ts
23
ts/input.ts
|
@ -167,6 +167,11 @@ export default class Input {
|
|||
if (this.estBloque()) return;
|
||||
this.bloquer(ContexteBloquage.ValidationMot);
|
||||
let mot = this._motSaisi;
|
||||
// Cas particulier : Si le préremplissage donne un mot complet
|
||||
let statutJeu = this.siPreremplissageEstReponse();
|
||||
if (statutJeu.preRempli && statutJeu.mot) {
|
||||
mot = statutJeu.mot;
|
||||
}
|
||||
let isMotValide = await this._gestionnaire.verifierMot(mot);
|
||||
if (isMotValide) {
|
||||
// Si le mot est valide, alors c'est la grille qui nous débloque
|
||||
|
@ -174,6 +179,24 @@ export default class Input {
|
|||
} else this.debloquer(ContexteBloquage.ValidationMot);
|
||||
}
|
||||
|
||||
private siPreremplissageEstReponse(): { preRempli: boolean; mot?: string } {
|
||||
let lettrePrerempli = new Array<{ preRempli: boolean; lettre?: string }>();
|
||||
for (let i = 0; i < this._longueurMot; i++) lettrePrerempli.push({ preRempli: false });
|
||||
|
||||
for (let resultat of this._resultats) {
|
||||
for (let positionResultat in resultat) {
|
||||
let lettreResultat = resultat[positionResultat];
|
||||
if (lettreResultat.statut === LettreStatut.BienPlace) lettrePrerempli[positionResultat] = { preRempli: true, lettre: lettreResultat.lettre };
|
||||
}
|
||||
}
|
||||
|
||||
if (lettrePrerempli.every((lettre) => lettre.preRempli)) {
|
||||
return { preRempli: true, mot: lettrePrerempli.reduce((mot, lettre) => mot + lettre.lettre, "") };
|
||||
}
|
||||
|
||||
return { preRempli: false };
|
||||
}
|
||||
|
||||
private saisirLettre(lettre: string): void {
|
||||
if (this.estBloque()) return;
|
||||
if (this._motSaisi.length >= this._longueurMot) return;
|
||||
|
|
Loading…
Reference in New Issue