# C3-A05 — Crée un quiz avec score

import { ActivityHero } from "../../../src/components/ActivityHero";
import { ActivitySolution } from "../../../src/components/ActivitySolution";
import { BlockImage } from "../../../src/components/BlockImage";
import { BonusChallenge } from "../../../src/components/BonusChallenge";
import { CompletionCheck } from "../../../src/components/CompletionCheck";
import { Hint } from "../../../src/components/Hint";
import { PrintableVersion } from "../../../src/components/PrintableVersion";
import { StarterProject } from "../../../src/components/StarterProject";
import { StudentStep } from "../../../src/components/StudentStep";
import { TeacherAccess } from "../../../src/components/TeacherAccess";
import { TryIt } from "../../../src/components/TryIt";

<ActivityHero
  id="C3-A05"
  title="Construis un jeu de quiz arithmétique avec calcul de score"
  cycle="3"
  level="CM1, CM2, 6e"
  duration="50 min"
  tool="Scratch"
  difficulty="Défi"
  needsAdult={false}
  mission="Crée un robot professeur qui génère des calculs mentaux au hasard. Utilise une boucle pour poser 5 questions d'affilée et compte le score final du joueur !"
/>

<PrintableVersion
  pdfColorUrl="/downloads/c3-a05-cree-un-quiz.pdf"
  pdfColorName="Fiche mission élève : Le quiz mathématique automatique (A4)"
/>

<StarterProject
  title="Projet Scratch de départ"
  type="scratch"
  downloadUrl="/projects/c3-a05-quiz-score-depart.sb3"
  filename="c3-a05-quiz-score-depart.sb3"
  size="0.5 KB"
  preparedItems={[
    "Lutin Robot 'Giga' prêt à poser les questions",
    "Variables 'Score', 'NombreA' et 'NombreB' déjà créées",
    "Arrière-plan 'Chalkboard' (tableau noir d'école)",
  ]}
/>

---

## 🪜 Les étapes de ton quiz automatique

<StudentStep
  number={1}
  title="Initialise le score à 0 au début"
  check="Le score commence toujours à 0."
>
  Sous le drapeau vert :
  <BlockImage category="variables" text="mettre [Score v] à 0" />
</StudentStep>

<StudentStep
  number={2}
  title="Tire deux nombres au sort et pose le calcul"
  check="Le calcul est différent à chaque question."
>
  Dans une boucle `répéter 5 fois` : ```text mettre [NombreA v] à (nombre aléatoire entre 1 et 10)
  mettre [NombreB v] à (nombre aléatoire entre 1 et 10) demander (regrouper [Combien font ]
  (regrouper (NombreA) (regrouper [ + ] (NombreB)))) et attendre ```
</StudentStep>

<StudentStep number={3} title="Vérifie la réponse et incrémente le score" check="Si la réponse est juste, le score monte de +1.">
  ```text
  si <(réponse) = ((NombreA) + (NombreB))> alors
      ajouter (1) à [Score v]
      jouer le son [Win v]
      dire [Bravo ! +1 point] pendant 1.5 secondes
  sinon
      jouer le son [Oops v]
      dire (regrouper [Non ! La réponse était ] ((NombreA) + (NombreB))) pendant 2 secondes
  ```
</StudentStep>

---

## 🧪 Teste ton jeu

<TryIt expected="Le robot te pose 5 additions différentes. Si tu réponds juste, ton score monte. À la fin des 5 questions, il t'annonce ton score final (ex: 'Score final : 4 / 5') !">
  Essaie de faire un sans-faute (5 / 5) !
</TryIt>

---

## 💡 Indices progressifs

<Hint
  hints={[
    {
      level: 1,
      title: "Indice 1 — Fabriquer la phrase de question",
      content: (
        <p>
          Utilise plusieurs blocs verts <code>regrouper [texte1] [texte2]</code> emboîtés les uns
          dans les autres pour construire la question : « Combien font A + B ? ».
        </p>
      ),
    },
    {
      level: 2,
      title: "Indice 2 — Poser des multiplications",
      content: (
        <p>
          Remplace le bloc vert d'addition <code>(+)</code> par le bloc de multiplication{" "}
          <code>(*)</code> pour faire réviser les tables de multiplication !
        </p>
      ),
    },
    {
      level: 3,
      title: "Indice 3 — Afficher le bilan final",
      content: (
        <p>
          Après la boucle de 5 questions, ajoute :{" "}
          <code>
            dire (regrouper [Tu as obtenu ] (regrouper (Score) [ sur 5 points !])) pendant 3
            secondes
          </code>
          .
        </p>
      ),
    },
  ]}
/>

---

## 🔍 Solution et explications

<ActivitySolution
  title="Voir le script complet du générateur de quiz"
  downloadUrl="/projects/c3-a05-quiz-score-corrige.sb3"
  filename="c3-a05-quiz-score-corrige.sb3"
  size="0.5 KB"
>

```text
[quand le drapeau vert est cliqué]
mettre [Score v] à 0
dire [Prépare-toi pour le quiz de calcul mental !] pendant 2 secondes

répéter (5) fois
    mettre [NombreA v] à (nombre aléatoire entre 2 et 9)
    mettre [NombreB v] à (nombre aléatoire entre 2 et 9)
    demander (regrouper [Combien font ] (regrouper (NombreA) (regrouper [ x ] (NombreB)))) et attendre

    si <(réponse) = ((NombreA) * (NombreB))> alors
        ajouter (1) à [Score v]
        jouer le son [Cheer v]
        dire [Bravo ! C'est exact.] pendant 1.5 secondes
    sinon
        jouer le son [Oops v]
        dire (regrouper [Erreur ! Le résultat était ] ((NombreA) * (NombreB))) pendant 2 secondes

dire (regrouper [Quiz terminé ! Ton score final est de : ] (regrouper (Score) [/5])) pendant 4 secondes
```

</ActivitySolution>

---

## 🌟 Défi bonus

<BonusChallenge title="Défi bonus : Ajoute un chronomètre de 5 secondes par question !">
  Ajoute un compte à rebours : si le joueur met plus de 5 secondes à répondre, le robot passe à la
  question suivante !
</BonusChallenge>

---

<CompletionCheck
  activityId="C3-A05"
  nextActivityUrl="/activites/cycle-3/c3-a06-construis-un-jeu"
  nextActivityTitle="C3-A06 — Construis un jeu complet"
  cycleUrl="/activites/cycle-3"
/>

<TeacherAccess
  lessonId="C3-S07"
  lessonTitle="Questions et opérateurs"
  lessonUrl="/cycle-3/c3-s07-questions-et-operateurs"
/>
