Skip to content

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

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

  • 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)