# C3-S12 — Projet final (Le jeu de collecte)

import { AssessmentGrid } from "../../src/components/AssessmentGrid";
import { Correction } from "../../src/components/Correction";
import { DownloadCard } from "../../src/components/DownloadCard";
import { ExerciseCard } from "../../src/components/ExerciseCard";
import { LearningObjectives } from "../../src/components/LearningObjectives";
import { LessonHeader } from "../../src/components/LessonHeader";
import { LessonNavigation } from "../../src/components/LessonNavigation";
import { TeacherTip } from "../../src/components/TeacherTip";

<LessonHeader
  id="C3-S12"
  title="Projet de référence Cycle 3 : Le jeu de collecte complet"
  cycle="3"
  levels="CM1, CM2, 6e"
  duration="2 à 3 séances de 50 minutes"
  tool="Scratch"
  grouping="Binômes de projet"
  expressPrep={{
    objective: "Assembler tous les modules dans un jeu de collecte de 30 secondes complet et jouable.",
    material: "Cahier des charges + grille de recette finale.",
    trap: "Éléments graphiques surchargés qui ralentissent l'exécution.",
    timing: "10' Spécifications • 30' Intégration finale • 10' Démonstrations",
  }}
  studentUrl="/activites/cycle-3/c3-a06-construis-un-jeu"
  studentId="C3-A06"
  pdfUrl="/downloads/c3-s12-cahier-projet-jeu-collecte-v1.pdf"
/>

<LearningObjectives
  objectives={[
    "Intégrer toutes les notions du Cycle 3 dans une application complète et jouable.",
    "Programmer un système complet : Contrôle clavier, apparitions aléatoires, collisions, gestion du score et du chronomètre, écrans de victoire et défaite.",
    "Présenter et soutenir son projet devant la classe.",
  ]}
/>

---

## 🎒 Cahier des charges du jeu de collecte

Un jeu de collecte complet doit comporter obligatoirement :

1. **Un joueur contrôlable :** Déplacement fluide au clavier ou à la souris avec costumes animés.
2. **Des objets bonus :** Apparaissant à des positions aléatoires (X, Y) et augmentant le score.
3. **Un danger / obstacle :** Ennemi qui patrouille ou fait perdre des points / vies.
4. **Un chronomètre ou compteur de temps :** Compte à rebours de 30 secondes.
5. **Deux conditions de fin :**
   - _Victoire :_ Score supérieur ou égal à 10 avant la fin du temps.
   - _Défaite :_ Temps écoulé ou 0 vies restantes.
6. **Un écran de fin et un bouton rejouer.**

---

## ⏱️ Déroulé de la séquence de projet

### Séance 1 : Conception papier et squelette de jeu (50 min)

- Remplissage du cahier des charges (personnages, décors, règles).
- Programmation du joueur et des mouvements d'objets.

### Séance 2 : Variables, chronomètre et fin de partie (50 min)

- Ajout des variables `Score` et `Temps`.
- Messages de diffusion `victoire` et `defaite` avec basculement des arrière-plans.

### Séance 3 : Recette de tests croisés et présentation (50 min)

- Test du jeu par un autre binôme avec la grille d'évaluation.
- Correction des bugs résiduels et démonstration.

<Correction title="Architecture complète du jeu de référence">

```text
// 1. Script du Joueur (Mouvement et collision)
[quand je reçois [debut_partie v]]
aller à x: (0) y: (-120)
montrer
répéter indéfiniment
    si <touche la [flèche droite v] pressée ?> alors
        ajouter (10) à x
    si <touche la [flèche gauche v] pressée ?> alors
        ajouter (-10) à x

// 2. Gestion du Temps et de la Victoire (Sur la Scène)
[quand le drapeau vert est cliqué]
mettre [Score v] à 0
mettre [Temps v] à 30
basculer sur l'arrière-plan [Jeu v]

répéter (30) fois
    attendre 1 secondes
    ajouter (-1) à [Temps v]
    si <(Score) > (9)> alors
        envoyer à tous [victoire v]
        stop [ce script v]

si <(Score) < (10)> alors
    envoyer à tous [defaite v]
```

</Correction>

<TeacherTip title="Gestion de l'hétérogénéité">
  Pour les élèves rapides, proposez des défis bonus : ajouter des pièces d'or rares (+3 points), des
  accélérateurs de vitesse ou un son d'ambiance en boucle.
</TeacherTip>

---

## 📊 Grille d'évaluation du projet de référence

<AssessmentGrid
  criteria={[
    {
      label: "Respect du cahier des charges fonctionnel",
      withHelp: "Le jeu manque d'une condition de fin ou de score",
      autonomous: "Les 6 points du cahier des charges sont présents et fonctionnels",
      transfer: "Ajoute des fonctionnalités bonus originales (niveaux, sons, pièges)",
    },
    {
      label: "Structure et propreté des scripts",
      withHelp: "Scripts redondants ou désorganisés",
      autonomous: "Scripts découpés logiquement avec messages nommés",
      transfer: "Optimise son code et commente les parties complexes",
    },
    {
      label: "Soutenance orale et démonstration",
      withHelp: "Démonstration hésitante sans explication algorithmique",
      autonomous: "Explique le fonctionnement du score et de la condition de victoire",
      transfer: "Analyse avec recul les points forts et axes d'amélioration du jeu",
    },
  ]}
/>

---

## 📥 Téléchargements

<DownloadCard
  title="Cahier de projet & Grille de recette du jeu de collecte (C3-S12)"
  filename="c3-s12-cahier-projet-jeu-collecte-v1.pdf"
  format="pdf"
  size="1.2 KB"
  version="1.0"
  license="CC-BY-SA 4.0"
  href="/downloads/c3-s12-cahier-projet-jeu-collecte-v1.pdf"
/>

<DownloadCard
  title="Projet Scratch finalisé et commenté (.sb3)"
  filename="c3-s12-jeu-collecte-final.sb3"
  format="sb3"
  size="0.5 KB"
  version="1.0"
  license="CC-BY-SA 4.0"
  href="/projects/c3-s12-jeu-collecte-final.sb3"
/>


<LessonNavigation
  prevUrl="/cycle-3/c3-s11-debogage-methodique"
  prevId="C3-S11"
  prevTitle="Débogage méthodique"
  cycleUrl="/cycle-3"
  cycleTitle="Vue d'ensemble du Cycle 3"
/>
