Riichi/README.md
2026-01-02 18:39:20 +01:00

127 lines
3.9 KiB
Markdown

# Tutoriel interactif de Mahjong Riichi
<p align="center">
<img src="https://img.shields.io/badge/TypeScript-5.6-blue?logo=typescript" alt="TypeScript">
<img src="https://img.shields.io/badge/Vite-6.0-646CFF?logo=vite" alt="Vite">
<img src="https://img.shields.io/badge/License-CC0-green" alt="License">
</p>
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).