Mindgrid

Mindgrid est une plateforme de petits jeux de logique, courts et malins, jouables directement dans le navigateur et pensés d’abord pour le téléphone. Son premier jeu, « Dans l’ordre », demande de placer des valeurs tirées au hasard dans une grille qui doit rester strictement croissante, et pousse à anticiper chaque coup.

Fonctionnalités

  • Jeu « Dans l’ordre » : une valeur est tirée au hasard, sans jamais se répéter, et le joueur choisit la case où la placer. La partie est perdue dès qu’une valeur n’a plus aucune place possible, et gagnée quand toutes les cases sont remplies.
  • Parties configurables : en nombres, avec une plage au choix, ou en lettres de A à Z, sur 2 à 30 cases. Les réglages sont vérifiés pour que la partie reste toujours jouable, et ils sont mémorisés d’une visite à l’autre.
  • Design arcade rétro : polices pixel, boutons biseautés façon borne d’arcade, icônes pixel-art dessinées à la main et animations saccadées « 8 bits ». Le tout est réalisé sans aucune bibliothèque d’interface.
  • Thèmes visuels : cinq palettes de couleurs, un mode clair et un mode sombre, ou l’affichage du système. Le thème choisi s’applique dès le chargement, sans clignotement.
  • Pensé pour le mobile : les boutons d’action restent à portée du pouce, et les réglages s’ouvrent dans un panneau qui monte du bas de l’écran.
  • Plateforme extensible : chaque nouveau jeu se branche sur un socle commun (accueil, réglages, thèmes) sans toucher au reste du code.
  • À venir : des comptes pour sauvegarder ses statistiques, un système de niveaux et un défi du jour, avec la même grille pour tous les joueurs.

Objectif en bref

Construire un projet full-stack propre et évolutif autour de jeux simples mais soignés, avec une attention particulière à l’expérience sur mobile, à l’identité visuelle et à la qualité du code.

Stack technique

Le front est développé en React 19 et TypeScript avec Vite, et mis en forme avec des CSS Modules et des variables CSS. Ces variables portent tout le système de thèmes.

Toute la logique de jeu est écrite en TypeScript pur, sans dépendance à React, et couverte par des tests unitaires Vitest. Le hasard repose sur un générateur pseudo-aléatoire à graine, stocké dans l’état de la partie. Résultat : une partie est entièrement reproductible, ce qui ouvrira la voie au défi du jour et aux parties partagées.

L’application est hébergée sur Cloudflare Workers. Les fichiers statiques sont servis directement depuis le réseau de Cloudflare, et un Worker dédié répond aux routes d’API. Chaque push sur la branche principale est déployé automatiquement en production, et chaque autre branche obtient sa propre URL de prévisualisation. La suite prévoit une base Cloudflare D1 pour les comptes et les statistiques.