L'objectif est de remettre les tuiles dans l'ordre en les déplaçant une par une via la case vide.
🎉
Bravo !
Un taquin 4×4 jouable directement dans le navigateur. L'objectif est de remettre les tuiles numérotées de 1 à 15 dans l'ordre croissant en les faisant glisser une par une vers la case vide.
Backend
Frontend
Intégration de Stimulus
Le contrôleur Stimulus gère l'ensemble de la logique du jeu (déplacements, shuffle, détection de victoire) sans rechargement de page, en manipulant directement le DOM via les targets et actions déclarés dans le template Twig.
Détection des mouvements valides avec la distance de Manhattan
Pour déterminer si une tuile peut se déplacer, le contrôleur calcule la distance de Manhattan entre la tuile cliquée et la case vide. Si |rowA - rowB| + |colA - colB| === 1, le mouvement est valide (tuiles strictement adjacentes en horizontal ou vertical).
Génération d'un puzzle toujours soluble
Le mélange initial est généré en enchaînant 200 mouvements valides aléatoires depuis l'état résolu, garantissant ainsi que la configuration obtenue est toujours soluble.
Ajouter un compteur de coups et un chronomètre
Persister l'état de la grille dans le localStorage pour reprendre la partie après un rechargement de page
Proposer plusieurs tailles de grille (3×3, 4×4, 5×5)
Ajouter une animation de transition sur les déplacements de tuiles