Enigmat
Version numérique du jeu Enigmat

Informations
À propos
Cette web-app est une démonstration en ligne du jeu Enigmat.
À la base, elle contenait 10 niveaux (5 de la boite n°1 et 5 inédits). L'objectif du jeu est de trouver l'arrangement unique des quatre tuiles qui amène à une situation de mat du Roi noir parmi les 24 possibles.
En septembre 2025, Serge, le créateur du jeu, m'a contacté pour savoir s'il était possible d'intégrer entièrement la boite n°1 de son jeu. Ce fut l'occassion de retravailler le code interne de l'application (Vanilla JS), l'esthétique mais aussi d'ajouter de nouvelles fonctionnalités.
Finalement, Serge choisira de rendre disponible tous les niveaux des deux boites en découvrant la nouvelle version.
Défis techniques
- Modélisation du jeu : validation de la bonne position de mat
- Ergonomie mobile : drag & drop tactile précis sans dépendances
- Structure des données : décrire tous les niveaux/solutions de façon pérenne
- Persistance : sauvegarder la progression sur l'appareil
- Compatibilité : comportements homogènes sur tous les types d'appareil
Solutions apportées
Architecture technique
- Vanilla JS : création d'une classe Enigmat gérant toute la logique métier
- Données JSON : packs par boîte, validés au chargement
- Persistance locale : LocalStorage pour progrès et préférences
- Partage d’état : sérialisation compacte dans l’URL (hash)
- Obfuscation : utilisation d'ID aléatoires pour les différents quarts de l'échiquier dans le code HTML
Fonctionnalités clés
- Navigation facile : changement de niveau grâce au bouton ou au selecteur central
- Drag & drop fluide : souris et tactile gérés sans souci
- Validation rapide : utilisation d'une modale personnalisée pour améliorer l'interface
- Statistiques d'avancement : sauvegarde des niveaux réussis dans le navigateur
- Export de niveaux : possibilité d'imprimer les grilles
- Import de niveaux : possibilité d'importer des niveaux (via code FEN)
Résultats
- Adoption par l’auteur : décision d’ouvrir l’intégralité des deux boîtes
- Expérience améliorée : interactions plus fluides sur mobile et bureau
- Base pérenne : code maintenable sans dépendances lourdes, prêt pour de nouveaux packs
Avec ce projet, je démontre ma capacité à construire des web app intuitives, à modéliser des situations réelles et à m'intégrer dans une charte graphique existance.