# C3-A01 — Attrape le trésor

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-A01"
  title="Attrape l'étoile filante avec les coordonnées X et Y"
  cycle="3"
  level="CM1, CM2, 6e"
  duration="40 min"
  tool="Scratch"
  difficulty="Découverte"
  needsAdult={false}
  mission="Pilote ton vaisseau spatial dans toutes les directions pour attraper l'étoile dès qu'elle apparaît. Dès le contact, l'étoile se téléporte à un nouvel endroit aléatoire !"
/>

<PrintableVersion
  pdfColorUrl="/downloads/c3-a01-poursuis-le-tresor.pdf"
  pdfColorName="Fiche mission élève : Chasse aux étoiles (A4)"
/>

<StarterProject
  title="Projet Scratch de départ"
  type="scratch"
  downloadUrl="/projects/c3-a01-tresor-depart.sb3"
  filename="c3-a01-tresor-depart.sb3"
  size="0.5 KB"
  preparedItems={[
    "Lutin Vaisseau spatial 'Rocketship' centré en (0, -100)",
    "Lutin Étoile 'Star' positionné aléatoirement",
    "Arrière-plan spatial 'Stars'",
  ]}
/>

---

## 🪜 Les étapes de ton jeu spatial

<StudentStep
  number={1}
  title="Déplace le vaisseau avec les coordonnées relatives"
  check="Le vaisseau se déplace avec les 4 touches fléchées sans saccade."
>
  Sur le **Vaisseau**, utilise `ajouter à x` et `ajouter à y` : - **Flèche droite :** `ajouter (10)
  à x` - **Flèche gauche :** `ajouter (-10) à x` - **Flèche haut :** `ajouter (10) à y` - **Flèche
  bas :** `ajouter (-10) à y`
</StudentStep>

<StudentStep number={2} title="Détecte le contact avec l'étoile" check="L'étoile détecte quand le vaisseau la touche dans une boucle infinie.">
  Sur le lutin **Étoile**, surveille en continu :
  ```text
  quand le drapeau vert est cliqué
  répéter indéfiniment
      si <touche le [Rocketship v] ?> alors
          jouer le son [Collect v]
          aller à x: (nombre aléatoire entre -200 et 200) y: (nombre aléatoire entre -140 et 140)
  ```
</StudentStep>

---

## 🧪 Teste ton jeu

<TryIt expected="Déplace ton vaisseau vers l'étoile : dès que le nez du vaisseau touche l'étoile, un son retentit et l'étoile se téléporte immédiatement à un nouvel endroit imprévisible !">
  Attrape 5 étoiles d'affilée pour vérifier la fluidité des apparitions.
</TryIt>

---

## 💡 Indices progressifs

<Hint
  hints={[
    {
      level: 1,
      title: "Indice 1 — Où placer le test de contact ?",
      content: (
        <p>
          Le test de collision <code>si &lt;touche le Rocketship ?&gt;</code> doit être placé à
          l'intérieur d'un bloc <code>répéter indéfiniment</code> sur le lutin{" "}
          <strong>Étoile</strong>.
        </p>
      ),
    },
    {
      level: 2,
      title: "Indice 2 — Les limites de l'écran",
      content: (
        <p>
          Garde les coordonnées X entre -200 et +200 et Y entre -140 et +140 pour que l'étoile ne
          sorte jamais des bords de l'écran.
        </p>
      ),
    },
    {
      level: 3,
      title: "Indice 3 — La vitesse du vaisseau",
      content: (
        <p>
          Change la valeur <code>10</code> par <code>15</code> dans les blocs{" "}
          <code>ajouter à x/y</code> si tu veux un vaisseau plus rapide !
        </p>
      ),
    },
  ]}
/>

---

## 🔍 Solution et explications

<ActivitySolution
  title="Voir les scripts complets du vaisseau et de l'étoile"
  downloadUrl="/projects/c3-a01-tresor-corrige.sb3"
  filename="c3-a01-tresor-corrige.sb3"
  size="0.5 KB"
>

```text
// Sur le Vaisseau (Rocketship)
[quand la touche [flèche droite v] est pressée] → [ajouter (12) à x]
[quand la touche [flèche gauche v] est pressée] → [ajouter (-12) à x]
[quand la touche [flèche haut v] est pressée]   → [ajouter (12) à y]
[quand la touche [flèche bas v] est pressée]    → [ajouter (-12) à y]

// Sur l'Étoile (Star)
[quand le drapeau vert est cliqué]
aller à x: (nombre aléatoire entre -200 et 200) y: (nombre aléatoire entre -140 et 140)
montrer
répéter indéfiniment
    si <touche le [Rocketship v] ?> alors
        jouer le son [Collect v]
        aller à x: (nombre aléatoire entre -200 et 200) y: (nombre aléatoire entre -140 et 140)
```

</ActivitySolution>

---

## 🌟 Défi bonus

<BonusChallenge title="Défi bonus : Fais tourner l'étoile sur elle-même !">
  Ajoute un deuxième script sur l'étoile : `[quand drapeau cliqué] → [répéter indéfiniment [tourner
  droite de 5 degrés, attendre 0.05s]]`.
</BonusChallenge>

---

<CompletionCheck
  activityId="C3-A01"
  nextActivityUrl="/activites/cycle-3/c3-a02-compte-les-points"
  nextActivityTitle="C3-A02 — Compte les points"
  cycleUrl="/activites/cycle-3"
/>

<TeacherAccess
  lessonId="C3-S04"
  lessonTitle="Coordonnées et repérage dans le plan"
  lessonUrl="/cycle-3/c3-s04-coordonnees"
/>
