Files
livrets/README.MD
T

68 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Livrets
Jeu d'entraînement aux tables de multiplication (Kotlin Multiplatform, Android + iOS).
## Règles du jeu
- Au lancement, on configure : le **nombre de questions** (5–50), le **temps par question** (3–30 s)
et la **table maximum** (1–12).
- Chaque question est une multiplication tirée au hasard dans les tables 1 à la table maximum :
soit `a × b = ?`, soit `a × ? = b`. On répond avec le pavé numérique.
- Temps écoulé = réponse comptée comme fausse (une saisie en cours est auto-validée).
- Après chaque réponse, un feedback (vert/rouge) s'affiche 1,5 s puis la question suivante arrive.
- À la fin : score, taux de réussite, temps moyen et résumé de chaque réponse fausse.
- L'**Historique** conserve les parties passées et le taux de réussite cumulé par table.
## Lancer l'application
### Android
```bash
./gradlew :androidApp:installDebug # appareil/émulateur connecté
# ou générer l'APK :
./gradlew :androidApp:assembleDebug # androidApp/build/outputs/apk/debug/
```
### iOS
Ouvrir `iosApp/iosApp.xcodeproj` dans Xcode et lancer le scheme `iosApp` sur un simulateur.
### macOS desktop
Lancer l'application en fenêtre (480×800) depuis le terminal :
```bash
./gradlew :desktopApp:run
```
Les données sont stockées dans `~/.livrets/`.
## Play Jeux Services (Android)
Connexion silencieuse au lancement, envoi automatique du score en fin de partie et
bouton « Classement » sur l'accueil (UI native Play Jeux). Hors connexion ou sans
configuration console, tout échoue silencieusement : le jeu reste pleinement jouable.
Score soumis : `round((somme des produits réussis) × 30 ÷ secondes par question)`.
Prérequis manuels dans [Google Play Console](https://play.google.com/console) :
1. Créer l'app (package `com.livrets.androidApp`).
2. Jouer → Play Jeux Services : créer le jeu, lier l'app Android, ajouter les
empreintes SHA-1 debug et release.
3. Créer les 10 leaderboards avec les IDs `questions_5` … `questions_50`
(« 5 questions » … « 50 questions »).
4. Ajouter des testeurs Play Jeux Services pour valider la connexion en dev.
## Tests
```bash
./gradlew :sharedUI:jvmTest # logique de jeu, générateur, persistance
```
## Structure
- `sharedUI/` : logique de jeu (`game/`), persistance (`data/`), UI Compose (`ui/`), thème (`theme/`)
- `androidApp/` : hôte Android
- `iosApp/` : hôte iOS (Xcode)