# Tutoriel interactif de Mahjong Riichi

TypeScript Vite License

Un tutoriel complet et interactif pour apprendre à jouer au Mahjong Riichi, développé en TypeScript moderne avec une interface élégante. ## Démonstration Ce tutoriel est accessible directement sur [ce site](https://perso.eleves.ens-rennes.fr/people/adrien.decosse/riichi/). ## Fonctionnalités - **Guide étape par étape** : Apprentissage progressif découpé en chapitres - **Interface interactive** : Manipulez les tuiles et expérimentez les dynamiques - **Exemples de jeu** : Scénarios dirigés pour s'entraîner aux différentes situations - **Design moderne** : Interface élégante avec animations fluides - **Performances optimisées** : Rendu canvas optimisé avec double buffering ## Stack Technique | Technologie | Version | Usage | |------------|---------|-------| | TypeScript | 5.6+ | Langage principal | | Vite | 6.0+ | Build tool & dev server | | Vitest | 2.1+ | Tests unitaires | | Canvas API | - | Rendu graphique | ## Démarrage Rapide ### Prérequis - Node.js 18.0 ou supérieur - npm ou yarn ### Installation ```bash # Cloner le dépôt git clone https://github.com/Didictateur/Riichi.git cd Riichi # Installer les dépendances npm install # Lancer le serveur de développement npm run dev ``` ## Scripts Disponibles | Commande | Description | |----------|-------------| | `npm run dev` | Lance le serveur de développement avec hot reload | | `npm run build` | Compile le projet pour la production | | `npm run preview` | Prévisualise le build de production | | `npm run typecheck` | Vérifie les types TypeScript | | `npm run test` | Lance les tests | | `npm run test:watch` | Lance les tests en mode watch | ## Makefile Un Makefile est également disponible : ```bash make dev # Serveur de développement make build # Build production make preview # Prévisualiser le build make test # Lancer les tests make clean # Nettoyer les fichiers générés make hard-clean # Nettoyage complet (incluant node_modules) make zip # Créer une archive de distribution make help # Afficher l'aide ``` ## Structure du Projet ``` Riichi/ ├── src/ │ ├── constants/ # Constantes partagées │ ├── display/ # Composants d'affichage (dp*.ts) │ ├── styles/ # Feuilles de style CSS │ ├── text/ # Textes des tutoriels │ ├── types/ # Définitions de types TypeScript │ ├── utils/ # Fonctions utilitaires │ └── yakus/ # Implémentation des yakus ├── img/ # Images et ressources ├── tests/ # Tests unitaires ├── build/ # Fichiers compilés ├── index.html # Point d'entrée HTML ├── vite.config.ts # Configuration Vite └── tsconfig.json # Configuration TypeScript ``` ## Design System Le projet utilise un système de variables CSS moderne : ```css :root { --color-primary: #1a7f4b; --color-accent: #ffd700; --bg-main: linear-gradient(...); /* ... */ } ``` ## Contribution Les contributions sont les bienvenues ! N'hésitez pas à : 1. Fork le projet 2. Créer une branche (`git checkout -b feature/amelioration`) 3. Commit vos changements (`git commit -am 'Ajout de fonctionnalité'`) 4. Push la branche (`git push origin feature/amelioration`) 5. Ouvrir une Pull Request ## Sources Les images des tuiles proviennent du dépôt de [FluffyStuff](https://github.com/FluffyStuff/riichi-mahjong-tiles). ## Licence Ce projet est dans le [domaine public](https://creativecommons.org/publicdomain/zero/1.0/) (CC0 1.0).