Aller au contenu principal
sports_esports Lab Canvas 2D Logique de feedback Gestion des doublons Clavier virtuel

Motus — le mot du jour en Canvas 2D et la gestion des lettres en double

Devinez un mot français de cinq lettres en six essais, réimplémenté from scratch en Canvas 2D : logique de feedback bien placé / présent / absent et surtout la gestion correcte des lettres en double, résolue par un algorithme en deux passes avec comptage. Clavier physique et clavier virtuel à l'écran dont les touches se colorent. Zéro dépendance.

Clavier physique ou clavier virtuel à l'écran : saisir les lettres Entrée : valider · Retour arrière : effacer Espace : nouveau mot

Un mot, cinq lettres, six essais

Motus reprend une mécanique devenue universelle : je choisis un mot français de cinq lettres, vous en proposez d'autres, et chaque essai validé se colore pour vous rapprocher de la solution. Une lettre bien placée passe en ambre, une lettre présente dans le mot mais mal positionnée en indigo, une lettre absente en gris sombre. Six essais pour tomber juste. Le tout tient dans un module Canvas 2D sans la moindre dépendance.

Le vrai sujet : la couleur juste, même avec des doublons

Colorer un essai paraît trivial tant qu'aucune lettre ne se répète. Le piège surgit avec les doublons. Si le mot cible contient un seul S et que votre essai en aligne trois, combien doivent s'allumer ? Un seul — sinon l'indice ment sur le nombre réel d'occurrences. Une comparaison lettre à lettre naïve échoue ici : elle signalerait « présent » chaque S, laissant croire que le mot en compte plusieurs.

Deux passes et un décompte

Je résous ça avec un algorithme en deux passes assorti d'un comptage. Je commence par dénombrer chaque lettre du mot cible. Première passe : je repère les lettres bien placées et, pour chacune, je décrémente son compteur — cette occurrence est désormais « consommée ». Seconde passe : pour les lettres restantes, je n'accorde le statut « présente » qu'à celles dont le compteur est encore positif, en le décrémentant à chaque fois. Résultat, une lettre n'est signalée présente qu'autant de fois qu'elle apparaît réellement dans le mot — priorité donnée aux positions exactes. C'est exactement la règle des jeux de ce type, et c'est là que la plupart des implémentations rapides se trompent.

Deux claviers pour une même saisie

On joue au clavier physique — les lettres se saisissent, Entrée valide, Retour arrière efface, Espace tire un nouveau mot — ou au clavier virtuel dessiné à l'écran, piloté par les Pointer Events pour fonctionner à la souris comme au doigt. Les deux alimentent la même logique de jeu. Et parce que l'information accumulée doit rester lisible, chaque touche du clavier virtuel se colore selon le meilleur statut connu pour sa lettre : une fois qu'un R est confirmé bien placé, sa touche reste ambre.

Ce que ça dit de ma manière de travailler

Une petite règle métier — « ne compter une lettre présente qu'autant de fois qu'elle existe » — semble anecdotique, mais c'est précisément le genre de détail qui, mal traité, produit un logiciel qui semble marcher puis induit l'utilisateur en erreur sur un cas limite. Je conçois les vôtres avec la même exigence : identifier tôt les cas particuliers, les traiter par un algorithme clair et testable plutôt que par une rustine, et livrer un comportement correct partout — pas seulement sur l'exemple de démonstration.

Photo d'Emmanuel BALLERY, fondateur de x10

À propos de l'auteur

Emmanuel BALLERY est le fondateur de x10 solutions. Ces petits jeux sont surtout un plaisir de développeur, codés le week-end — pas une vitrine de mes missions, qui sont bien plus exigeantes. J'y soigne quand même la performance et la lisibilité, par habitude.

Voir plus arrow_forward
rocket_launch

Un vrai projet en tête ?

Ce petit jeu m'amuse, mais il ne dit pas grand-chose de mon métier : mes missions sont bien plus complexes. Si vous avez une application à concevoir ou à fiabiliser, c'est là que je suis vraiment utile.

Discuter de mon projet arrow_forward