Proposition de projet
Jeu du pendu
Objectif
Le pendu est un jeu de lettres où l’on doit deviner un mot mystère en proposant des lettres, avec un nombre d’essais limité. Chaque erreur consomme un essai et la partie est gagnée lorsque toutes les lettres du mot sont découvertes. Dans ce TP, le même mot est partagé par tous les joueurs (par exemple sur la journée) et chaque joueur dispose de son propre score basé sur le temps et les erreurs.
Barème
| Élément évalué | Détails | Points |
|---|---|---|
| Même mot pour tout le monde | Mot identique pour tous, score individuel | 3 |
| Gestion du score | 5 essais, base 1000 pts, −1 pt/s, −50 pts/erreur | 4 |
| Une seule partie par jour | Limiter à une partie par joueur et par jour | 2 |
| Affichage des lettres choisies | Historique/état des lettres déjà tentées | 2 |
| Interface utilisateur soignée | UI claire et agréable | 2 |
| Dynamisation des pages | Fin de partie, affichage des scores | 3 |
| Top 100 scores avec pseudo | Classement global avec pseudonyme | 4 |
| Partage des scores | Partage d’un score (lien, bouton, etc.) | 2 |
Consignes
Développer une application web du pendu avec un mot commun à tous pour une période définie (ex. une journée), une seule partie par joueur et par jour, l’affichage clair des lettres tentées, et un classement Top 100 par pseudo. Prévoir la fin de partie (victoire/défaite), l’affichage/partage du score et une interface soignée.
Stack recommandée
- Libre (JS/TS) côté client
- Backend léger recommandé (Node.js + Express)
- Persistance au choix; SQLite recommandé si vous visez le bonus
- Frameworks modernes acceptés (Next.js / Nuxt) si vous préférez
Fonctionnalités
Même mot pour tout le monde (3 points)
Le mot est identique pour tous les joueurs, mais le score est propre à chaque joueur.
Gestion du score (4 points)
- 5 essais au départ
- 1000 points
- -1 point par seconde
- -50 points par erreur
Une seule partie par jour (2 points)
Affichage des lettres choisies (2 points)
Interface utilisateur soignée (2 points)
Dynamisation des pages (3 points)
- fin de partie
- affichage des scores
Top 100 scores avec pseudo (4 points)
Partage des scores (2 points)
Règles et entrées utilisateur (bonus)
- Validation des inputs (lettres uniquement, case insensitive…)
Bonus
- +1 point si stockage SQLite
Cookie Clicker
Objectif
Cookie Clicker est un jeu d’incrémentation où l’on clique sur un gros cookie pour accumuler des ressources, puis on achète des améliorations pour augmenter le gain par clic et des auto‑clickers qui produisent automatiquement. La progression de chaque utilisateur est persistée, et le cœur du gameplay consiste à optimiser le rendement via des coûts croissants et des gains cumulés.
Barème
| Élément évalué | Détails | Points |
|---|---|---|
| Cookie principal | Clics, comptage, affichage des stats | 3 |
| Système d’améliorations | Clic amélioré, auto‑clicker, cumul et niveaux | 3,5 |
| Système utilisateur | Comptes + persistance SQLite (progression) | 2,5 |
| Performance | Application fluide | 1 |
| Qualité du projet | PROJECT.md (1), TDD.md (1), RECETTAGE.md (0,5), GUIDELINES.md (0,5) | 3 |
| Tests et CI | CI (2), Unitaires (2,5), E2E (2,5) | 7 |
Total: 20 pts (hors bonus)
Consignes
Vous devez développer un jeu de type Cookie Clicker en JavaScript.
Stack recommandée
- Node.js (obligatoire)
- Express + EJS (recommandé)
- OU framework moderne (Next.js / Nuxt)
Fonctionnalités
🍪 Cookie principal (3 pts)
- Un gros cookie visible au centre de l’écran
- Le cookie doit être cliquable
- Chaque clic rapporte des cookies
- Une zone doit afficher les statistiques :
- nombre de cookies actuel, etc.
Système d’améliorations (3,5 pts)
Vous devez implémenter un système d’upgrades.
Types d’améliorations :
1. Amélioration de clic
- Chaque clic rapporte plus de cookies
- Chaque niveau ajoute +1 cookie par clic
- Effet cumulatif
2. Auto‑clicker
- Génère automatiquement des cookies
- Deux axes d’amélioration :
- nombre d’auto‑clickers
- vitesse (intervalle de clic)
3. Et plus si affinité
- À vous de voir ;)
Règles des améliorations
- Chaque amélioration a plusieurs niveaux
- Plus le niveau est élevé :
- plus le coût augmente
- plus le gain est important
- Les améliorations sont cumulables
Système utilisateur (2,5 pts)
- Mise en place d’un système de compte utilisateur
- Persistance des données avec SQLite
- Sauvegarde de la progression (cookies, améliorations…)
Performance (1 pt)
- L’application doit être fluide
- Aucun ralentissement visible
- Expérience utilisateur propre
Qualité du projet
Vous devez produire les fichiers suivants :
PROJECT.md(1 pt)TDD.md(1 pt)RECETTAGE.md(0.5 pt)GUIDELINES.md(0.5 pt)
Tests et CI
- Configuration d’une CI (2 pt)
- Tests unitaires (2,5 pts)
- Tests E2E automatiques (2,5 pts)
Les tests doivent couvrir : - la logique métier - les améliorations - les interactions utilisateur
Bonus
- Sound design (1 pt bonus)
- Interface utilisateur soignée (1 pt bonus)