diff --git a/CLAUDE.md b/CLAUDE.md index ff9c7e3..edd78c0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,6 +1,6 @@ # Les Aventuriers des mots -Jeu éducatif de français CE1–CE2 (7–9 ans), aventure 2D, hors ligne, Godot 4 / GDScript typé. Projet open source. +Jeu éducatif de français CE1 à CM2 (7–11 ans), aventure 2D, hors ligne, Godot 4 / GDScript typé. Projet open source. - Spécification de référence : `docs/specs/cahier-des-charges.md`. Elle fait foi. En cas de contradiction ou d'ambiguïté, poser la question au lieu de trancher seul. - Cycle de vie d'un exercice : `docs/specs/exercise-lifecycle.md`. diff --git a/README-EN.md b/README-EN.md index 2a6ad97..746a5c0 100644 --- a/README-EN.md +++ b/README-EN.md @@ -2,7 +2,7 @@ An educational French-language game for 7-9 year olds (French grades CE1-CE2): an offline 2D adventure with an explorable map, a guide character, and grammar, spelling, and dictation exercises. -Open source project, in development. Current status: version 0.7.0, playable offline on Linux and Windows — profiles, saves (with export and restore in the adult area), stars and an item collection, sound effects and music, settings (volumes, text size, animations), a progress dashboard for adults, three exercise types (multiple choice, sentence correction, dictation), CE1 and CE2 in three boards each (agreement, sounds and letters, present-tense verbs; homophones, verbs, letters and words), 57 missions; CM1 and CM2 are planned. All pedagogical content is still `draft` (awaiting validation) and dictation voices are placeholders (see `assets/CREDITS.md`; see `docs/specs/decisions.md` for scoping decisions and `docs/specs/cahier-des-charges.md` for the full specification, both in French — this is a French-curriculum product). +Open source project, in development. Current status: version 0.8.0, playable offline on Linux and Windows — profiles, saves (with export and restore in the adult area), stars and an item collection, sound effects and music, settings (volumes, text size, animations), a progress dashboard for adults, three exercise types (multiple choice, sentence correction, dictation), CE1, CE2, CM1 and CM2 in three boards each (homophones, verbs, word spelling), 111 missions. All pedagogical content is still `draft` (awaiting validation) and dictation voices are placeholders (see `assets/CREDITS.md`; see `docs/specs/decisions.md` for scoping decisions and `docs/specs/cahier-des-charges.md` for the full specification, both in French — this is a French-curriculum product). ## Tech stack diff --git a/README.md b/README.md index 145f688..bba45a8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Jeu éducatif de français pour les CE1-CE2 (7-9 ans) : une aventure 2D hors ligne, avec une carte à explorer, un personnage guide, et des exercices de grammaire, d'orthographe et de dictées. -Projet open source, en développement. Statut actuel : version 0.7.0, jouable hors ligne sur Linux et Windows — profils, sauvegardes (avec export et restauration dans l'espace adulte), étoiles et collection d'objets, sons et musique, réglages (volumes, taille du texte, animations), tableau de progrès pour l'adulte, trois types d'exercices (choix multiple, correction de phrase, dictée), CE1 et CE2 en trois tableaux chacun (accords, sons et lettres, verbes au présent ; homophones, verbes, lettres et mots), 57 missions ; CM1 et CM2 sont prévus. Contenu pédagogique entièrement en brouillon (`draft`, à valider) et voix des dictées provisoires (voir `assets/CREDITS.md` ; voir `docs/specs/decisions.md` pour les décisions de cadrage et `docs/specs/cahier-des-charges.md` pour la spécification complète). +Projet open source, en développement. Statut actuel : version 0.8.0, jouable hors ligne sur Linux et Windows — profils, sauvegardes (avec export et restauration dans l'espace adulte), étoiles et collection d'objets, sons et musique, réglages (volumes, taille du texte, animations), tableau de progrès pour l'adulte, trois types d'exercices (choix multiple, correction de phrase, dictée), CE1, CE2, CM1 et CM2 en trois tableaux chacun (homophones, verbes, orthographe des mots), 111 missions. Contenu pédagogique entièrement en brouillon (`draft`, à valider) et voix des dictées provisoires (voir `assets/CREDITS.md` ; voir `docs/specs/decisions.md` pour les décisions de cadrage et `docs/specs/cahier-des-charges.md` pour la spécification complète). ## Pile technique diff --git a/assets/audio/dictations/cm1_c_est_s_est_dictee_01.ogg b/assets/audio/dictations/cm1_c_est_s_est_dictee_01.ogg new file mode 100644 index 0000000..a4e3926 Binary files /dev/null and b/assets/audio/dictations/cm1_c_est_s_est_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm1_c_est_s_est_dictee_01.ogg.import b/assets/audio/dictations/cm1_c_est_s_est_dictee_01.ogg.import new file mode 100644 index 0000000..264b16d --- /dev/null +++ b/assets/audio/dictations/cm1_c_est_s_est_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://g3k0qrt8j2m1" +path="res://.godot/imported/cm1_c_est_s_est_dictee_01.ogg-b75caf02434ca1c8c2ceca6a7b85e253.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_c_est_s_est_dictee_01.ogg" +dest_files=["res://.godot/imported/cm1_c_est_s_est_dictee_01.ogg-b75caf02434ca1c8c2ceca6a7b85e253.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_c_est_s_est_dictee_02.ogg b/assets/audio/dictations/cm1_c_est_s_est_dictee_02.ogg new file mode 100644 index 0000000..7e9e24e Binary files /dev/null and b/assets/audio/dictations/cm1_c_est_s_est_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm1_c_est_s_est_dictee_02.ogg.import b/assets/audio/dictations/cm1_c_est_s_est_dictee_02.ogg.import new file mode 100644 index 0000000..8a293dc --- /dev/null +++ b/assets/audio/dictations/cm1_c_est_s_est_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bf6440kdyn2us" +path="res://.godot/imported/cm1_c_est_s_est_dictee_02.ogg-3b0ab756b6dc23a6114c061bc6520f6c.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_c_est_s_est_dictee_02.ogg" +dest_files=["res://.godot/imported/cm1_c_est_s_est_dictee_02.ogg-3b0ab756b6dc23a6114c061bc6520f6c.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_c_est_s_est_dictee_03.ogg b/assets/audio/dictations/cm1_c_est_s_est_dictee_03.ogg new file mode 100644 index 0000000..2671b67 Binary files /dev/null and b/assets/audio/dictations/cm1_c_est_s_est_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm1_c_est_s_est_dictee_03.ogg.import b/assets/audio/dictations/cm1_c_est_s_est_dictee_03.ogg.import new file mode 100644 index 0000000..fba3b89 --- /dev/null +++ b/assets/audio/dictations/cm1_c_est_s_est_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cfckdqdeqhsp1" +path="res://.godot/imported/cm1_c_est_s_est_dictee_03.ogg-24d3674975e7a4487510eac601b00777.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_c_est_s_est_dictee_03.ogg" +dest_files=["res://.godot/imported/cm1_c_est_s_est_dictee_03.ogg-24d3674975e7a4487510eac601b00777.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_ces_ses_dictee_01.ogg b/assets/audio/dictations/cm1_ces_ses_dictee_01.ogg new file mode 100644 index 0000000..973d218 Binary files /dev/null and b/assets/audio/dictations/cm1_ces_ses_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm1_ces_ses_dictee_01.ogg.import b/assets/audio/dictations/cm1_ces_ses_dictee_01.ogg.import new file mode 100644 index 0000000..cbad024 --- /dev/null +++ b/assets/audio/dictations/cm1_ces_ses_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c8vrys8nxsh13" +path="res://.godot/imported/cm1_ces_ses_dictee_01.ogg-ab3e5791538397c2cd70beac9f206311.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_ces_ses_dictee_01.ogg" +dest_files=["res://.godot/imported/cm1_ces_ses_dictee_01.ogg-ab3e5791538397c2cd70beac9f206311.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_ces_ses_dictee_02.ogg b/assets/audio/dictations/cm1_ces_ses_dictee_02.ogg new file mode 100644 index 0000000..a82b6d0 Binary files /dev/null and b/assets/audio/dictations/cm1_ces_ses_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm1_ces_ses_dictee_02.ogg.import b/assets/audio/dictations/cm1_ces_ses_dictee_02.ogg.import new file mode 100644 index 0000000..16af4c2 --- /dev/null +++ b/assets/audio/dictations/cm1_ces_ses_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bo8u028l7bcx5" +path="res://.godot/imported/cm1_ces_ses_dictee_02.ogg-be209f3bca1ecbd02dd120c69b6dc6ec.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_ces_ses_dictee_02.ogg" +dest_files=["res://.godot/imported/cm1_ces_ses_dictee_02.ogg-be209f3bca1ecbd02dd120c69b6dc6ec.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_ces_ses_dictee_03.ogg b/assets/audio/dictations/cm1_ces_ses_dictee_03.ogg new file mode 100644 index 0000000..7a143d1 Binary files /dev/null and b/assets/audio/dictations/cm1_ces_ses_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm1_ces_ses_dictee_03.ogg.import b/assets/audio/dictations/cm1_ces_ses_dictee_03.ogg.import new file mode 100644 index 0000000..63f5333 --- /dev/null +++ b/assets/audio/dictations/cm1_ces_ses_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dkrhlgkqwh8f6" +path="res://.godot/imported/cm1_ces_ses_dictee_03.ogg-a7c6b10d8f75e7c53b1f14f88cb1f07c.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_ces_ses_dictee_03.ogg" +dest_files=["res://.godot/imported/cm1_ces_ses_dictee_03.ogg-a7c6b10d8f75e7c53b1f14f88cb1f07c.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_imparfait_dictee_01.ogg b/assets/audio/dictations/cm1_imparfait_dictee_01.ogg new file mode 100644 index 0000000..bdcb2f2 Binary files /dev/null and b/assets/audio/dictations/cm1_imparfait_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm1_imparfait_dictee_01.ogg.import b/assets/audio/dictations/cm1_imparfait_dictee_01.ogg.import new file mode 100644 index 0000000..9686bc4 --- /dev/null +++ b/assets/audio/dictations/cm1_imparfait_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bjd8i8m8cw6ly" +path="res://.godot/imported/cm1_imparfait_dictee_01.ogg-230514d8f34885df15a2c86a15bd8103.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_imparfait_dictee_01.ogg" +dest_files=["res://.godot/imported/cm1_imparfait_dictee_01.ogg-230514d8f34885df15a2c86a15bd8103.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_imparfait_dictee_02.ogg b/assets/audio/dictations/cm1_imparfait_dictee_02.ogg new file mode 100644 index 0000000..fff32c8 Binary files /dev/null and b/assets/audio/dictations/cm1_imparfait_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm1_imparfait_dictee_02.ogg.import b/assets/audio/dictations/cm1_imparfait_dictee_02.ogg.import new file mode 100644 index 0000000..46a9c9b --- /dev/null +++ b/assets/audio/dictations/cm1_imparfait_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://uap06lsb6mie" +path="res://.godot/imported/cm1_imparfait_dictee_02.ogg-970e5edf35f98f390a84a3eb6a6a744a.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_imparfait_dictee_02.ogg" +dest_files=["res://.godot/imported/cm1_imparfait_dictee_02.ogg-970e5edf35f98f390a84a3eb6a6a744a.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_imparfait_dictee_03.ogg b/assets/audio/dictations/cm1_imparfait_dictee_03.ogg new file mode 100644 index 0000000..a4852d1 Binary files /dev/null and b/assets/audio/dictations/cm1_imparfait_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm1_imparfait_dictee_03.ogg.import b/assets/audio/dictations/cm1_imparfait_dictee_03.ogg.import new file mode 100644 index 0000000..e70faf0 --- /dev/null +++ b/assets/audio/dictations/cm1_imparfait_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cpmbfcuqn4uus" +path="res://.godot/imported/cm1_imparfait_dictee_03.ogg-0786957a505aeaafd6fb02ff9d84be7a.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_imparfait_dictee_03.ogg" +dest_files=["res://.godot/imported/cm1_imparfait_dictee_03.ogg-0786957a505aeaafd6fb02ff9d84be7a.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_la_la_l_a_dictee_01.ogg b/assets/audio/dictations/cm1_la_la_l_a_dictee_01.ogg new file mode 100644 index 0000000..cc9aa55 Binary files /dev/null and b/assets/audio/dictations/cm1_la_la_l_a_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm1_la_la_l_a_dictee_01.ogg.import b/assets/audio/dictations/cm1_la_la_l_a_dictee_01.ogg.import new file mode 100644 index 0000000..fff3eec --- /dev/null +++ b/assets/audio/dictations/cm1_la_la_l_a_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c8ddv8c6e7520" +path="res://.godot/imported/cm1_la_la_l_a_dictee_01.ogg-d9dc40e6365a236278ff3def1c148148.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_la_la_l_a_dictee_01.ogg" +dest_files=["res://.godot/imported/cm1_la_la_l_a_dictee_01.ogg-d9dc40e6365a236278ff3def1c148148.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_la_la_l_a_dictee_02.ogg b/assets/audio/dictations/cm1_la_la_l_a_dictee_02.ogg new file mode 100644 index 0000000..8fe0435 Binary files /dev/null and b/assets/audio/dictations/cm1_la_la_l_a_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm1_la_la_l_a_dictee_02.ogg.import b/assets/audio/dictations/cm1_la_la_l_a_dictee_02.ogg.import new file mode 100644 index 0000000..a314037 --- /dev/null +++ b/assets/audio/dictations/cm1_la_la_l_a_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://d11leokyqss66" +path="res://.godot/imported/cm1_la_la_l_a_dictee_02.ogg-9360542ffd8d13fe00468aac40c24cd8.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_la_la_l_a_dictee_02.ogg" +dest_files=["res://.godot/imported/cm1_la_la_l_a_dictee_02.ogg-9360542ffd8d13fe00468aac40c24cd8.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_la_la_l_a_dictee_03.ogg b/assets/audio/dictations/cm1_la_la_l_a_dictee_03.ogg new file mode 100644 index 0000000..b0b6a45 Binary files /dev/null and b/assets/audio/dictations/cm1_la_la_l_a_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm1_la_la_l_a_dictee_03.ogg.import b/assets/audio/dictations/cm1_la_la_l_a_dictee_03.ogg.import new file mode 100644 index 0000000..fab8dc5 --- /dev/null +++ b/assets/audio/dictations/cm1_la_la_l_a_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bbnleonqeufm8" +path="res://.godot/imported/cm1_la_la_l_a_dictee_03.ogg-fade309f1e654ca1d5afe1975cc3a42d.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_la_la_l_a_dictee_03.ogg" +dest_files=["res://.godot/imported/cm1_la_la_l_a_dictee_03.ogg-fade309f1e654ca1d5afe1975cc3a42d.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_leur_leurs_dictee_01.ogg b/assets/audio/dictations/cm1_leur_leurs_dictee_01.ogg new file mode 100644 index 0000000..96518f9 Binary files /dev/null and b/assets/audio/dictations/cm1_leur_leurs_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm1_leur_leurs_dictee_01.ogg.import b/assets/audio/dictations/cm1_leur_leurs_dictee_01.ogg.import new file mode 100644 index 0000000..f46e18f --- /dev/null +++ b/assets/audio/dictations/cm1_leur_leurs_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://r307ge8w1v0f" +path="res://.godot/imported/cm1_leur_leurs_dictee_01.ogg-3c11a39117923d9f2971c5f33bc4b387.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_leur_leurs_dictee_01.ogg" +dest_files=["res://.godot/imported/cm1_leur_leurs_dictee_01.ogg-3c11a39117923d9f2971c5f33bc4b387.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_leur_leurs_dictee_02.ogg b/assets/audio/dictations/cm1_leur_leurs_dictee_02.ogg new file mode 100644 index 0000000..a445e99 Binary files /dev/null and b/assets/audio/dictations/cm1_leur_leurs_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm1_leur_leurs_dictee_02.ogg.import b/assets/audio/dictations/cm1_leur_leurs_dictee_02.ogg.import new file mode 100644 index 0000000..51c4abe --- /dev/null +++ b/assets/audio/dictations/cm1_leur_leurs_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://doa1763xh8aya" +path="res://.godot/imported/cm1_leur_leurs_dictee_02.ogg-2aa5bf995e327704c9d0bd4bd580402c.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_leur_leurs_dictee_02.ogg" +dest_files=["res://.godot/imported/cm1_leur_leurs_dictee_02.ogg-2aa5bf995e327704c9d0bd4bd580402c.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_leur_leurs_dictee_03.ogg b/assets/audio/dictations/cm1_leur_leurs_dictee_03.ogg new file mode 100644 index 0000000..06d26c7 Binary files /dev/null and b/assets/audio/dictations/cm1_leur_leurs_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm1_leur_leurs_dictee_03.ogg.import b/assets/audio/dictations/cm1_leur_leurs_dictee_03.ogg.import new file mode 100644 index 0000000..5cafb68 --- /dev/null +++ b/assets/audio/dictations/cm1_leur_leurs_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b6fegby1hpq25" +path="res://.godot/imported/cm1_leur_leurs_dictee_03.ogg-8b44796f14659e6cd7b4b2b2460dd197.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_leur_leurs_dictee_03.ogg" +dest_files=["res://.godot/imported/cm1_leur_leurs_dictee_03.ogg-8b44796f14659e6cd7b4b2b2460dd197.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_ou_ou_dictee_01.ogg b/assets/audio/dictations/cm1_ou_ou_dictee_01.ogg new file mode 100644 index 0000000..652b223 Binary files /dev/null and b/assets/audio/dictations/cm1_ou_ou_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm1_ou_ou_dictee_01.ogg.import b/assets/audio/dictations/cm1_ou_ou_dictee_01.ogg.import new file mode 100644 index 0000000..75038c6 --- /dev/null +++ b/assets/audio/dictations/cm1_ou_ou_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://blu51cvvqe2rs" +path="res://.godot/imported/cm1_ou_ou_dictee_01.ogg-9107896d0faaaa8f9f0e0c2214d7bb13.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_ou_ou_dictee_01.ogg" +dest_files=["res://.godot/imported/cm1_ou_ou_dictee_01.ogg-9107896d0faaaa8f9f0e0c2214d7bb13.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_ou_ou_dictee_02.ogg b/assets/audio/dictations/cm1_ou_ou_dictee_02.ogg new file mode 100644 index 0000000..8f954bd Binary files /dev/null and b/assets/audio/dictations/cm1_ou_ou_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm1_ou_ou_dictee_02.ogg.import b/assets/audio/dictations/cm1_ou_ou_dictee_02.ogg.import new file mode 100644 index 0000000..08f6f82 --- /dev/null +++ b/assets/audio/dictations/cm1_ou_ou_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://clcv5ej6a5ndb" +path="res://.godot/imported/cm1_ou_ou_dictee_02.ogg-442ffdde4f0cf60dba02587207f8671e.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_ou_ou_dictee_02.ogg" +dest_files=["res://.godot/imported/cm1_ou_ou_dictee_02.ogg-442ffdde4f0cf60dba02587207f8671e.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_ou_ou_dictee_03.ogg b/assets/audio/dictations/cm1_ou_ou_dictee_03.ogg new file mode 100644 index 0000000..0383af4 Binary files /dev/null and b/assets/audio/dictations/cm1_ou_ou_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm1_ou_ou_dictee_03.ogg.import b/assets/audio/dictations/cm1_ou_ou_dictee_03.ogg.import new file mode 100644 index 0000000..0503645 --- /dev/null +++ b/assets/audio/dictations/cm1_ou_ou_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b883e1gqhd6as" +path="res://.godot/imported/cm1_ou_ou_dictee_03.ogg-3192a65c1712e930eef18e416708641a.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_ou_ou_dictee_03.ogg" +dest_files=["res://.godot/imported/cm1_ou_ou_dictee_03.ogg-3192a65c1712e930eef18e416708641a.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_participe_etre_dictee_01.ogg b/assets/audio/dictations/cm1_participe_etre_dictee_01.ogg new file mode 100644 index 0000000..7a528f9 Binary files /dev/null and b/assets/audio/dictations/cm1_participe_etre_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm1_participe_etre_dictee_01.ogg.import b/assets/audio/dictations/cm1_participe_etre_dictee_01.ogg.import new file mode 100644 index 0000000..7faeb10 --- /dev/null +++ b/assets/audio/dictations/cm1_participe_etre_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://ctxp8gtjew2fh" +path="res://.godot/imported/cm1_participe_etre_dictee_01.ogg-d04e42151a261b34e8520e0e4da4a01c.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_participe_etre_dictee_01.ogg" +dest_files=["res://.godot/imported/cm1_participe_etre_dictee_01.ogg-d04e42151a261b34e8520e0e4da4a01c.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_participe_etre_dictee_02.ogg b/assets/audio/dictations/cm1_participe_etre_dictee_02.ogg new file mode 100644 index 0000000..323ef49 Binary files /dev/null and b/assets/audio/dictations/cm1_participe_etre_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm1_participe_etre_dictee_02.ogg.import b/assets/audio/dictations/cm1_participe_etre_dictee_02.ogg.import new file mode 100644 index 0000000..f994598 --- /dev/null +++ b/assets/audio/dictations/cm1_participe_etre_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://2g3j36o2u38d" +path="res://.godot/imported/cm1_participe_etre_dictee_02.ogg-92b7a09a16697edc2917f395325fc02f.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_participe_etre_dictee_02.ogg" +dest_files=["res://.godot/imported/cm1_participe_etre_dictee_02.ogg-92b7a09a16697edc2917f395325fc02f.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_participe_etre_dictee_03.ogg b/assets/audio/dictations/cm1_participe_etre_dictee_03.ogg new file mode 100644 index 0000000..7dfbb18 Binary files /dev/null and b/assets/audio/dictations/cm1_participe_etre_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm1_participe_etre_dictee_03.ogg.import b/assets/audio/dictations/cm1_participe_etre_dictee_03.ogg.import new file mode 100644 index 0000000..ad4549b --- /dev/null +++ b/assets/audio/dictations/cm1_participe_etre_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://djpllf228vd32" +path="res://.godot/imported/cm1_participe_etre_dictee_03.ogg-654c38dcc3f631f934e84fd1808392d7.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_participe_etre_dictee_03.ogg" +dest_files=["res://.godot/imported/cm1_participe_etre_dictee_03.ogg-654c38dcc3f631f934e84fd1808392d7.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_participe_forme_dictee_01.ogg b/assets/audio/dictations/cm1_participe_forme_dictee_01.ogg new file mode 100644 index 0000000..da813c8 Binary files /dev/null and b/assets/audio/dictations/cm1_participe_forme_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm1_participe_forme_dictee_01.ogg.import b/assets/audio/dictations/cm1_participe_forme_dictee_01.ogg.import new file mode 100644 index 0000000..e14325e --- /dev/null +++ b/assets/audio/dictations/cm1_participe_forme_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dvd0sn2vyeq1e" +path="res://.godot/imported/cm1_participe_forme_dictee_01.ogg-8dfad010583368de1c2df37a31f8241d.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_participe_forme_dictee_01.ogg" +dest_files=["res://.godot/imported/cm1_participe_forme_dictee_01.ogg-8dfad010583368de1c2df37a31f8241d.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_participe_forme_dictee_02.ogg b/assets/audio/dictations/cm1_participe_forme_dictee_02.ogg new file mode 100644 index 0000000..68c0883 Binary files /dev/null and b/assets/audio/dictations/cm1_participe_forme_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm1_participe_forme_dictee_02.ogg.import b/assets/audio/dictations/cm1_participe_forme_dictee_02.ogg.import new file mode 100644 index 0000000..6e882f4 --- /dev/null +++ b/assets/audio/dictations/cm1_participe_forme_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dqwk7npvn7wne" +path="res://.godot/imported/cm1_participe_forme_dictee_02.ogg-25bb5929922ebd3efab69ffc9ec34340.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_participe_forme_dictee_02.ogg" +dest_files=["res://.godot/imported/cm1_participe_forme_dictee_02.ogg-25bb5929922ebd3efab69ffc9ec34340.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_participe_forme_dictee_03.ogg b/assets/audio/dictations/cm1_participe_forme_dictee_03.ogg new file mode 100644 index 0000000..c339475 Binary files /dev/null and b/assets/audio/dictations/cm1_participe_forme_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm1_participe_forme_dictee_03.ogg.import b/assets/audio/dictations/cm1_participe_forme_dictee_03.ogg.import new file mode 100644 index 0000000..851dd07 --- /dev/null +++ b/assets/audio/dictations/cm1_participe_forme_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bq1qwbnpdsxqm" +path="res://.godot/imported/cm1_participe_forme_dictee_03.ogg-9076675aabbf3acba20bcea0d79d1c61.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_participe_forme_dictee_03.ogg" +dest_files=["res://.godot/imported/cm1_participe_forme_dictee_03.ogg-9076675aabbf3acba20bcea0d79d1c61.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_pluriel_aux_dictee_01.ogg b/assets/audio/dictations/cm1_pluriel_aux_dictee_01.ogg new file mode 100644 index 0000000..5a6aeab Binary files /dev/null and b/assets/audio/dictations/cm1_pluriel_aux_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm1_pluriel_aux_dictee_01.ogg.import b/assets/audio/dictations/cm1_pluriel_aux_dictee_01.ogg.import new file mode 100644 index 0000000..1d0649a --- /dev/null +++ b/assets/audio/dictations/cm1_pluriel_aux_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://ba5p8wu5t8iaj" +path="res://.godot/imported/cm1_pluriel_aux_dictee_01.ogg-f4f87d328a16d05b4905db57b3e525c8.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_pluriel_aux_dictee_01.ogg" +dest_files=["res://.godot/imported/cm1_pluriel_aux_dictee_01.ogg-f4f87d328a16d05b4905db57b3e525c8.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_pluriel_aux_dictee_02.ogg b/assets/audio/dictations/cm1_pluriel_aux_dictee_02.ogg new file mode 100644 index 0000000..409ba59 Binary files /dev/null and b/assets/audio/dictations/cm1_pluriel_aux_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm1_pluriel_aux_dictee_02.ogg.import b/assets/audio/dictations/cm1_pluriel_aux_dictee_02.ogg.import new file mode 100644 index 0000000..a5ae8e4 --- /dev/null +++ b/assets/audio/dictations/cm1_pluriel_aux_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bgcjbl6xn335i" +path="res://.godot/imported/cm1_pluriel_aux_dictee_02.ogg-11223b3384975ed6568e89c0c3bb509c.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_pluriel_aux_dictee_02.ogg" +dest_files=["res://.godot/imported/cm1_pluriel_aux_dictee_02.ogg-11223b3384975ed6568e89c0c3bb509c.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm1_pluriel_aux_dictee_03.ogg b/assets/audio/dictations/cm1_pluriel_aux_dictee_03.ogg new file mode 100644 index 0000000..a95155c Binary files /dev/null and b/assets/audio/dictations/cm1_pluriel_aux_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm1_pluriel_aux_dictee_03.ogg.import b/assets/audio/dictations/cm1_pluriel_aux_dictee_03.ogg.import new file mode 100644 index 0000000..072b5aa --- /dev/null +++ b/assets/audio/dictations/cm1_pluriel_aux_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dlxi600krijjm" +path="res://.godot/imported/cm1_pluriel_aux_dictee_03.ogg-00c0b447f72405c24ef5eaee04f32898.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm1_pluriel_aux_dictee_03.ogg" +dest_files=["res://.godot/imported/cm1_pluriel_aux_dictee_03.ogg-00c0b447f72405c24ef5eaee04f32898.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_adverbes_dictee_01.ogg b/assets/audio/dictations/cm2_adverbes_dictee_01.ogg new file mode 100644 index 0000000..3f08464 Binary files /dev/null and b/assets/audio/dictations/cm2_adverbes_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm2_adverbes_dictee_01.ogg.import b/assets/audio/dictations/cm2_adverbes_dictee_01.ogg.import new file mode 100644 index 0000000..453815c --- /dev/null +++ b/assets/audio/dictations/cm2_adverbes_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c68snnw4jmnew" +path="res://.godot/imported/cm2_adverbes_dictee_01.ogg-4c03e0f04dd75f9aad2c66bafa7995b0.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_adverbes_dictee_01.ogg" +dest_files=["res://.godot/imported/cm2_adverbes_dictee_01.ogg-4c03e0f04dd75f9aad2c66bafa7995b0.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_adverbes_dictee_02.ogg b/assets/audio/dictations/cm2_adverbes_dictee_02.ogg new file mode 100644 index 0000000..23e9bc8 Binary files /dev/null and b/assets/audio/dictations/cm2_adverbes_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm2_adverbes_dictee_02.ogg.import b/assets/audio/dictations/cm2_adverbes_dictee_02.ogg.import new file mode 100644 index 0000000..f10f9c3 --- /dev/null +++ b/assets/audio/dictations/cm2_adverbes_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b5vvs3ft382cq" +path="res://.godot/imported/cm2_adverbes_dictee_02.ogg-34f3f0a9ca17ca3b2510efb493bf4335.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_adverbes_dictee_02.ogg" +dest_files=["res://.godot/imported/cm2_adverbes_dictee_02.ogg-34f3f0a9ca17ca3b2510efb493bf4335.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_adverbes_dictee_03.ogg b/assets/audio/dictations/cm2_adverbes_dictee_03.ogg new file mode 100644 index 0000000..afe87a8 Binary files /dev/null and b/assets/audio/dictations/cm2_adverbes_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm2_adverbes_dictee_03.ogg.import b/assets/audio/dictations/cm2_adverbes_dictee_03.ogg.import new file mode 100644 index 0000000..dcdbdd6 --- /dev/null +++ b/assets/audio/dictations/cm2_adverbes_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dkaqe8psycme4" +path="res://.godot/imported/cm2_adverbes_dictee_03.ogg-3cf1ecc16cf2041c5ff3c95d30c45de7.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_adverbes_dictee_03.ogg" +dest_files=["res://.godot/imported/cm2_adverbes_dictee_03.ogg-3cf1ecc16cf2041c5ff3c95d30c45de7.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_couleurs_dictee_01.ogg b/assets/audio/dictations/cm2_couleurs_dictee_01.ogg new file mode 100644 index 0000000..4ea7c1f Binary files /dev/null and b/assets/audio/dictations/cm2_couleurs_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm2_couleurs_dictee_01.ogg.import b/assets/audio/dictations/cm2_couleurs_dictee_01.ogg.import new file mode 100644 index 0000000..2dae034 --- /dev/null +++ b/assets/audio/dictations/cm2_couleurs_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://buhdtyutwrpxn" +path="res://.godot/imported/cm2_couleurs_dictee_01.ogg-75b2f07cc177cb96b9b381578b7f53f9.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_couleurs_dictee_01.ogg" +dest_files=["res://.godot/imported/cm2_couleurs_dictee_01.ogg-75b2f07cc177cb96b9b381578b7f53f9.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_couleurs_dictee_02.ogg b/assets/audio/dictations/cm2_couleurs_dictee_02.ogg new file mode 100644 index 0000000..bed2096 Binary files /dev/null and b/assets/audio/dictations/cm2_couleurs_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm2_couleurs_dictee_02.ogg.import b/assets/audio/dictations/cm2_couleurs_dictee_02.ogg.import new file mode 100644 index 0000000..a6b0199 --- /dev/null +++ b/assets/audio/dictations/cm2_couleurs_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bmle1dwm0jrrd" +path="res://.godot/imported/cm2_couleurs_dictee_02.ogg-a34d4408ce0421d48ad0a8bd463f2fdc.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_couleurs_dictee_02.ogg" +dest_files=["res://.godot/imported/cm2_couleurs_dictee_02.ogg-a34d4408ce0421d48ad0a8bd463f2fdc.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_couleurs_dictee_03.ogg b/assets/audio/dictations/cm2_couleurs_dictee_03.ogg new file mode 100644 index 0000000..93ea7f5 Binary files /dev/null and b/assets/audio/dictations/cm2_couleurs_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm2_couleurs_dictee_03.ogg.import b/assets/audio/dictations/cm2_couleurs_dictee_03.ogg.import new file mode 100644 index 0000000..20a4069 --- /dev/null +++ b/assets/audio/dictations/cm2_couleurs_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://d14h4jmcx7rg8" +path="res://.godot/imported/cm2_couleurs_dictee_03.ogg-a0dbe65208777176f272e67723c24287.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_couleurs_dictee_03.ogg" +dest_files=["res://.godot/imported/cm2_couleurs_dictee_03.ogg-a0dbe65208777176f272e67723c24287.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_futur_cond_dictee_01.ogg b/assets/audio/dictations/cm2_futur_cond_dictee_01.ogg new file mode 100644 index 0000000..a1e543b Binary files /dev/null and b/assets/audio/dictations/cm2_futur_cond_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm2_futur_cond_dictee_01.ogg.import b/assets/audio/dictations/cm2_futur_cond_dictee_01.ogg.import new file mode 100644 index 0000000..6e596a4 --- /dev/null +++ b/assets/audio/dictations/cm2_futur_cond_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bjvdv7qub55mr" +path="res://.godot/imported/cm2_futur_cond_dictee_01.ogg-b11b494f20203285a20ca27e0cc335d4.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_futur_cond_dictee_01.ogg" +dest_files=["res://.godot/imported/cm2_futur_cond_dictee_01.ogg-b11b494f20203285a20ca27e0cc335d4.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_futur_cond_dictee_02.ogg b/assets/audio/dictations/cm2_futur_cond_dictee_02.ogg new file mode 100644 index 0000000..6e6ca66 Binary files /dev/null and b/assets/audio/dictations/cm2_futur_cond_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm2_futur_cond_dictee_02.ogg.import b/assets/audio/dictations/cm2_futur_cond_dictee_02.ogg.import new file mode 100644 index 0000000..442af45 --- /dev/null +++ b/assets/audio/dictations/cm2_futur_cond_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cxyph3alxxdn3" +path="res://.godot/imported/cm2_futur_cond_dictee_02.ogg-addf414cba6e9c0c7761c15ffeb29667.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_futur_cond_dictee_02.ogg" +dest_files=["res://.godot/imported/cm2_futur_cond_dictee_02.ogg-addf414cba6e9c0c7761c15ffeb29667.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_futur_cond_dictee_03.ogg b/assets/audio/dictations/cm2_futur_cond_dictee_03.ogg new file mode 100644 index 0000000..d7b33b4 Binary files /dev/null and b/assets/audio/dictations/cm2_futur_cond_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm2_futur_cond_dictee_03.ogg.import b/assets/audio/dictations/cm2_futur_cond_dictee_03.ogg.import new file mode 100644 index 0000000..144e3ed --- /dev/null +++ b/assets/audio/dictations/cm2_futur_cond_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c8ptjdykr85rh" +path="res://.godot/imported/cm2_futur_cond_dictee_03.ogg-13ae31ed4d9318d37bf75ca723eae49e.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_futur_cond_dictee_03.ogg" +dest_files=["res://.godot/imported/cm2_futur_cond_dictee_03.ogg-13ae31ed4d9318d37bf75ca723eae49e.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_participe_cod_dictee_01.ogg b/assets/audio/dictations/cm2_participe_cod_dictee_01.ogg new file mode 100644 index 0000000..ae73262 Binary files /dev/null and b/assets/audio/dictations/cm2_participe_cod_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm2_participe_cod_dictee_01.ogg.import b/assets/audio/dictations/cm2_participe_cod_dictee_01.ogg.import new file mode 100644 index 0000000..795f331 --- /dev/null +++ b/assets/audio/dictations/cm2_participe_cod_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://pdr07kdf5air" +path="res://.godot/imported/cm2_participe_cod_dictee_01.ogg-dc55032a54a116bcbcfac44d628e34e7.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_participe_cod_dictee_01.ogg" +dest_files=["res://.godot/imported/cm2_participe_cod_dictee_01.ogg-dc55032a54a116bcbcfac44d628e34e7.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_participe_cod_dictee_02.ogg b/assets/audio/dictations/cm2_participe_cod_dictee_02.ogg new file mode 100644 index 0000000..c46802a Binary files /dev/null and b/assets/audio/dictations/cm2_participe_cod_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm2_participe_cod_dictee_02.ogg.import b/assets/audio/dictations/cm2_participe_cod_dictee_02.ogg.import new file mode 100644 index 0000000..e9429dd --- /dev/null +++ b/assets/audio/dictations/cm2_participe_cod_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bborwqlab1r8g" +path="res://.godot/imported/cm2_participe_cod_dictee_02.ogg-99fde64a6baf3df2661579405b52d96b.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_participe_cod_dictee_02.ogg" +dest_files=["res://.godot/imported/cm2_participe_cod_dictee_02.ogg-99fde64a6baf3df2661579405b52d96b.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_participe_cod_dictee_03.ogg b/assets/audio/dictations/cm2_participe_cod_dictee_03.ogg new file mode 100644 index 0000000..9435a7d Binary files /dev/null and b/assets/audio/dictations/cm2_participe_cod_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm2_participe_cod_dictee_03.ogg.import b/assets/audio/dictations/cm2_participe_cod_dictee_03.ogg.import new file mode 100644 index 0000000..a70800c --- /dev/null +++ b/assets/audio/dictations/cm2_participe_cod_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bj76ytf7r5nsp" +path="res://.godot/imported/cm2_participe_cod_dictee_03.ogg-38aba0650f965146f2ad948d608c5d35.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_participe_cod_dictee_03.ogg" +dest_files=["res://.godot/imported/cm2_participe_cod_dictee_03.ogg-38aba0650f965146f2ad948d608c5d35.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_passe_simple_dictee_01.ogg b/assets/audio/dictations/cm2_passe_simple_dictee_01.ogg new file mode 100644 index 0000000..46377e9 Binary files /dev/null and b/assets/audio/dictations/cm2_passe_simple_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm2_passe_simple_dictee_01.ogg.import b/assets/audio/dictations/cm2_passe_simple_dictee_01.ogg.import new file mode 100644 index 0000000..58a36cc --- /dev/null +++ b/assets/audio/dictations/cm2_passe_simple_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dxjslegrx7qbs" +path="res://.godot/imported/cm2_passe_simple_dictee_01.ogg-106bd022de8d7495762d554416fd2b05.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_passe_simple_dictee_01.ogg" +dest_files=["res://.godot/imported/cm2_passe_simple_dictee_01.ogg-106bd022de8d7495762d554416fd2b05.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_passe_simple_dictee_02.ogg b/assets/audio/dictations/cm2_passe_simple_dictee_02.ogg new file mode 100644 index 0000000..98eae30 Binary files /dev/null and b/assets/audio/dictations/cm2_passe_simple_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm2_passe_simple_dictee_02.ogg.import b/assets/audio/dictations/cm2_passe_simple_dictee_02.ogg.import new file mode 100644 index 0000000..2819680 --- /dev/null +++ b/assets/audio/dictations/cm2_passe_simple_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://crb841yf5fvll" +path="res://.godot/imported/cm2_passe_simple_dictee_02.ogg-fbff62aed63ee5b1b2a1e6acc7c64c4a.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_passe_simple_dictee_02.ogg" +dest_files=["res://.godot/imported/cm2_passe_simple_dictee_02.ogg-fbff62aed63ee5b1b2a1e6acc7c64c4a.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_passe_simple_dictee_03.ogg b/assets/audio/dictations/cm2_passe_simple_dictee_03.ogg new file mode 100644 index 0000000..cb0b1ee Binary files /dev/null and b/assets/audio/dictations/cm2_passe_simple_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm2_passe_simple_dictee_03.ogg.import b/assets/audio/dictations/cm2_passe_simple_dictee_03.ogg.import new file mode 100644 index 0000000..1cbb16d --- /dev/null +++ b/assets/audio/dictations/cm2_passe_simple_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cnxi3hakrq6xy" +path="res://.godot/imported/cm2_passe_simple_dictee_03.ogg-464d672719a4858243b960efd491e068.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_passe_simple_dictee_03.ogg" +dest_files=["res://.godot/imported/cm2_passe_simple_dictee_03.ogg-464d672719a4858243b960efd491e068.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_plutot_dictee_01.ogg b/assets/audio/dictations/cm2_plutot_dictee_01.ogg new file mode 100644 index 0000000..8363140 Binary files /dev/null and b/assets/audio/dictations/cm2_plutot_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm2_plutot_dictee_01.ogg.import b/assets/audio/dictations/cm2_plutot_dictee_01.ogg.import new file mode 100644 index 0000000..576621d --- /dev/null +++ b/assets/audio/dictations/cm2_plutot_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://lo2cjiuxaeo7" +path="res://.godot/imported/cm2_plutot_dictee_01.ogg-cdbcf7e6fa98be4803fdce01942e4a48.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_plutot_dictee_01.ogg" +dest_files=["res://.godot/imported/cm2_plutot_dictee_01.ogg-cdbcf7e6fa98be4803fdce01942e4a48.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_plutot_dictee_02.ogg b/assets/audio/dictations/cm2_plutot_dictee_02.ogg new file mode 100644 index 0000000..6a0ec01 Binary files /dev/null and b/assets/audio/dictations/cm2_plutot_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm2_plutot_dictee_02.ogg.import b/assets/audio/dictations/cm2_plutot_dictee_02.ogg.import new file mode 100644 index 0000000..b525ea4 --- /dev/null +++ b/assets/audio/dictations/cm2_plutot_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://d2wui5ucptthh" +path="res://.godot/imported/cm2_plutot_dictee_02.ogg-87161baba5af766b5314a072e6d91917.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_plutot_dictee_02.ogg" +dest_files=["res://.godot/imported/cm2_plutot_dictee_02.ogg-87161baba5af766b5314a072e6d91917.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_plutot_dictee_03.ogg b/assets/audio/dictations/cm2_plutot_dictee_03.ogg new file mode 100644 index 0000000..ab64598 Binary files /dev/null and b/assets/audio/dictations/cm2_plutot_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm2_plutot_dictee_03.ogg.import b/assets/audio/dictations/cm2_plutot_dictee_03.ogg.import new file mode 100644 index 0000000..21652c4 --- /dev/null +++ b/assets/audio/dictations/cm2_plutot_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://disyj3row2r5f" +path="res://.godot/imported/cm2_plutot_dictee_03.ogg-48e4989fbd55706216bd0d4fe8515009.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_plutot_dictee_03.ogg" +dest_files=["res://.godot/imported/cm2_plutot_dictee_03.ogg-48e4989fbd55706216bd0d4fe8515009.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_quand_quant_dictee_01.ogg b/assets/audio/dictations/cm2_quand_quant_dictee_01.ogg new file mode 100644 index 0000000..1ce5f64 Binary files /dev/null and b/assets/audio/dictations/cm2_quand_quant_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm2_quand_quant_dictee_01.ogg.import b/assets/audio/dictations/cm2_quand_quant_dictee_01.ogg.import new file mode 100644 index 0000000..d68720b --- /dev/null +++ b/assets/audio/dictations/cm2_quand_quant_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://04s2lrg735bq" +path="res://.godot/imported/cm2_quand_quant_dictee_01.ogg-cd16b459ad014b9870604536d1cca4b6.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_quand_quant_dictee_01.ogg" +dest_files=["res://.godot/imported/cm2_quand_quant_dictee_01.ogg-cd16b459ad014b9870604536d1cca4b6.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_quand_quant_dictee_02.ogg b/assets/audio/dictations/cm2_quand_quant_dictee_02.ogg new file mode 100644 index 0000000..b64b86c Binary files /dev/null and b/assets/audio/dictations/cm2_quand_quant_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm2_quand_quant_dictee_02.ogg.import b/assets/audio/dictations/cm2_quand_quant_dictee_02.ogg.import new file mode 100644 index 0000000..38525a9 --- /dev/null +++ b/assets/audio/dictations/cm2_quand_quant_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b5kob2gcrtcy" +path="res://.godot/imported/cm2_quand_quant_dictee_02.ogg-d92e5cc200645fed5b289725ac843051.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_quand_quant_dictee_02.ogg" +dest_files=["res://.godot/imported/cm2_quand_quant_dictee_02.ogg-d92e5cc200645fed5b289725ac843051.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_quand_quant_dictee_03.ogg b/assets/audio/dictations/cm2_quand_quant_dictee_03.ogg new file mode 100644 index 0000000..7c159a7 Binary files /dev/null and b/assets/audio/dictations/cm2_quand_quant_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm2_quand_quant_dictee_03.ogg.import b/assets/audio/dictations/cm2_quand_quant_dictee_03.ogg.import new file mode 100644 index 0000000..00603b1 --- /dev/null +++ b/assets/audio/dictations/cm2_quand_quant_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://dvdu1j8h64x52" +path="res://.godot/imported/cm2_quand_quant_dictee_03.ogg-8c0a1cad71c87120d32550d0c4320355.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_quand_quant_dictee_03.ogg" +dest_files=["res://.godot/imported/cm2_quand_quant_dictee_03.ogg-8c0a1cad71c87120d32550d0c4320355.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_quel_qu_elle_dictee_01.ogg b/assets/audio/dictations/cm2_quel_qu_elle_dictee_01.ogg new file mode 100644 index 0000000..53d6f5d Binary files /dev/null and b/assets/audio/dictations/cm2_quel_qu_elle_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm2_quel_qu_elle_dictee_01.ogg.import b/assets/audio/dictations/cm2_quel_qu_elle_dictee_01.ogg.import new file mode 100644 index 0000000..1e4d588 --- /dev/null +++ b/assets/audio/dictations/cm2_quel_qu_elle_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://0138mcgr3u4x" +path="res://.godot/imported/cm2_quel_qu_elle_dictee_01.ogg-26b1c51504e9818ee7825bc878d1e992.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_quel_qu_elle_dictee_01.ogg" +dest_files=["res://.godot/imported/cm2_quel_qu_elle_dictee_01.ogg-26b1c51504e9818ee7825bc878d1e992.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_quel_qu_elle_dictee_02.ogg b/assets/audio/dictations/cm2_quel_qu_elle_dictee_02.ogg new file mode 100644 index 0000000..5db67fb Binary files /dev/null and b/assets/audio/dictations/cm2_quel_qu_elle_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm2_quel_qu_elle_dictee_02.ogg.import b/assets/audio/dictations/cm2_quel_qu_elle_dictee_02.ogg.import new file mode 100644 index 0000000..98544de --- /dev/null +++ b/assets/audio/dictations/cm2_quel_qu_elle_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bj7uk2i1t8xm0" +path="res://.godot/imported/cm2_quel_qu_elle_dictee_02.ogg-07776fa8ee662e455f8f249a88d1a96a.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_quel_qu_elle_dictee_02.ogg" +dest_files=["res://.godot/imported/cm2_quel_qu_elle_dictee_02.ogg-07776fa8ee662e455f8f249a88d1a96a.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_quel_qu_elle_dictee_03.ogg b/assets/audio/dictations/cm2_quel_qu_elle_dictee_03.ogg new file mode 100644 index 0000000..dd52f24 Binary files /dev/null and b/assets/audio/dictations/cm2_quel_qu_elle_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm2_quel_qu_elle_dictee_03.ogg.import b/assets/audio/dictations/cm2_quel_qu_elle_dictee_03.ogg.import new file mode 100644 index 0000000..7107715 --- /dev/null +++ b/assets/audio/dictations/cm2_quel_qu_elle_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cp81c6lk8inv6" +path="res://.godot/imported/cm2_quel_qu_elle_dictee_03.ogg-40265dcc6ad1e72152c083726b5152eb.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_quel_qu_elle_dictee_03.ogg" +dest_files=["res://.godot/imported/cm2_quel_qu_elle_dictee_03.ogg-40265dcc6ad1e72152c083726b5152eb.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_tion_sion_dictee_01.ogg b/assets/audio/dictations/cm2_tion_sion_dictee_01.ogg new file mode 100644 index 0000000..2e23783 Binary files /dev/null and b/assets/audio/dictations/cm2_tion_sion_dictee_01.ogg differ diff --git a/assets/audio/dictations/cm2_tion_sion_dictee_01.ogg.import b/assets/audio/dictations/cm2_tion_sion_dictee_01.ogg.import new file mode 100644 index 0000000..29e5cbd --- /dev/null +++ b/assets/audio/dictations/cm2_tion_sion_dictee_01.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cvy17omgdxgdj" +path="res://.godot/imported/cm2_tion_sion_dictee_01.ogg-4f73ddd2ee06073a93c61e165e479556.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_tion_sion_dictee_01.ogg" +dest_files=["res://.godot/imported/cm2_tion_sion_dictee_01.ogg-4f73ddd2ee06073a93c61e165e479556.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_tion_sion_dictee_02.ogg b/assets/audio/dictations/cm2_tion_sion_dictee_02.ogg new file mode 100644 index 0000000..96687c5 Binary files /dev/null and b/assets/audio/dictations/cm2_tion_sion_dictee_02.ogg differ diff --git a/assets/audio/dictations/cm2_tion_sion_dictee_02.ogg.import b/assets/audio/dictations/cm2_tion_sion_dictee_02.ogg.import new file mode 100644 index 0000000..92f7fc0 --- /dev/null +++ b/assets/audio/dictations/cm2_tion_sion_dictee_02.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b5is8gm1myw6v" +path="res://.godot/imported/cm2_tion_sion_dictee_02.ogg-8f76e25bb4887de9dd9c2429b06fa582.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_tion_sion_dictee_02.ogg" +dest_files=["res://.godot/imported/cm2_tion_sion_dictee_02.ogg-8f76e25bb4887de9dd9c2429b06fa582.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/audio/dictations/cm2_tion_sion_dictee_03.ogg b/assets/audio/dictations/cm2_tion_sion_dictee_03.ogg new file mode 100644 index 0000000..0f09c32 Binary files /dev/null and b/assets/audio/dictations/cm2_tion_sion_dictee_03.ogg differ diff --git a/assets/audio/dictations/cm2_tion_sion_dictee_03.ogg.import b/assets/audio/dictations/cm2_tion_sion_dictee_03.ogg.import new file mode 100644 index 0000000..bb1645c --- /dev/null +++ b/assets/audio/dictations/cm2_tion_sion_dictee_03.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://b5x2s5qwpxkli" +path="res://.godot/imported/cm2_tion_sion_dictee_03.ogg-a7a4fd3a073e32abf6ce39305e3086b7.oggvorbisstr" + +[deps] + +source_file="res://assets/audio/dictations/cm2_tion_sion_dictee_03.ogg" +dest_files=["res://.godot/imported/cm2_tion_sion_dictee_03.ogg-a7a4fd3a073e32abf6ce39305e3086b7.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/environments/castle_backdrop.svg b/assets/environments/castle_backdrop.svg new file mode 100644 index 0000000..a053a9e --- /dev/null +++ b/assets/environments/castle_backdrop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/environments/castle_backdrop.svg.import b/assets/environments/castle_backdrop.svg.import new file mode 100644 index 0000000..b0ffdf2 --- /dev/null +++ b/assets/environments/castle_backdrop.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://do7jbo1q868v5" +path="res://.godot/imported/castle_backdrop.svg-6370bf5475bc0af705b5afc4de9592b0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environments/castle_backdrop.svg" +dest_files=["res://.godot/imported/castle_backdrop.svg-6370bf5475bc0af705b5afc4de9592b0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/environments/jungle_backdrop.svg b/assets/environments/jungle_backdrop.svg new file mode 100644 index 0000000..e45229d --- /dev/null +++ b/assets/environments/jungle_backdrop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/environments/jungle_backdrop.svg.import b/assets/environments/jungle_backdrop.svg.import new file mode 100644 index 0000000..c3d6358 --- /dev/null +++ b/assets/environments/jungle_backdrop.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://nge4okrdsa2y" +path="res://.godot/imported/jungle_backdrop.svg-5c35e665b8afebdb8495150498a52935.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environments/jungle_backdrop.svg" +dest_files=["res://.godot/imported/jungle_backdrop.svg-5c35e665b8afebdb8495150498a52935.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/environments/library_backdrop.svg b/assets/environments/library_backdrop.svg new file mode 100644 index 0000000..9ef331d --- /dev/null +++ b/assets/environments/library_backdrop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/environments/library_backdrop.svg.import b/assets/environments/library_backdrop.svg.import new file mode 100644 index 0000000..e4f43f8 --- /dev/null +++ b/assets/environments/library_backdrop.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://batp5jq4u07eo" +path="res://.godot/imported/library_backdrop.svg-92325ebcba40d5a709dfd067d23383ca.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environments/library_backdrop.svg" +dest_files=["res://.godot/imported/library_backdrop.svg-92325ebcba40d5a709dfd067d23383ca.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/environments/space_backdrop.svg b/assets/environments/space_backdrop.svg new file mode 100644 index 0000000..74cc891 --- /dev/null +++ b/assets/environments/space_backdrop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/environments/space_backdrop.svg.import b/assets/environments/space_backdrop.svg.import new file mode 100644 index 0000000..b7e4bb7 --- /dev/null +++ b/assets/environments/space_backdrop.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbk0ir0hi5p7b" +path="res://.godot/imported/space_backdrop.svg-0a7dc57bc3acb84f62448dc8ffa07dda.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environments/space_backdrop.svg" +dest_files=["res://.godot/imported/space_backdrop.svg-0a7dc57bc3acb84f62448dc8ffa07dda.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/environments/village_backdrop.svg b/assets/environments/village_backdrop.svg new file mode 100644 index 0000000..65332c2 --- /dev/null +++ b/assets/environments/village_backdrop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/environments/village_backdrop.svg.import b/assets/environments/village_backdrop.svg.import new file mode 100644 index 0000000..bea34d4 --- /dev/null +++ b/assets/environments/village_backdrop.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bedkq5ifj2j17" +path="res://.godot/imported/village_backdrop.svg-eea9067b6ab1c9dc030d923033534cdb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environments/village_backdrop.svg" +dest_files=["res://.godot/imported/village_backdrop.svg-eea9067b6ab1c9dc030d923033534cdb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/assets/environments/volcano_backdrop.svg b/assets/environments/volcano_backdrop.svg new file mode 100644 index 0000000..3bd47f8 --- /dev/null +++ b/assets/environments/volcano_backdrop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/environments/volcano_backdrop.svg.import b/assets/environments/volcano_backdrop.svg.import new file mode 100644 index 0000000..11acd7d --- /dev/null +++ b/assets/environments/volcano_backdrop.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfqga7qwubnrb" +path="res://.godot/imported/volcano_backdrop.svg-7d84953836ae3a8c66e514d4ed8545c0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/environments/volcano_backdrop.svg" +dest_files=["res://.godot/imported/volcano_backdrop.svg-7d84953836ae3a8c66e514d4ed8545c0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/autoload/game_manager.gd b/autoload/game_manager.gd index e9d9363..124f484 100644 --- a/autoload/game_manager.gd +++ b/autoload/game_manager.gd @@ -30,6 +30,19 @@ var settings_return_scene: String = SCENE_WORLD_MAP ## Dernier tableau consulte sur la carte : on y revient apres une mission. var map_region_id: String = "" +## Appelee a la sortie du jeu ; remplacable dans les tests (qui ne doivent pas +## arreter l'arbre de scenes). +var quit_hook: Callable = Callable() + + +## Quitte le jeu apres avoir sauvegarde le profil courant. +func quit_game() -> void: + ProgressManager.save_now() + if quit_hook.is_valid(): + quit_hook.call() + else: + get_tree().quit() + func goto(scene_path: String) -> void: # Differe le changement de scene : l'appeler depuis le _ready() de la diff --git a/data/curriculum/cm1_homophones.json b/data/curriculum/cm1_homophones.json new file mode 100644 index 0000000..90c8010 --- /dev/null +++ b/data/curriculum/cm1_homophones.json @@ -0,0 +1,15 @@ +{ + "level": "CM1", + "region_id": "chateau_des_homophones", + "chapter_id": "homophones_cm1", + "title": "Les homophones", + "region_title": "Le château des homophones", + "order": 1, + "backdrop": "castle", + "rule_ids": [ + "regle_leur_leurs", + "regle_ces_ses", + "regle_c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/curriculum/cm1_orthographe.json b/data/curriculum/cm1_orthographe.json new file mode 100644 index 0000000..44e9885 --- /dev/null +++ b/data/curriculum/cm1_orthographe.json @@ -0,0 +1,15 @@ +{ + "level": "CM1", + "region_id": "jungle_des_mots", + "chapter_id": "orthographe_cm1", + "title": "L'orthographe des mots", + "region_title": "La jungle des mots", + "order": 3, + "backdrop": "jungle", + "rule_ids": [ + "regle_pluriel_aux_eaux", + "regle_ou_ou_accent", + "regle_la_la_accent_l_a" + ], + "review_status": "draft" +} diff --git a/data/curriculum/cm1_verbes.json b/data/curriculum/cm1_verbes.json new file mode 100644 index 0000000..c97af52 --- /dev/null +++ b/data/curriculum/cm1_verbes.json @@ -0,0 +1,15 @@ +{ + "level": "CM1", + "region_id": "village_des_verbes", + "chapter_id": "verbes_cm1", + "title": "Les verbes : temps du passé", + "region_title": "Le village des verbes", + "order": 2, + "backdrop": "village", + "rule_ids": [ + "regle_imparfait", + "regle_participe_passe_forme", + "regle_accord_participe_etre" + ], + "review_status": "draft" +} diff --git a/data/curriculum/cm2_homophones.json b/data/curriculum/cm2_homophones.json new file mode 100644 index 0000000..f612f7f --- /dev/null +++ b/data/curriculum/cm2_homophones.json @@ -0,0 +1,15 @@ +{ + "level": "CM2", + "region_id": "station_des_homophones", + "chapter_id": "homophones_cm2", + "title": "Les homophones", + "region_title": "La station des homophones", + "order": 1, + "backdrop": "space", + "rule_ids": [ + "regle_quel_qu_elle", + "regle_quand_quant_qu_en", + "regle_plutot_plus_tot" + ], + "review_status": "draft" +} diff --git a/data/curriculum/cm2_orthographe.json b/data/curriculum/cm2_orthographe.json new file mode 100644 index 0000000..357c4fd --- /dev/null +++ b/data/curriculum/cm2_orthographe.json @@ -0,0 +1,15 @@ +{ + "level": "CM2", + "region_id": "bibliotheque_des_mots", + "chapter_id": "orthographe_cm2", + "title": "L'orthographe des mots", + "region_title": "La bibliothèque des mots", + "order": 3, + "backdrop": "library", + "rule_ids": [ + "regle_adverbes_ment", + "regle_tion_sion_ssion", + "regle_adjectifs_couleur" + ], + "review_status": "draft" +} diff --git a/data/curriculum/cm2_verbes.json b/data/curriculum/cm2_verbes.json new file mode 100644 index 0000000..00e6ed9 --- /dev/null +++ b/data/curriculum/cm2_verbes.json @@ -0,0 +1,15 @@ +{ + "level": "CM2", + "region_id": "volcan_des_verbes", + "chapter_id": "verbes_cm2", + "title": "Les verbes : temps et accords", + "region_title": "Le volcan des verbes", + "order": 2, + "backdrop": "volcano", + "rule_ids": [ + "regle_futur_conditionnel", + "regle_passe_simple", + "regle_participe_cod_avant" + ], + "review_status": "draft" +} diff --git a/data/dictations/cm1_c_est_s_est_dictee_01.json b/data/dictations/cm1_c_est_s_est_dictee_01.json new file mode 100644 index 0000000..c0fab7b --- /dev/null +++ b/data/dictations/cm1_c_est_s_est_dictee_01.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_c_est_s_est_dictee_01", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_c_est_s_est" + ], + "difficulty": 1, + "target_text": "C'est un grand jour pour toute la classe.", + "words": [ + { + "text": "C'est", + "expects_capital": true, + "rule_id": "regle_c_est_s_est" + }, + { + "text": "un" + }, + { + "text": "grand" + }, + { + "text": "jour" + }, + { + "text": "pour" + }, + { + "text": "toute" + }, + { + "text": "la" + }, + { + "text": "classe." + } + ], + "audio_id": "cm1_c_est_s_est_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_c_est_s_est_dictee_02.json b/data/dictations/cm1_c_est_s_est_dictee_02.json new file mode 100644 index 0000000..049178c --- /dev/null +++ b/data/dictations/cm1_c_est_s_est_dictee_02.json @@ -0,0 +1,39 @@ +{ + "id": "cm1_c_est_s_est_dictee_02", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_c_est_s_est" + ], + "difficulty": 2, + "target_text": "Mon cousin s'est perdu dans la ville.", + "words": [ + { + "text": "Mon", + "expects_capital": true + }, + { + "text": "cousin" + }, + { + "text": "s'est", + "rule_id": "regle_c_est_s_est" + }, + { + "text": "perdu" + }, + { + "text": "dans" + }, + { + "text": "la" + }, + { + "text": "ville." + } + ], + "audio_id": "cm1_c_est_s_est_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_c_est_s_est_dictee_03.json b/data/dictations/cm1_c_est_s_est_dictee_03.json new file mode 100644 index 0000000..a4d6492 --- /dev/null +++ b/data/dictations/cm1_c_est_s_est_dictee_03.json @@ -0,0 +1,52 @@ +{ + "id": "cm1_c_est_s_est_dictee_03", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_c_est_s_est" + ], + "difficulty": 3, + "target_text": "Quand la pluie s'est arrêtée, c'est le soleil qui est revenu.", + "words": [ + { + "text": "Quand", + "expects_capital": true + }, + { + "text": "la" + }, + { + "text": "pluie" + }, + { + "text": "s'est", + "rule_id": "regle_c_est_s_est" + }, + { + "text": "arrêtée," + }, + { + "text": "c'est", + "rule_id": "regle_c_est_s_est" + }, + { + "text": "le" + }, + { + "text": "soleil" + }, + { + "text": "qui" + }, + { + "text": "est" + }, + { + "text": "revenu." + } + ], + "audio_id": "cm1_c_est_s_est_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_ces_ses_dictee_01.json b/data/dictations/cm1_ces_ses_dictee_01.json new file mode 100644 index 0000000..3aa9303 --- /dev/null +++ b/data/dictations/cm1_ces_ses_dictee_01.json @@ -0,0 +1,36 @@ +{ + "id": "cm1_ces_ses_dictee_01", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_ces_ses" + ], + "difficulty": 1, + "target_text": "Ces champignons poussent après la pluie.", + "words": [ + { + "text": "Ces", + "expects_capital": true, + "rule_id": "regle_ces_ses" + }, + { + "text": "champignons" + }, + { + "text": "poussent" + }, + { + "text": "après" + }, + { + "text": "la" + }, + { + "text": "pluie." + } + ], + "audio_id": "cm1_ces_ses_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_ces_ses_dictee_02.json b/data/dictations/cm1_ces_ses_dictee_02.json new file mode 100644 index 0000000..8b5265e --- /dev/null +++ b/data/dictations/cm1_ces_ses_dictee_02.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_ces_ses_dictee_02", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_ces_ses" + ], + "difficulty": 2, + "target_text": "Le boulanger sort ses pains du four chaud.", + "words": [ + { + "text": "Le", + "expects_capital": true + }, + { + "text": "boulanger" + }, + { + "text": "sort" + }, + { + "text": "ses", + "rule_id": "regle_ces_ses" + }, + { + "text": "pains" + }, + { + "text": "du" + }, + { + "text": "four" + }, + { + "text": "chaud." + } + ], + "audio_id": "cm1_ces_ses_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_ces_ses_dictee_03.json b/data/dictations/cm1_ces_ses_dictee_03.json new file mode 100644 index 0000000..beeebbf --- /dev/null +++ b/data/dictations/cm1_ces_ses_dictee_03.json @@ -0,0 +1,46 @@ +{ + "id": "cm1_ces_ses_dictee_03", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_ces_ses" + ], + "difficulty": 3, + "target_text": "Mon voisin répare ses outils avec ces vis neuves.", + "words": [ + { + "text": "Mon", + "expects_capital": true + }, + { + "text": "voisin" + }, + { + "text": "répare" + }, + { + "text": "ses", + "rule_id": "regle_ces_ses" + }, + { + "text": "outils" + }, + { + "text": "avec" + }, + { + "text": "ces", + "rule_id": "regle_ces_ses" + }, + { + "text": "vis" + }, + { + "text": "neuves." + } + ], + "audio_id": "cm1_ces_ses_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_imparfait_dictee_01.json b/data/dictations/cm1_imparfait_dictee_01.json new file mode 100644 index 0000000..10ca5e6 --- /dev/null +++ b/data/dictations/cm1_imparfait_dictee_01.json @@ -0,0 +1,39 @@ +{ + "id": "cm1_imparfait_dictee_01", + "level": "CM1", + "domain": "grammaire", + "rule_ids": [ + "regle_imparfait" + ], + "difficulty": 1, + "target_text": "Autrefois, les villageois puisaient l'eau au puits.", + "words": [ + { + "text": "Autrefois,", + "expects_capital": true + }, + { + "text": "les" + }, + { + "text": "villageois" + }, + { + "text": "puisaient", + "rule_id": "regle_imparfait" + }, + { + "text": "l'eau" + }, + { + "text": "au" + }, + { + "text": "puits." + } + ], + "audio_id": "cm1_imparfait_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_imparfait_dictee_02.json b/data/dictations/cm1_imparfait_dictee_02.json new file mode 100644 index 0000000..9b3c0a4 --- /dev/null +++ b/data/dictations/cm1_imparfait_dictee_02.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_imparfait_dictee_02", + "level": "CM1", + "domain": "grammaire", + "rule_ids": [ + "regle_imparfait" + ], + "difficulty": 2, + "target_text": "Tous les soirs, ma grand-mère tricotait près du feu.", + "words": [ + { + "text": "Tous", + "expects_capital": true + }, + { + "text": "les" + }, + { + "text": "soirs," + }, + { + "text": "ma" + }, + { + "text": "grand-mère" + }, + { + "text": "tricotait", + "rule_id": "regle_imparfait" + }, + { + "text": "près" + }, + { + "text": "du" + }, + { + "text": "feu." + } + ], + "audio_id": "cm1_imparfait_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_imparfait_dictee_03.json b/data/dictations/cm1_imparfait_dictee_03.json new file mode 100644 index 0000000..41f77f0 --- /dev/null +++ b/data/dictations/cm1_imparfait_dictee_03.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_imparfait_dictee_03", + "level": "CM1", + "domain": "grammaire", + "rule_ids": [ + "regle_imparfait" + ], + "difficulty": 3, + "target_text": "Quand nous étions enfants, nous construisions des cabanes.", + "words": [ + { + "text": "Quand", + "expects_capital": true + }, + { + "text": "nous" + }, + { + "text": "étions" + }, + { + "text": "enfants," + }, + { + "text": "nous" + }, + { + "text": "construisions", + "rule_id": "regle_imparfait" + }, + { + "text": "des" + }, + { + "text": "cabanes." + } + ], + "audio_id": "cm1_imparfait_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_la_la_l_a_dictee_01.json b/data/dictations/cm1_la_la_l_a_dictee_01.json new file mode 100644 index 0000000..9db192b --- /dev/null +++ b/data/dictations/cm1_la_la_l_a_dictee_01.json @@ -0,0 +1,39 @@ +{ + "id": "cm1_la_la_l_a_dictee_01", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_la_la_accent_l_a" + ], + "difficulty": 1, + "target_text": "La tortue avance lentement sur le chemin.", + "words": [ + { + "text": "La", + "expects_capital": true, + "rule_id": "regle_la_la_accent_l_a" + }, + { + "text": "tortue" + }, + { + "text": "avance" + }, + { + "text": "lentement" + }, + { + "text": "sur" + }, + { + "text": "le" + }, + { + "text": "chemin." + } + ], + "audio_id": "cm1_la_la_l_a_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_la_la_l_a_dictee_02.json b/data/dictations/cm1_la_la_l_a_dictee_02.json new file mode 100644 index 0000000..b7415c4 --- /dev/null +++ b/data/dictations/cm1_la_la_l_a_dictee_02.json @@ -0,0 +1,39 @@ +{ + "id": "cm1_la_la_l_a_dictee_02", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_la_la_accent_l_a" + ], + "difficulty": 2, + "target_text": "Mon frère est là depuis ce matin.", + "words": [ + { + "text": "Mon", + "expects_capital": true + }, + { + "text": "frère" + }, + { + "text": "est" + }, + { + "text": "là", + "rule_id": "regle_la_la_accent_l_a" + }, + { + "text": "depuis" + }, + { + "text": "ce" + }, + { + "text": "matin." + } + ], + "audio_id": "cm1_la_la_l_a_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_la_la_l_a_dictee_03.json b/data/dictations/cm1_la_la_l_a_dictee_03.json new file mode 100644 index 0000000..d631b8a --- /dev/null +++ b/data/dictations/cm1_la_la_l_a_dictee_03.json @@ -0,0 +1,39 @@ +{ + "id": "cm1_la_la_l_a_dictee_03", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_la_la_accent_l_a" + ], + "difficulty": 3, + "target_text": "Ma tante l'a invitée pour son anniversaire.", + "words": [ + { + "text": "Ma", + "expects_capital": true + }, + { + "text": "tante" + }, + { + "text": "l'a", + "rule_id": "regle_la_la_accent_l_a" + }, + { + "text": "invitée" + }, + { + "text": "pour" + }, + { + "text": "son" + }, + { + "text": "anniversaire." + } + ], + "audio_id": "cm1_la_la_l_a_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_leur_leurs_dictee_01.json b/data/dictations/cm1_leur_leurs_dictee_01.json new file mode 100644 index 0000000..8985ce0 --- /dev/null +++ b/data/dictations/cm1_leur_leurs_dictee_01.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_leur_leurs_dictee_01", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_leur_leurs" + ], + "difficulty": 1, + "target_text": "Les enfants rangent leurs affaires dans le placard.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "enfants" + }, + { + "text": "rangent" + }, + { + "text": "leurs", + "rule_id": "regle_leur_leurs" + }, + { + "text": "affaires" + }, + { + "text": "dans" + }, + { + "text": "le" + }, + { + "text": "placard." + } + ], + "audio_id": "cm1_leur_leurs_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_leur_leurs_dictee_02.json b/data/dictations/cm1_leur_leurs_dictee_02.json new file mode 100644 index 0000000..80f869b --- /dev/null +++ b/data/dictations/cm1_leur_leurs_dictee_02.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_leur_leurs_dictee_02", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_leur_leurs" + ], + "difficulty": 2, + "target_text": "Je leur prête mon vélo pour la journée.", + "words": [ + { + "text": "Je", + "expects_capital": true + }, + { + "text": "leur", + "rule_id": "regle_leur_leurs" + }, + { + "text": "prête" + }, + { + "text": "mon" + }, + { + "text": "vélo" + }, + { + "text": "pour" + }, + { + "text": "la" + }, + { + "text": "journée." + } + ], + "audio_id": "cm1_leur_leurs_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_leur_leurs_dictee_03.json b/data/dictations/cm1_leur_leurs_dictee_03.json new file mode 100644 index 0000000..120195f --- /dev/null +++ b/data/dictations/cm1_leur_leurs_dictee_03.json @@ -0,0 +1,40 @@ +{ + "id": "cm1_leur_leurs_dictee_03", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_leur_leurs" + ], + "difficulty": 3, + "target_text": "Les marins leur ont raconté leurs voyages.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "marins" + }, + { + "text": "leur", + "rule_id": "regle_leur_leurs" + }, + { + "text": "ont" + }, + { + "text": "raconté" + }, + { + "text": "leurs", + "rule_id": "regle_leur_leurs" + }, + { + "text": "voyages." + } + ], + "audio_id": "cm1_leur_leurs_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_ou_ou_dictee_01.json b/data/dictations/cm1_ou_ou_dictee_01.json new file mode 100644 index 0000000..789b829 --- /dev/null +++ b/data/dictations/cm1_ou_ou_dictee_01.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_ou_ou_dictee_01", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_ou_ou_accent" + ], + "difficulty": 1, + "target_text": "Je sais où j'ai mis mon cartable rouge.", + "words": [ + { + "text": "Je", + "expects_capital": true + }, + { + "text": "sais" + }, + { + "text": "où", + "rule_id": "regle_ou_ou_accent" + }, + { + "text": "j'ai" + }, + { + "text": "mis" + }, + { + "text": "mon" + }, + { + "text": "cartable" + }, + { + "text": "rouge." + } + ], + "audio_id": "cm1_ou_ou_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_ou_ou_dictee_02.json b/data/dictations/cm1_ou_ou_dictee_02.json new file mode 100644 index 0000000..e1b5593 --- /dev/null +++ b/data/dictations/cm1_ou_ou_dictee_02.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_ou_ou_dictee_02", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_ou_ou_accent" + ], + "difficulty": 2, + "target_text": "Tu peux boire du lait ou du jus d'orange.", + "words": [ + { + "text": "Tu", + "expects_capital": true + }, + { + "text": "peux" + }, + { + "text": "boire" + }, + { + "text": "du" + }, + { + "text": "lait" + }, + { + "text": "ou", + "rule_id": "regle_ou_ou_accent" + }, + { + "text": "du" + }, + { + "text": "jus" + }, + { + "text": "d'orange." + } + ], + "audio_id": "cm1_ou_ou_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_ou_ou_dictee_03.json b/data/dictations/cm1_ou_ou_dictee_03.json new file mode 100644 index 0000000..be7f18d --- /dev/null +++ b/data/dictations/cm1_ou_ou_dictee_03.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_ou_ou_dictee_03", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_ou_ou_accent" + ], + "difficulty": 3, + "target_text": "Voici le village où ma grand-mère est née.", + "words": [ + { + "text": "Voici", + "expects_capital": true + }, + { + "text": "le" + }, + { + "text": "village" + }, + { + "text": "où", + "rule_id": "regle_ou_ou_accent" + }, + { + "text": "ma" + }, + { + "text": "grand-mère" + }, + { + "text": "est" + }, + { + "text": "née." + } + ], + "audio_id": "cm1_ou_ou_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_participe_etre_dictee_01.json b/data/dictations/cm1_participe_etre_dictee_01.json new file mode 100644 index 0000000..84235ed --- /dev/null +++ b/data/dictations/cm1_participe_etre_dictee_01.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_participe_etre_dictee_01", + "level": "CM1", + "domain": "grammaire", + "rule_ids": [ + "regle_accord_participe_etre" + ], + "difficulty": 1, + "target_text": "Ma tante est arrivée ce matin par le train.", + "words": [ + { + "text": "Ma", + "expects_capital": true + }, + { + "text": "tante" + }, + { + "text": "est" + }, + { + "text": "arrivée", + "rule_id": "regle_accord_participe_etre" + }, + { + "text": "ce" + }, + { + "text": "matin" + }, + { + "text": "par" + }, + { + "text": "le" + }, + { + "text": "train." + } + ], + "audio_id": "cm1_participe_etre_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_participe_etre_dictee_02.json b/data/dictations/cm1_participe_etre_dictee_02.json new file mode 100644 index 0000000..f4adb44 --- /dev/null +++ b/data/dictations/cm1_participe_etre_dictee_02.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_participe_etre_dictee_02", + "level": "CM1", + "domain": "grammaire", + "rule_ids": [ + "regle_accord_participe_etre" + ], + "difficulty": 2, + "target_text": "Les enfants sont rentrés tard de la sortie.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "enfants" + }, + { + "text": "sont" + }, + { + "text": "rentrés", + "rule_id": "regle_accord_participe_etre" + }, + { + "text": "tard" + }, + { + "text": "de" + }, + { + "text": "la" + }, + { + "text": "sortie." + } + ], + "audio_id": "cm1_participe_etre_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_participe_etre_dictee_03.json b/data/dictations/cm1_participe_etre_dictee_03.json new file mode 100644 index 0000000..9ba3bac --- /dev/null +++ b/data/dictations/cm1_participe_etre_dictee_03.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_participe_etre_dictee_03", + "level": "CM1", + "domain": "grammaire", + "rule_ids": [ + "regle_accord_participe_etre" + ], + "difficulty": 3, + "target_text": "Léa et Sara sont montées dans le grand bateau.", + "words": [ + { + "text": "Léa", + "expects_capital": true + }, + { + "text": "et" + }, + { + "text": "Sara" + }, + { + "text": "sont" + }, + { + "text": "montées", + "rule_id": "regle_accord_participe_etre" + }, + { + "text": "dans" + }, + { + "text": "le" + }, + { + "text": "grand" + }, + { + "text": "bateau." + } + ], + "audio_id": "cm1_participe_etre_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_participe_forme_dictee_01.json b/data/dictations/cm1_participe_forme_dictee_01.json new file mode 100644 index 0000000..9e6d0ca --- /dev/null +++ b/data/dictations/cm1_participe_forme_dictee_01.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_participe_forme_dictee_01", + "level": "CM1", + "domain": "grammaire", + "rule_ids": [ + "regle_participe_passe_forme" + ], + "difficulty": 1, + "target_text": "Hier, j'ai fini mon livre avant le dîner.", + "words": [ + { + "text": "Hier,", + "expects_capital": true + }, + { + "text": "j'ai" + }, + { + "text": "fini", + "rule_id": "regle_participe_passe_forme" + }, + { + "text": "mon" + }, + { + "text": "livre" + }, + { + "text": "avant" + }, + { + "text": "le" + }, + { + "text": "dîner." + } + ], + "audio_id": "cm1_participe_forme_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_participe_forme_dictee_02.json b/data/dictations/cm1_participe_forme_dictee_02.json new file mode 100644 index 0000000..19898c5 --- /dev/null +++ b/data/dictations/cm1_participe_forme_dictee_02.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_participe_forme_dictee_02", + "level": "CM1", + "domain": "grammaire", + "rule_ids": [ + "regle_participe_passe_forme" + ], + "difficulty": 2, + "target_text": "Le fermier a vendu ses légumes au marché.", + "words": [ + { + "text": "Le", + "expects_capital": true + }, + { + "text": "fermier" + }, + { + "text": "a" + }, + { + "text": "vendu", + "rule_id": "regle_participe_passe_forme" + }, + { + "text": "ses" + }, + { + "text": "légumes" + }, + { + "text": "au" + }, + { + "text": "marché." + } + ], + "audio_id": "cm1_participe_forme_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_participe_forme_dictee_03.json b/data/dictations/cm1_participe_forme_dictee_03.json new file mode 100644 index 0000000..2d20f70 --- /dev/null +++ b/data/dictations/cm1_participe_forme_dictee_03.json @@ -0,0 +1,39 @@ +{ + "id": "cm1_participe_forme_dictee_03", + "level": "CM1", + "domain": "grammaire", + "rule_ids": [ + "regle_participe_passe_forme" + ], + "difficulty": 3, + "target_text": "Les élèves ont appris une longue poésie.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "élèves" + }, + { + "text": "ont" + }, + { + "text": "appris", + "rule_id": "regle_participe_passe_forme" + }, + { + "text": "une" + }, + { + "text": "longue" + }, + { + "text": "poésie." + } + ], + "audio_id": "cm1_participe_forme_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_pluriel_aux_dictee_01.json b/data/dictations/cm1_pluriel_aux_dictee_01.json new file mode 100644 index 0000000..f5fde6e --- /dev/null +++ b/data/dictations/cm1_pluriel_aux_dictee_01.json @@ -0,0 +1,39 @@ +{ + "id": "cm1_pluriel_aux_dictee_01", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_pluriel_aux_eaux" + ], + "difficulty": 1, + "target_text": "Les chevaux courent librement dans la prairie.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "chevaux", + "rule_id": "regle_pluriel_aux_eaux" + }, + { + "text": "courent" + }, + { + "text": "librement" + }, + { + "text": "dans" + }, + { + "text": "la" + }, + { + "text": "prairie." + } + ], + "audio_id": "cm1_pluriel_aux_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_pluriel_aux_dictee_02.json b/data/dictations/cm1_pluriel_aux_dictee_02.json new file mode 100644 index 0000000..bc010ad --- /dev/null +++ b/data/dictations/cm1_pluriel_aux_dictee_02.json @@ -0,0 +1,42 @@ +{ + "id": "cm1_pluriel_aux_dictee_02", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_pluriel_aux_eaux" + ], + "difficulty": 2, + "target_text": "Mamie garde ses bijoux dans une petite boîte.", + "words": [ + { + "text": "Mamie", + "expects_capital": true + }, + { + "text": "garde" + }, + { + "text": "ses" + }, + { + "text": "bijoux", + "rule_id": "regle_pluriel_aux_eaux" + }, + { + "text": "dans" + }, + { + "text": "une" + }, + { + "text": "petite" + }, + { + "text": "boîte." + } + ], + "audio_id": "cm1_pluriel_aux_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm1_pluriel_aux_dictee_03.json b/data/dictations/cm1_pluriel_aux_dictee_03.json new file mode 100644 index 0000000..e60c8c4 --- /dev/null +++ b/data/dictations/cm1_pluriel_aux_dictee_03.json @@ -0,0 +1,36 @@ +{ + "id": "cm1_pluriel_aux_dictee_03", + "level": "CM1", + "domain": "orthographe", + "rule_ids": [ + "regle_pluriel_aux_eaux" + ], + "difficulty": 3, + "target_text": "Les journaux annoncent de bonnes nouvelles.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "journaux", + "rule_id": "regle_pluriel_aux_eaux" + }, + { + "text": "annoncent" + }, + { + "text": "de" + }, + { + "text": "bonnes" + }, + { + "text": "nouvelles." + } + ], + "audio_id": "cm1_pluriel_aux_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_adverbes_dictee_01.json b/data/dictations/cm2_adverbes_dictee_01.json new file mode 100644 index 0000000..19e2123 --- /dev/null +++ b/data/dictations/cm2_adverbes_dictee_01.json @@ -0,0 +1,36 @@ +{ + "id": "cm2_adverbes_dictee_01", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_adverbes_ment" + ], + "difficulty": 1, + "target_text": "Le lion regarde sa proie patiemment.", + "words": [ + { + "text": "Le", + "expects_capital": true + }, + { + "text": "lion" + }, + { + "text": "regarde" + }, + { + "text": "sa" + }, + { + "text": "proie" + }, + { + "text": "patiemment.", + "rule_id": "regle_adverbes_ment" + } + ], + "audio_id": "cm2_adverbes_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_adverbes_dictee_02.json b/data/dictations/cm2_adverbes_dictee_02.json new file mode 100644 index 0000000..a9def8e --- /dev/null +++ b/data/dictations/cm2_adverbes_dictee_02.json @@ -0,0 +1,39 @@ +{ + "id": "cm2_adverbes_dictee_02", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_adverbes_ment" + ], + "difficulty": 2, + "target_text": "Elle lit à voix haute très couramment.", + "words": [ + { + "text": "Elle", + "expects_capital": true + }, + { + "text": "lit" + }, + { + "text": "à" + }, + { + "text": "voix" + }, + { + "text": "haute" + }, + { + "text": "très" + }, + { + "text": "couramment.", + "rule_id": "regle_adverbes_ment" + } + ], + "audio_id": "cm2_adverbes_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_adverbes_dictee_03.json b/data/dictations/cm2_adverbes_dictee_03.json new file mode 100644 index 0000000..74817c1 --- /dev/null +++ b/data/dictations/cm2_adverbes_dictee_03.json @@ -0,0 +1,36 @@ +{ + "id": "cm2_adverbes_dictee_03", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_adverbes_ment" + ], + "difficulty": 3, + "target_text": "Le chevalier combattit vaillamment jusqu'au soir.", + "words": [ + { + "text": "Le", + "expects_capital": true + }, + { + "text": "chevalier" + }, + { + "text": "combattit" + }, + { + "text": "vaillamment", + "rule_id": "regle_adverbes_ment" + }, + { + "text": "jusqu'au" + }, + { + "text": "soir." + } + ], + "audio_id": "cm2_adverbes_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_couleurs_dictee_01.json b/data/dictations/cm2_couleurs_dictee_01.json new file mode 100644 index 0000000..2105e00 --- /dev/null +++ b/data/dictations/cm2_couleurs_dictee_01.json @@ -0,0 +1,36 @@ +{ + "id": "cm2_couleurs_dictee_01", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_adjectifs_couleur" + ], + "difficulty": 1, + "target_text": "Les enfants portent des bonnets rouges.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "enfants" + }, + { + "text": "portent" + }, + { + "text": "des" + }, + { + "text": "bonnets" + }, + { + "text": "rouges.", + "rule_id": "regle_adjectifs_couleur" + } + ], + "audio_id": "cm2_couleurs_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_couleurs_dictee_02.json b/data/dictations/cm2_couleurs_dictee_02.json new file mode 100644 index 0000000..18a8232 --- /dev/null +++ b/data/dictations/cm2_couleurs_dictee_02.json @@ -0,0 +1,36 @@ +{ + "id": "cm2_couleurs_dictee_02", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_adjectifs_couleur" + ], + "difficulty": 2, + "target_text": "Elle a acheté des chaussures marron.", + "words": [ + { + "text": "Elle", + "expects_capital": true + }, + { + "text": "a" + }, + { + "text": "acheté" + }, + { + "text": "des" + }, + { + "text": "chaussures" + }, + { + "text": "marron.", + "rule_id": "regle_adjectifs_couleur" + } + ], + "audio_id": "cm2_couleurs_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_couleurs_dictee_03.json b/data/dictations/cm2_couleurs_dictee_03.json new file mode 100644 index 0000000..5928960 --- /dev/null +++ b/data/dictations/cm2_couleurs_dictee_03.json @@ -0,0 +1,39 @@ +{ + "id": "cm2_couleurs_dictee_03", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_adjectifs_couleur" + ], + "difficulty": 3, + "target_text": "Mon frère a des yeux bleu clair.", + "words": [ + { + "text": "Mon", + "expects_capital": true + }, + { + "text": "frère" + }, + { + "text": "a" + }, + { + "text": "des" + }, + { + "text": "yeux" + }, + { + "text": "bleu" + }, + { + "text": "clair.", + "rule_id": "regle_adjectifs_couleur" + } + ], + "audio_id": "cm2_couleurs_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_futur_cond_dictee_01.json b/data/dictations/cm2_futur_cond_dictee_01.json new file mode 100644 index 0000000..e107c37 --- /dev/null +++ b/data/dictations/cm2_futur_cond_dictee_01.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_futur_cond_dictee_01", + "level": "CM2", + "domain": "grammaire", + "rule_ids": [ + "regle_futur_conditionnel" + ], + "difficulty": 1, + "target_text": "Si j'avais une cape, je volerais au-dessus des nuages.", + "words": [ + { + "text": "Si", + "expects_capital": true + }, + { + "text": "j'avais" + }, + { + "text": "une" + }, + { + "text": "cape," + }, + { + "text": "je" + }, + { + "text": "volerais", + "rule_id": "regle_futur_conditionnel" + }, + { + "text": "au-dessus" + }, + { + "text": "des" + }, + { + "text": "nuages." + } + ], + "audio_id": "cm2_futur_cond_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_futur_cond_dictee_02.json b/data/dictations/cm2_futur_cond_dictee_02.json new file mode 100644 index 0000000..d4dabdf --- /dev/null +++ b/data/dictations/cm2_futur_cond_dictee_02.json @@ -0,0 +1,42 @@ +{ + "id": "cm2_futur_cond_dictee_02", + "level": "CM2", + "domain": "grammaire", + "rule_ids": [ + "regle_futur_conditionnel" + ], + "difficulty": 2, + "target_text": "Le guide nous montrera la lave dès demain.", + "words": [ + { + "text": "Le", + "expects_capital": true + }, + { + "text": "guide" + }, + { + "text": "nous" + }, + { + "text": "montrera", + "rule_id": "regle_futur_conditionnel" + }, + { + "text": "la" + }, + { + "text": "lave" + }, + { + "text": "dès" + }, + { + "text": "demain." + } + ], + "audio_id": "cm2_futur_cond_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_futur_cond_dictee_03.json b/data/dictations/cm2_futur_cond_dictee_03.json new file mode 100644 index 0000000..cc21656 --- /dev/null +++ b/data/dictations/cm2_futur_cond_dictee_03.json @@ -0,0 +1,42 @@ +{ + "id": "cm2_futur_cond_dictee_03", + "level": "CM2", + "domain": "grammaire", + "rule_ids": [ + "regle_futur_conditionnel" + ], + "difficulty": 3, + "target_text": "Si le volcan se réveillait, les habitants partiraient.", + "words": [ + { + "text": "Si", + "expects_capital": true + }, + { + "text": "le" + }, + { + "text": "volcan" + }, + { + "text": "se" + }, + { + "text": "réveillait," + }, + { + "text": "les" + }, + { + "text": "habitants" + }, + { + "text": "partiraient.", + "rule_id": "regle_futur_conditionnel" + } + ], + "audio_id": "cm2_futur_cond_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_participe_cod_dictee_01.json b/data/dictations/cm2_participe_cod_dictee_01.json new file mode 100644 index 0000000..7fb5229 --- /dev/null +++ b/data/dictations/cm2_participe_cod_dictee_01.json @@ -0,0 +1,42 @@ +{ + "id": "cm2_participe_cod_dictee_01", + "level": "CM2", + "domain": "grammaire", + "rule_ids": [ + "regle_participe_cod_avant" + ], + "difficulty": 1, + "target_text": "Hier, ma sœur a cueilli des framboises sauvages.", + "words": [ + { + "text": "Hier,", + "expects_capital": true + }, + { + "text": "ma" + }, + { + "text": "sœur" + }, + { + "text": "a" + }, + { + "text": "cueilli", + "rule_id": "regle_participe_cod_avant" + }, + { + "text": "des" + }, + { + "text": "framboises" + }, + { + "text": "sauvages." + } + ], + "audio_id": "cm2_participe_cod_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_participe_cod_dictee_02.json b/data/dictations/cm2_participe_cod_dictee_02.json new file mode 100644 index 0000000..93a11b9 --- /dev/null +++ b/data/dictations/cm2_participe_cod_dictee_02.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_participe_cod_dictee_02", + "level": "CM2", + "domain": "grammaire", + "rule_ids": [ + "regle_participe_cod_avant" + ], + "difficulty": 2, + "target_text": "Mon frère a rangé tous ses livres sur l'étagère.", + "words": [ + { + "text": "Mon", + "expects_capital": true + }, + { + "text": "frère" + }, + { + "text": "a" + }, + { + "text": "rangé", + "rule_id": "regle_participe_cod_avant" + }, + { + "text": "tous" + }, + { + "text": "ses" + }, + { + "text": "livres" + }, + { + "text": "sur" + }, + { + "text": "l'étagère." + } + ], + "audio_id": "cm2_participe_cod_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_participe_cod_dictee_03.json b/data/dictations/cm2_participe_cod_dictee_03.json new file mode 100644 index 0000000..69f917e --- /dev/null +++ b/data/dictations/cm2_participe_cod_dictee_03.json @@ -0,0 +1,42 @@ +{ + "id": "cm2_participe_cod_dictee_03", + "level": "CM2", + "domain": "grammaire", + "rule_ids": [ + "regle_participe_cod_avant" + ], + "difficulty": 3, + "target_text": "La poésie qu'il a apprise est très longue.", + "words": [ + { + "text": "La", + "expects_capital": true + }, + { + "text": "poésie" + }, + { + "text": "qu'il" + }, + { + "text": "a" + }, + { + "text": "apprise", + "rule_id": "regle_participe_cod_avant" + }, + { + "text": "est" + }, + { + "text": "très" + }, + { + "text": "longue." + } + ], + "audio_id": "cm2_participe_cod_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_passe_simple_dictee_01.json b/data/dictations/cm2_passe_simple_dictee_01.json new file mode 100644 index 0000000..214a2ef --- /dev/null +++ b/data/dictations/cm2_passe_simple_dictee_01.json @@ -0,0 +1,39 @@ +{ + "id": "cm2_passe_simple_dictee_01", + "level": "CM2", + "domain": "grammaire", + "rule_ids": [ + "regle_passe_simple" + ], + "difficulty": 1, + "target_text": "Le roi traversa la forêt sans s'arrêter.", + "words": [ + { + "text": "Le", + "expects_capital": true + }, + { + "text": "roi" + }, + { + "text": "traversa", + "rule_id": "regle_passe_simple" + }, + { + "text": "la" + }, + { + "text": "forêt" + }, + { + "text": "sans" + }, + { + "text": "s'arrêter." + } + ], + "audio_id": "cm2_passe_simple_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_passe_simple_dictee_02.json b/data/dictations/cm2_passe_simple_dictee_02.json new file mode 100644 index 0000000..18ee29c --- /dev/null +++ b/data/dictations/cm2_passe_simple_dictee_02.json @@ -0,0 +1,36 @@ +{ + "id": "cm2_passe_simple_dictee_02", + "level": "CM2", + "domain": "grammaire", + "rule_ids": [ + "regle_passe_simple" + ], + "difficulty": 2, + "target_text": "Les chevaliers montèrent sur leurs chevaux.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "chevaliers" + }, + { + "text": "montèrent", + "rule_id": "regle_passe_simple" + }, + { + "text": "sur" + }, + { + "text": "leurs" + }, + { + "text": "chevaux." + } + ], + "audio_id": "cm2_passe_simple_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_passe_simple_dictee_03.json b/data/dictations/cm2_passe_simple_dictee_03.json new file mode 100644 index 0000000..7d69c78 --- /dev/null +++ b/data/dictations/cm2_passe_simple_dictee_03.json @@ -0,0 +1,39 @@ +{ + "id": "cm2_passe_simple_dictee_03", + "level": "CM2", + "domain": "grammaire", + "rule_ids": [ + "regle_passe_simple" + ], + "difficulty": 3, + "target_text": "Soudain, la princesse ouvrit la lourde porte.", + "words": [ + { + "text": "Soudain,", + "expects_capital": true + }, + { + "text": "la" + }, + { + "text": "princesse" + }, + { + "text": "ouvrit", + "rule_id": "regle_passe_simple" + }, + { + "text": "la" + }, + { + "text": "lourde" + }, + { + "text": "porte." + } + ], + "audio_id": "cm2_passe_simple_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_plutot_dictee_01.json b/data/dictations/cm2_plutot_dictee_01.json new file mode 100644 index 0000000..383e5f8 --- /dev/null +++ b/data/dictations/cm2_plutot_dictee_01.json @@ -0,0 +1,39 @@ +{ + "id": "cm2_plutot_dictee_01", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_plutot_plus_tot" + ], + "difficulty": 1, + "target_text": "Je prends plutôt une pomme qu'un gâteau.", + "words": [ + { + "text": "Je", + "expects_capital": true + }, + { + "text": "prends" + }, + { + "text": "plutôt", + "rule_id": "regle_plutot_plus_tot" + }, + { + "text": "une" + }, + { + "text": "pomme" + }, + { + "text": "qu'un" + }, + { + "text": "gâteau." + } + ], + "audio_id": "cm2_plutot_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_plutot_dictee_02.json b/data/dictations/cm2_plutot_dictee_02.json new file mode 100644 index 0000000..9a86126 --- /dev/null +++ b/data/dictations/cm2_plutot_dictee_02.json @@ -0,0 +1,39 @@ +{ + "id": "cm2_plutot_dictee_02", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_plutot_plus_tot" + ], + "difficulty": 2, + "target_text": "Demain, nous irons à l'école plus tôt.", + "words": [ + { + "text": "Demain,", + "expects_capital": true + }, + { + "text": "nous" + }, + { + "text": "irons" + }, + { + "text": "à" + }, + { + "text": "l'école" + }, + { + "text": "plus" + }, + { + "text": "tôt.", + "rule_id": "regle_plutot_plus_tot" + } + ], + "audio_id": "cm2_plutot_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_plutot_dictee_03.json b/data/dictations/cm2_plutot_dictee_03.json new file mode 100644 index 0000000..5dc0f80 --- /dev/null +++ b/data/dictations/cm2_plutot_dictee_03.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_plutot_dictee_03", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_plutot_plus_tot" + ], + "difficulty": 3, + "target_text": "Il est arrivé plus tôt que les autres invités.", + "words": [ + { + "text": "Il", + "expects_capital": true + }, + { + "text": "est" + }, + { + "text": "arrivé" + }, + { + "text": "plus" + }, + { + "text": "tôt", + "rule_id": "regle_plutot_plus_tot" + }, + { + "text": "que" + }, + { + "text": "les" + }, + { + "text": "autres" + }, + { + "text": "invités." + } + ], + "audio_id": "cm2_plutot_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_quand_quant_dictee_01.json b/data/dictations/cm2_quand_quant_dictee_01.json new file mode 100644 index 0000000..41145a0 --- /dev/null +++ b/data/dictations/cm2_quand_quant_dictee_01.json @@ -0,0 +1,42 @@ +{ + "id": "cm2_quand_quant_dictee_01", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_quand_quant_qu_en" + ], + "difficulty": 1, + "target_text": "Quand le jour se lève, les oiseaux chantent.", + "words": [ + { + "text": "Quand", + "expects_capital": true, + "rule_id": "regle_quand_quant_qu_en" + }, + { + "text": "le" + }, + { + "text": "jour" + }, + { + "text": "se" + }, + { + "text": "lève," + }, + { + "text": "les" + }, + { + "text": "oiseaux" + }, + { + "text": "chantent." + } + ], + "audio_id": "cm2_quand_quant_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_quand_quant_dictee_02.json b/data/dictations/cm2_quand_quant_dictee_02.json new file mode 100644 index 0000000..c151fff --- /dev/null +++ b/data/dictations/cm2_quand_quant_dictee_02.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_quand_quant_dictee_02", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_quand_quant_qu_en" + ], + "difficulty": 2, + "target_text": "Quant à Julie, elle préfère rester à la maison.", + "words": [ + { + "text": "Quant", + "expects_capital": true, + "rule_id": "regle_quand_quant_qu_en" + }, + { + "text": "à" + }, + { + "text": "Julie," + }, + { + "text": "elle" + }, + { + "text": "préfère" + }, + { + "text": "rester" + }, + { + "text": "à" + }, + { + "text": "la" + }, + { + "text": "maison." + } + ], + "audio_id": "cm2_quand_quant_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_quand_quant_dictee_03.json b/data/dictations/cm2_quand_quant_dictee_03.json new file mode 100644 index 0000000..3c6eb16 --- /dev/null +++ b/data/dictations/cm2_quand_quant_dictee_03.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_quand_quant_dictee_03", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_quand_quant_qu_en" + ], + "difficulty": 3, + "target_text": "Je sais bien qu'en été les nuits sont courtes.", + "words": [ + { + "text": "Je", + "expects_capital": true + }, + { + "text": "sais" + }, + { + "text": "bien" + }, + { + "text": "qu'en", + "rule_id": "regle_quand_quant_qu_en" + }, + { + "text": "été" + }, + { + "text": "les" + }, + { + "text": "nuits" + }, + { + "text": "sont" + }, + { + "text": "courtes." + } + ], + "audio_id": "cm2_quand_quant_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_quel_qu_elle_dictee_01.json b/data/dictations/cm2_quel_qu_elle_dictee_01.json new file mode 100644 index 0000000..2e537ab --- /dev/null +++ b/data/dictations/cm2_quel_qu_elle_dictee_01.json @@ -0,0 +1,36 @@ +{ + "id": "cm2_quel_qu_elle_dictee_01", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_quel_qu_elle" + ], + "difficulty": 1, + "target_text": "Quelle belle étoile brille ce soir.", + "words": [ + { + "text": "Quelle", + "expects_capital": true, + "rule_id": "regle_quel_qu_elle" + }, + { + "text": "belle" + }, + { + "text": "étoile" + }, + { + "text": "brille" + }, + { + "text": "ce" + }, + { + "text": "soir." + } + ], + "audio_id": "cm2_quel_qu_elle_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_quel_qu_elle_dictee_02.json b/data/dictations/cm2_quel_qu_elle_dictee_02.json new file mode 100644 index 0000000..65ac0f7 --- /dev/null +++ b/data/dictations/cm2_quel_qu_elle_dictee_02.json @@ -0,0 +1,39 @@ +{ + "id": "cm2_quel_qu_elle_dictee_02", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_quel_qu_elle" + ], + "difficulty": 2, + "target_text": "Maman dit qu'elle rentrera tard ce soir.", + "words": [ + { + "text": "Maman", + "expects_capital": true + }, + { + "text": "dit" + }, + { + "text": "qu'elle", + "rule_id": "regle_quel_qu_elle" + }, + { + "text": "rentrera" + }, + { + "text": "tard" + }, + { + "text": "ce" + }, + { + "text": "soir." + } + ], + "audio_id": "cm2_quel_qu_elle_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_quel_qu_elle_dictee_03.json b/data/dictations/cm2_quel_qu_elle_dictee_03.json new file mode 100644 index 0000000..741159a --- /dev/null +++ b/data/dictations/cm2_quel_qu_elle_dictee_03.json @@ -0,0 +1,48 @@ +{ + "id": "cm2_quel_qu_elle_dictee_03", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_quel_qu_elle" + ], + "difficulty": 3, + "target_text": "Je me demande quels livres elle lira pendant les vacances.", + "words": [ + { + "text": "Je", + "expects_capital": true + }, + { + "text": "me" + }, + { + "text": "demande" + }, + { + "text": "quels", + "rule_id": "regle_quel_qu_elle" + }, + { + "text": "livres" + }, + { + "text": "elle" + }, + { + "text": "lira" + }, + { + "text": "pendant" + }, + { + "text": "les" + }, + { + "text": "vacances." + } + ], + "audio_id": "cm2_quel_qu_elle_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_tion_sion_dictee_01.json b/data/dictations/cm2_tion_sion_dictee_01.json new file mode 100644 index 0000000..379f1f1 --- /dev/null +++ b/data/dictations/cm2_tion_sion_dictee_01.json @@ -0,0 +1,39 @@ +{ + "id": "cm2_tion_sion_dictee_01", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_tion_sion_ssion" + ], + "difficulty": 1, + "target_text": "Les élèves écoutent avec attention la leçon.", + "words": [ + { + "text": "Les", + "expects_capital": true + }, + { + "text": "élèves" + }, + { + "text": "écoutent" + }, + { + "text": "avec" + }, + { + "text": "attention", + "rule_id": "regle_tion_sion_ssion" + }, + { + "text": "la" + }, + { + "text": "leçon." + } + ], + "audio_id": "cm2_tion_sion_dictee_01", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_tion_sion_dictee_02.json b/data/dictations/cm2_tion_sion_dictee_02.json new file mode 100644 index 0000000..e34492a --- /dev/null +++ b/data/dictations/cm2_tion_sion_dictee_02.json @@ -0,0 +1,39 @@ +{ + "id": "cm2_tion_sion_dictee_02", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_tion_sion_ssion" + ], + "difficulty": 2, + "target_text": "La mission des astronautes dure six mois.", + "words": [ + { + "text": "La", + "expects_capital": true + }, + { + "text": "mission", + "rule_id": "regle_tion_sion_ssion" + }, + { + "text": "des" + }, + { + "text": "astronautes" + }, + { + "text": "dure" + }, + { + "text": "six" + }, + { + "text": "mois." + } + ], + "audio_id": "cm2_tion_sion_dictee_02", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/dictations/cm2_tion_sion_dictee_03.json b/data/dictations/cm2_tion_sion_dictee_03.json new file mode 100644 index 0000000..7bb70e9 --- /dev/null +++ b/data/dictations/cm2_tion_sion_dictee_03.json @@ -0,0 +1,40 @@ +{ + "id": "cm2_tion_sion_dictee_03", + "level": "CM2", + "domain": "orthographe", + "rule_ids": [ + "regle_tion_sion_ssion" + ], + "difficulty": 3, + "target_text": "Cette émission de télévision passionne les enfants.", + "words": [ + { + "text": "Cette", + "expects_capital": true + }, + { + "text": "émission", + "rule_id": "regle_tion_sion_ssion" + }, + { + "text": "de" + }, + { + "text": "télévision", + "rule_id": "regle_tion_sion_ssion" + }, + { + "text": "passionne" + }, + { + "text": "les" + }, + { + "text": "enfants." + } + ], + "audio_id": "cm2_tion_sion_dictee_03", + "audio_provisional": true, + "accepted_variants": [], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_correction_01.json b/data/exercises/cm1/cm1_c_est_s_est_correction_01.json new file mode 100644 index 0000000..b1cbc53 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_correction_01.json @@ -0,0 +1,41 @@ +{ + "id": "cm1_c_est_s_est_correction_01", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Paul", + "correct": true + }, + { + "text": "c'est", + "correct": false, + "expected": "s'est", + "rule_id": "regle_c_est_s_est" + }, + { + "text": "blessé", + "correct": true + }, + { + "text": "au", + "correct": true + }, + { + "text": "genou.", + "correct": true + } + ], + "hint": "Remplace par « se blesse » au présent.", + "explanation": "Paul est le sujet, « blessé » est un participe : « s'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_correction_02.json b/data/exercises/cm1/cm1_c_est_s_est_correction_02.json new file mode 100644 index 0000000..419bf7b --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_correction_02.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_c_est_s_est_correction_02", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "S'est", + "correct": false, + "expected": "C'est", + "rule_id": "regle_c_est_s_est" + }, + { + "text": "la", + "correct": true + }, + { + "text": "maison", + "correct": true + }, + { + "text": "de", + "correct": true + }, + { + "text": "mes", + "correct": true + }, + { + "text": "grands-parents.", + "correct": true + } + ], + "hint": "Remplace par « cela est ».", + "explanation": "On peut dire « cela est la maison » : « c'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_correction_03.json b/data/exercises/cm1/cm1_c_est_s_est_correction_03.json new file mode 100644 index 0000000..e624247 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_correction_03.json @@ -0,0 +1,53 @@ +{ + "id": "cm1_c_est_s_est_correction_03", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "La", + "correct": true + }, + { + "text": "petite", + "correct": true + }, + { + "text": "fille", + "correct": true + }, + { + "text": "c'est", + "correct": false, + "expected": "s'est", + "rule_id": "regle_c_est_s_est" + }, + { + "text": "perdue", + "correct": true + }, + { + "text": "dans", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "forêt.", + "correct": true + } + ], + "hint": "Remplace par « se perd » au présent.", + "explanation": "La petite fille est le sujet, « perdue » est un participe : « s'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_correction_04.json b/data/exercises/cm1/cm1_c_est_s_est_correction_04.json new file mode 100644 index 0000000..3632bc4 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_correction_04.json @@ -0,0 +1,61 @@ +{ + "id": "cm1_c_est_s_est_correction_04", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Je", + "correct": true + }, + { + "text": "sais", + "correct": true + }, + { + "text": "que", + "correct": true + }, + { + "text": "s'est", + "correct": false, + "expected": "c'est", + "rule_id": "regle_c_est_s_est" + }, + { + "text": "toi", + "correct": true + }, + { + "text": "qui", + "correct": true + }, + { + "text": "as", + "correct": true + }, + { + "text": "gagné", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "course.", + "correct": true + } + ], + "hint": "Remplace par « cela est ».", + "explanation": "On peut dire « cela est toi qui as gagné » : « c'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_qcm_01.json b/data/exercises/cm1/cm1_c_est_s_est_qcm_01.json new file mode 100644 index 0000000..c7efb8c --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_c_est_s_est_qcm_01", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... un beau jour pour jouer dehors.", + "answers": [ + "S'est", + "C'est" + ], + "correct_answer": 1, + "hint": "Remplace par « cela est » : « cela est un beau jour » a du sens.", + "explanation": "On peut dire « cela est » : on écrit « c'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_qcm_02.json b/data/exercises/cm1/cm1_c_est_s_est_qcm_02.json new file mode 100644 index 0000000..21f5178 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_c_est_s_est_qcm_02", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le chat ... endormi sur le canapé.", + "answers": [ + "s'est", + "c'est" + ], + "correct_answer": 0, + "hint": "Remplace par « se » au présent : « le chat se dort » → « s'endort ».", + "explanation": "Le chat est le sujet et « endormi » le participe : on écrit « s'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_qcm_03.json b/data/exercises/cm1/cm1_c_est_s_est_qcm_03.json new file mode 100644 index 0000000..6a24a55 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_c_est_s_est_qcm_03", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Regarde, ... ma nouvelle bicyclette !", + "answers": [ + "c'est", + "s'est" + ], + "correct_answer": 0, + "hint": "Remplace par « cela est ».", + "explanation": "On peut dire « cela est ma nouvelle bicyclette » : « c'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_qcm_04.json b/data/exercises/cm1/cm1_c_est_s_est_qcm_04.json new file mode 100644 index 0000000..ab431b3 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_c_est_s_est_qcm_04", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Léa ... lavé les mains avant de manger.", + "answers": [ + "c'est", + "s'est" + ], + "correct_answer": 1, + "hint": "Remplace par « se lave » au présent.", + "explanation": "Léa est le sujet, « lavé » est un participe : « s'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_qcm_05.json b/data/exercises/cm1/cm1_c_est_s_est_qcm_05.json new file mode 100644 index 0000000..9293540 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_c_est_s_est_qcm_05", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je crois que ... le facteur qui sonne.", + "answers": [ + "s'est", + "c'est" + ], + "correct_answer": 1, + "hint": "Remplace par « cela est ».", + "explanation": "On peut dire « cela est le facteur » : « c'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_qcm_06.json b/data/exercises/cm1/cm1_c_est_s_est_qcm_06.json new file mode 100644 index 0000000..6f63577 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_c_est_s_est_qcm_06", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mon frère ... cassé la jambe en jouant.", + "answers": [ + "s'est", + "c'est" + ], + "correct_answer": 0, + "hint": "Remplace par « se casse » au présent.", + "explanation": "Mon frère est le sujet, « cassé » est un participe : « s'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_qcm_07.json b/data/exercises/cm1/cm1_c_est_s_est_qcm_07.json new file mode 100644 index 0000000..fc32961 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_c_est_s_est_qcm_07", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il a bien travaillé : ... pour cela qu'il a réussi.", + "answers": [ + "s'est", + "c'est" + ], + "correct_answer": 1, + "hint": "Remplace par « cela est ».", + "explanation": "On peut dire « cela est pour cela » : « c'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_c_est_s_est_qcm_08.json b/data/exercises/cm1/cm1_c_est_s_est_qcm_08.json new file mode 100644 index 0000000..381bdb8 --- /dev/null +++ b/data/exercises/cm1/cm1_c_est_s_est_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_c_est_s_est_qcm_08", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_c_est_s_est", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le soleil ... caché derrière un gros nuage.", + "answers": [ + "c'est", + "s'est" + ], + "correct_answer": 1, + "hint": "Remplace par « se cache » au présent.", + "explanation": "Le soleil est le sujet, « caché » est un participe : « s'est ».", + "review_tags": [ + "homophones_cm1", + "c_est_s_est" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_correction_01.json b/data/exercises/cm1/cm1_ces_ses_correction_01.json new file mode 100644 index 0000000..5bb4182 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_correction_01.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_ces_ses_correction_01", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Regarde", + "correct": true + }, + { + "text": "ses", + "correct": false, + "expected": "ces", + "rule_id": "regle_ces_ses" + }, + { + "text": "nuages-là,", + "correct": true + }, + { + "text": "ils", + "correct": true + }, + { + "text": "sont", + "correct": true + }, + { + "text": "très", + "correct": true + }, + { + "text": "noirs !", + "correct": true + } + ], + "hint": "Remplace par « ce » : « ce nuage-là » a du sens.", + "explanation": "« Ces » est le pluriel de « ce » : on montre des nuages.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_correction_02.json b/data/exercises/cm1/cm1_ces_ses_correction_02.json new file mode 100644 index 0000000..35bfe05 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_correction_02.json @@ -0,0 +1,57 @@ +{ + "id": "cm1_ces_ses_correction_02", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "chien", + "correct": true + }, + { + "text": "secoue", + "correct": true + }, + { + "text": "ces", + "correct": false, + "expected": "ses", + "rule_id": "regle_ces_ses" + }, + { + "text": "oreilles", + "correct": true + }, + { + "text": "en", + "correct": true + }, + { + "text": "sortant", + "correct": true + }, + { + "text": "de", + "correct": true + }, + { + "text": "l'eau.", + "correct": true + } + ], + "hint": "Remplace par « son » : « son oreille » a du sens.", + "explanation": "« Ses » est le pluriel de « son » : les oreilles du chien.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_correction_03.json b/data/exercises/cm1/cm1_ces_ses_correction_03.json new file mode 100644 index 0000000..e506efe --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_correction_03.json @@ -0,0 +1,61 @@ +{ + "id": "cm1_ces_ses_correction_03", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Léa", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "rangé", + "correct": true + }, + { + "text": "ces", + "correct": false, + "expected": "ses", + "rule_id": "regle_ces_ses" + }, + { + "text": "affaires", + "correct": true + }, + { + "text": "avant", + "correct": true + }, + { + "text": "de", + "correct": true + }, + { + "text": "partir", + "correct": true + }, + { + "text": "à", + "correct": true + }, + { + "text": "l'école.", + "correct": true + } + ], + "hint": "Remplace par « son » : « son affaire » a du sens.", + "explanation": "« Ses » est le pluriel de « son » : les affaires de Léa.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_correction_04.json b/data/exercises/cm1/cm1_ces_ses_correction_04.json new file mode 100644 index 0000000..dd23605 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_correction_04.json @@ -0,0 +1,41 @@ +{ + "id": "cm1_ces_ses_correction_04", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Pourquoi", + "correct": true + }, + { + "text": "portes-tu", + "correct": true + }, + { + "text": "ses", + "correct": false, + "expected": "ces", + "rule_id": "regle_ces_ses" + }, + { + "text": "chaussures-ci", + "correct": true + }, + { + "text": "aujourd'hui ?", + "correct": true + } + ], + "hint": "Remplace par « cette » : « cette chaussure-ci » a du sens.", + "explanation": "« Ces » est le pluriel de « cette » : on montre des chaussures.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_qcm_01.json b/data/exercises/cm1/cm1_ces_ses_qcm_01.json new file mode 100644 index 0000000..9d2d87d --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ces_ses_qcm_01", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Regarde ... beaux oiseaux dans le ciel !", + "answers": [ + "ces", + "ses" + ], + "correct_answer": 0, + "hint": "Remplace par « ce » : « ce bel oiseau » a du sens.", + "explanation": "« Ces » est le pluriel de « ce » : on montre des oiseaux.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_qcm_02.json b/data/exercises/cm1/cm1_ces_ses_qcm_02.json new file mode 100644 index 0000000..9d25647 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ces_ses_qcm_02", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Théo range ... crayons dans sa trousse.", + "answers": [ + "ses", + "ces" + ], + "correct_answer": 0, + "hint": "Remplace par « son » : « son crayon » a du sens.", + "explanation": "« Ses » est le pluriel de « son » : les crayons de Théo.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_qcm_03.json b/data/exercises/cm1/cm1_ces_ses_qcm_03.json new file mode 100644 index 0000000..cfb8cb3 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ces_ses_qcm_03", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "J'aime beaucoup ... gâteaux au chocolat, là-bas.", + "answers": [ + "ses", + "ces" + ], + "correct_answer": 1, + "hint": "Remplace par « ce » : « ce gâteau » a du sens.", + "explanation": "« Ces » est le pluriel de « ce » : on montre des gâteaux.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_qcm_04.json b/data/exercises/cm1/cm1_ces_ses_qcm_04.json new file mode 100644 index 0000000..d5849a5 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ces_ses_qcm_04", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Julie a oublié ... clés sur la table.", + "answers": [ + "ses", + "ces" + ], + "correct_answer": 0, + "hint": "Remplace par « sa » : « sa clé » a du sens.", + "explanation": "« Ses » est le pluriel de « sa » : les clés de Julie.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_qcm_05.json b/data/exercises/cm1/cm1_ces_ses_qcm_05.json new file mode 100644 index 0000000..b936906 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ces_ses_qcm_05", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Pourquoi achètes-tu ... pommes vertes ?", + "answers": [ + "ces", + "ses" + ], + "correct_answer": 0, + "hint": "Remplace par « cette » : « cette pomme » a du sens.", + "explanation": "« Ces » est le pluriel de « cette » : on montre des pommes.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_qcm_06.json b/data/exercises/cm1/cm1_ces_ses_qcm_06.json new file mode 100644 index 0000000..b7a27b4 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ces_ses_qcm_06", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le chat lèche ... pattes après la pluie.", + "answers": [ + "ses", + "ces" + ], + "correct_answer": 0, + "hint": "Remplace par « sa » : « sa patte » a du sens.", + "explanation": "« Ses » est le pluriel de « sa » : les pattes du chat.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_qcm_07.json b/data/exercises/cm1/cm1_ces_ses_qcm_07.json new file mode 100644 index 0000000..a882359 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ces_ses_qcm_07", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Regarde ... nuages noirs, il va pleuvoir !", + "answers": [ + "ces", + "ses" + ], + "correct_answer": 0, + "hint": "Remplace par « ce » : « ce nuage » a du sens.", + "explanation": "« Ces » est le pluriel de « ce » : on montre des nuages.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ces_ses_qcm_08.json b/data/exercises/cm1/cm1_ces_ses_qcm_08.json new file mode 100644 index 0000000..0976811 --- /dev/null +++ b/data/exercises/cm1/cm1_ces_ses_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ces_ses_qcm_08", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_ces_ses", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Max a rangé tous ... jouets dans son coffre.", + "answers": [ + "ces", + "ses" + ], + "correct_answer": 1, + "hint": "Remplace par « son » : « son jouet » a du sens.", + "explanation": "« Ses » est le pluriel de « son » : les jouets de Max.", + "review_tags": [ + "homophones_cm1", + "ces_ses" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_correction_01.json b/data/exercises/cm1/cm1_imparfait_correction_01.json new file mode 100644 index 0000000..c077339 --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_correction_01.json @@ -0,0 +1,53 @@ +{ + "id": "cm1_imparfait_correction_01", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Autrefois,", + "correct": true + }, + { + "text": "je", + "correct": true + }, + { + "text": "jouait", + "correct": false, + "expected": "jouais", + "rule_id": "regle_imparfait" + }, + { + "text": "aux", + "correct": true + }, + { + "text": "billes", + "correct": true + }, + { + "text": "avec", + "correct": true + }, + { + "text": "mon", + "correct": true + }, + { + "text": "frère.", + "correct": true + } + ], + "hint": "Avec « je », l'imparfait finit par -ais.", + "explanation": "Avec « je », l'imparfait finit par -ais : je jouais.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_correction_02.json b/data/exercises/cm1/cm1_imparfait_correction_02.json new file mode 100644 index 0000000..dc6619a --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_correction_02.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_imparfait_correction_02", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "enfants", + "correct": true + }, + { + "text": "chantait", + "correct": false, + "expected": "chantaient", + "rule_id": "regle_imparfait" + }, + { + "text": "pendant", + "correct": true + }, + { + "text": "le", + "correct": true + }, + { + "text": "voyage.", + "correct": true + } + ], + "hint": "Plusieurs enfants : pense à « ils ».", + "explanation": "Avec « ils », l'imparfait finit par -aient : ils chantaient.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_correction_03.json b/data/exercises/cm1/cm1_imparfait_correction_03.json new file mode 100644 index 0000000..4bc0d1c --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_imparfait_correction_03", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Autrefois,", + "correct": true + }, + { + "text": "nous", + "correct": true + }, + { + "text": "habitiez", + "correct": false, + "expected": "habitions", + "rule_id": "regle_imparfait" + }, + { + "text": "dans", + "correct": true + }, + { + "text": "une", + "correct": true + }, + { + "text": "petite", + "correct": true + }, + { + "text": "ferme.", + "correct": true + } + ], + "hint": "Avec « nous », l'imparfait finit par -ions.", + "explanation": "Avec « nous », l'imparfait finit par -ions : nous habitions.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_correction_04.json b/data/exercises/cm1/cm1_imparfait_correction_04.json new file mode 100644 index 0000000..d3d339e --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_correction_04.json @@ -0,0 +1,53 @@ +{ + "id": "cm1_imparfait_correction_04", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "dimanche,", + "correct": true + }, + { + "text": "vous", + "correct": true + }, + { + "text": "marchions", + "correct": false, + "expected": "marchiez", + "rule_id": "regle_imparfait" + }, + { + "text": "lentement", + "correct": true + }, + { + "text": "dans", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "neige.", + "correct": true + } + ], + "hint": "Avec « vous », l'imparfait finit par -iez.", + "explanation": "Avec « vous », l'imparfait finit par -iez : vous marchiez.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_qcm_01.json b/data/exercises/cm1/cm1_imparfait_qcm_01.json new file mode 100644 index 0000000..3420950 --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_imparfait_qcm_01", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Quand j'étais petit, je ... souvent au parc.", + "answers": [ + "jouais", + "jouait", + "jouaient" + ], + "correct_answer": 0, + "hint": "Avec « je », l'imparfait finit par -ais.", + "explanation": "Avec « je », l'imparfait finit par -ais : je jouais.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_qcm_02.json b/data/exercises/cm1/cm1_imparfait_qcm_02.json new file mode 100644 index 0000000..c91e96f --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_imparfait_qcm_02", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Autrefois, il ... une vieille voiture.", + "answers": [ + "avait", + "avais", + "avaient" + ], + "correct_answer": 0, + "hint": "Avec « il », l'imparfait finit par -ait.", + "explanation": "Avec « il », l'imparfait finit par -ait : il avait.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_qcm_03.json b/data/exercises/cm1/cm1_imparfait_qcm_03.json new file mode 100644 index 0000000..0deff7c --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_imparfait_qcm_03", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Chaque matin, tu ... du pain frais.", + "answers": [ + "mangeait", + "mangeais", + "mangeaient" + ], + "correct_answer": 1, + "hint": "Avec « tu », l'imparfait finit par -ais.", + "explanation": "Avec « tu », l'imparfait finit par -ais : tu mangeais.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_qcm_04.json b/data/exercises/cm1/cm1_imparfait_qcm_04.json new file mode 100644 index 0000000..2777ebb --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_imparfait_qcm_04", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Autrefois, nous ... au bord de la rivière.", + "answers": [ + "pêchiez", + "pêchions", + "pêchaient" + ], + "correct_answer": 1, + "hint": "Avec « nous », l'imparfait finit par -ions.", + "explanation": "Avec « nous », l'imparfait finit par -ions : nous pêchions.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_qcm_05.json b/data/exercises/cm1/cm1_imparfait_qcm_05.json new file mode 100644 index 0000000..6cfe859 --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_imparfait_qcm_05", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le soir, vous ... des histoires à vos enfants.", + "answers": [ + "racontiez", + "racontaient", + "racontions" + ], + "correct_answer": 0, + "hint": "Avec « vous », l'imparfait finit par -iez.", + "explanation": "Avec « vous », l'imparfait finit par -iez : vous racontiez.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_qcm_06.json b/data/exercises/cm1/cm1_imparfait_qcm_06.json new file mode 100644 index 0000000..d78062b --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_imparfait_qcm_06", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les chevaliers ... le château jour et nuit.", + "answers": [ + "gardait", + "gardions", + "gardaient" + ], + "correct_answer": 2, + "hint": "Plusieurs chevaliers : pense à « ils ».", + "explanation": "Avec « ils », l'imparfait finit par -aient : ils gardaient.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_qcm_07.json b/data/exercises/cm1/cm1_imparfait_qcm_07.json new file mode 100644 index 0000000..d32836b --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_imparfait_qcm_07", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Pendant que la pluie tombait, mes sœurs ... un jeu.", + "answers": [ + "préparaient", + "préparions", + "préparait" + ], + "correct_answer": 0, + "hint": "Plusieurs sœurs : pense à « elles ».", + "explanation": "Avec « elles », l'imparfait finit par -aient : elles préparaient.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_imparfait_qcm_08.json b/data/exercises/cm1/cm1_imparfait_qcm_08.json new file mode 100644 index 0000000..4222cc8 --- /dev/null +++ b/data/exercises/cm1/cm1_imparfait_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_imparfait_qcm_08", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_imparfait", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Toi et moi, nous ... toujours ensemble à l'école.", + "answers": [ + "allaient", + "alliez", + "allions" + ], + "correct_answer": 2, + "hint": "« Toi et moi » peut se remplacer par « nous ».", + "explanation": "Avec « nous », l'imparfait finit par -ions : nous allions.", + "review_tags": [ + "verbes_cm1", + "imparfait" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_correction_01.json b/data/exercises/cm1/cm1_la_la_l_a_correction_01.json new file mode 100644 index 0000000..9a0fec0 --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_correction_01.json @@ -0,0 +1,41 @@ +{ + "id": "cm1_la_la_l_a_correction_01", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Papa", + "correct": true + }, + { + "text": "la", + "correct": false, + "expected": "l'a", + "rule_id": "regle_la_la_accent_l_a" + }, + { + "text": "lavé", + "correct": true + }, + { + "text": "ce", + "correct": true + }, + { + "text": "matin.", + "correct": true + } + ], + "hint": "Remplace par « l'avait » : « papa l'avait lavé » a du sens.", + "explanation": "On peut dire « l'avait » : on écrit « l'a ».", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_correction_02.json b/data/exercises/cm1/cm1_la_la_l_a_correction_02.json new file mode 100644 index 0000000..d192358 --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_correction_02.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_la_la_l_a_correction_02", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Mon", + "correct": true + }, + { + "text": "chat", + "correct": true + }, + { + "text": "est", + "correct": true + }, + { + "text": "la,", + "correct": false, + "expected": "là,", + "rule_id": "regle_la_la_accent_l_a" + }, + { + "text": "sur", + "correct": true + }, + { + "text": "le", + "correct": true + }, + { + "text": "canapé.", + "correct": true + } + ], + "hint": "Cherche un lieu : « là-bas » a du sens.", + "explanation": "On indique un lieu : on écrit « là » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_correction_03.json b/data/exercises/cm1/cm1_la_la_l_a_correction_03.json new file mode 100644 index 0000000..475c0ac --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_la_la_l_a_correction_03", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "L'a", + "correct": false, + "expected": "La", + "rule_id": "regle_la_la_accent_l_a" + }, + { + "text": "maison", + "correct": true + }, + { + "text": "de", + "correct": true + }, + { + "text": "Léa", + "correct": true + }, + { + "text": "est", + "correct": true + }, + { + "text": "très", + "correct": true + }, + { + "text": "grande.", + "correct": true + } + ], + "hint": "« La » est ici un article devant le nom « maison ».", + "explanation": "« La » accompagne le nom « maison » : on écrit « la ».", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_correction_04.json b/data/exercises/cm1/cm1_la_la_l_a_correction_04.json new file mode 100644 index 0000000..97886d3 --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_correction_04.json @@ -0,0 +1,57 @@ +{ + "id": "cm1_la_la_l_a_correction_04", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Je", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "connais", + "correct": true + }, + { + "text": "bien :", + "correct": true + }, + { + "text": "ma", + "correct": true + }, + { + "text": "mère", + "correct": true + }, + { + "text": "la", + "correct": false, + "expected": "l'a", + "rule_id": "regle_la_la_accent_l_a" + }, + { + "text": "rencontrée", + "correct": true + }, + { + "text": "hier.", + "correct": true + } + ], + "hint": "Remplace par « l'avait » : « ma mère l'avait rencontrée » a du sens.", + "explanation": "On peut dire « l'avait » : on écrit « l'a ».", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_qcm_01.json b/data/exercises/cm1/cm1_la_la_l_a_qcm_01.json new file mode 100644 index 0000000..3622829 --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_la_la_l_a_qcm_01", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mets ton sac ... , sur la chaise.", + "answers": [ + "l'a", + "la", + "là" + ], + "correct_answer": 2, + "hint": "Cherche un lieu : « là-bas » a du sens.", + "explanation": "On indique un lieu : on écrit « là » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_qcm_02.json b/data/exercises/cm1/cm1_la_la_l_a_qcm_02.json new file mode 100644 index 0000000..0f84fed --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_la_la_l_a_qcm_02", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... maîtresse écrit au tableau.", + "answers": [ + "La", + "L'a", + "Là" + ], + "correct_answer": 0, + "hint": "« La » est ici un article devant un nom.", + "explanation": "« La » accompagne le nom « maîtresse » : on écrit « la » sans accent.", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_qcm_03.json b/data/exercises/cm1/cm1_la_la_l_a_qcm_03.json new file mode 100644 index 0000000..19bda8e --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_la_la_l_a_qcm_03", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Paul ... vu hier au marché.", + "answers": [ + "là", + "l'a", + "la" + ], + "correct_answer": 1, + "hint": "Remplace par « l'avait » : « Paul l'avait vu » a du sens.", + "explanation": "On peut dire « l'avait » : on écrit « l'a ».", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_qcm_04.json b/data/exercises/cm1/cm1_la_la_l_a_qcm_04.json new file mode 100644 index 0000000..c4c1be5 --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_la_la_l_a_qcm_04", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Pose le livre ... et viens manger.", + "answers": [ + "là", + "l'a", + "la" + ], + "correct_answer": 0, + "hint": "Cherche un lieu : « là-bas » a du sens.", + "explanation": "On indique un lieu : on écrit « là » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_qcm_05.json b/data/exercises/cm1/cm1_la_la_l_a_qcm_05.json new file mode 100644 index 0000000..70dd856 --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_la_la_l_a_qcm_05", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je pense que Marie ... déjà lu ce livre.", + "answers": [ + "là", + "l'a", + "la" + ], + "correct_answer": 1, + "hint": "Remplace par « l'avait » : « Marie l'avait lu » a du sens.", + "explanation": "On peut dire « l'avait » : on écrit « l'a ».", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_qcm_06.json b/data/exercises/cm1/cm1_la_la_l_a_qcm_06.json new file mode 100644 index 0000000..2aa87f6 --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_la_la_l_a_qcm_06", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Ma sœur est ... , près de la fenêtre.", + "answers": [ + "l'a", + "la", + "là" + ], + "correct_answer": 2, + "hint": "Cherche un lieu : « là-bas » a du sens.", + "explanation": "On indique un lieu : on écrit « là » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_qcm_07.json b/data/exercises/cm1/cm1_la_la_l_a_qcm_07.json new file mode 100644 index 0000000..9783d66 --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_la_la_l_a_qcm_07", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Cette chanson, Tom ... apprise par cœur.", + "answers": [ + "la", + "l'a", + "là" + ], + "correct_answer": 1, + "hint": "Remplace par « l'avait » : « Tom l'avait apprise » a du sens.", + "explanation": "On peut dire « l'avait » : on écrit « l'a ».", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_la_la_l_a_qcm_08.json b/data/exercises/cm1/cm1_la_la_l_a_qcm_08.json new file mode 100644 index 0000000..829cd5d --- /dev/null +++ b/data/exercises/cm1/cm1_la_la_l_a_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_la_la_l_a_qcm_08", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_la_la_accent_l_a", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Reste ... jusqu'à mon retour.", + "answers": [ + "l'a", + "la", + "là" + ], + "correct_answer": 2, + "hint": "Cherche un lieu : « là-bas » a du sens.", + "explanation": "On indique un lieu : on écrit « là » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "la_la_l_a" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_correction_01.json b/data/exercises/cm1/cm1_leur_leurs_correction_01.json new file mode 100644 index 0000000..51684f7 --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_correction_01.json @@ -0,0 +1,41 @@ +{ + "id": "cm1_leur_leurs_correction_01", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "chats", + "correct": true + }, + { + "text": "lèchent", + "correct": true + }, + { + "text": "leur", + "correct": false, + "expected": "leurs", + "rule_id": "regle_leur_leurs" + }, + { + "text": "pattes.", + "correct": true + } + ], + "hint": "Remplace par « ses » : « ses pattes » a du sens.", + "explanation": "On peut dire « ses pattes » : il faut « leurs ».", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_correction_02.json b/data/exercises/cm1/cm1_leur_leurs_correction_02.json new file mode 100644 index 0000000..a957b75 --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_correction_02.json @@ -0,0 +1,41 @@ +{ + "id": "cm1_leur_leurs_correction_02", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Je", + "correct": true + }, + { + "text": "leurs", + "correct": false, + "expected": "leur", + "rule_id": "regle_leur_leurs" + }, + { + "text": "parle", + "correct": true + }, + { + "text": "chaque", + "correct": true + }, + { + "text": "jour.", + "correct": true + } + ], + "hint": "Remplace par « lui » : « je lui parle » a du sens.", + "explanation": "On peut dire « je lui parle » : « leur » reste sans -s.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_correction_03.json b/data/exercises/cm1/cm1_leur_leurs_correction_03.json new file mode 100644 index 0000000..027b430 --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_correction_03.json @@ -0,0 +1,41 @@ +{ + "id": "cm1_leur_leurs_correction_03", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "sportifs", + "correct": true + }, + { + "text": "lavent", + "correct": true + }, + { + "text": "leur", + "correct": false, + "expected": "leurs", + "rule_id": "regle_leur_leurs" + }, + { + "text": "maillots.", + "correct": true + } + ], + "hint": "Remplace par « ses » : « ses maillots » a du sens.", + "explanation": "On peut dire « ses maillots » : il faut « leurs ».", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_correction_04.json b/data/exercises/cm1/cm1_leur_leurs_correction_04.json new file mode 100644 index 0000000..e92b90d --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_correction_04.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_leur_leurs_correction_04", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Maman", + "correct": true + }, + { + "text": "leurs", + "correct": false, + "expected": "leur", + "rule_id": "regle_leur_leurs" + }, + { + "text": "a", + "correct": true + }, + { + "text": "préparé", + "correct": true + }, + { + "text": "un", + "correct": true + }, + { + "text": "goûter.", + "correct": true + } + ], + "hint": "Remplace par « lui » : « maman lui a préparé » a du sens.", + "explanation": "On peut dire « lui a préparé » : « leur » reste sans -s.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_qcm_01.json b/data/exercises/cm1/cm1_leur_leurs_qcm_01.json new file mode 100644 index 0000000..ef455f7 --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_leur_leurs_qcm_01", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les enfants rangent ... jouets.", + "answers": [ + "leurs", + "leur" + ], + "correct_answer": 0, + "hint": "Remplace par « ses » : « ses jouets » a du sens.", + "explanation": "On peut dire « ses jouets » : « leurs » accompagne un nom pluriel.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_qcm_02.json b/data/exercises/cm1/cm1_leur_leurs_qcm_02.json new file mode 100644 index 0000000..e9af6ff --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_leur_leurs_qcm_02", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je ... donne un cadeau.", + "answers": [ + "leur", + "leurs" + ], + "correct_answer": 0, + "hint": "Remplace par « lui » : « je lui donne » a du sens.", + "explanation": "On peut dire « je lui donne » : « leur » accompagne le verbe et ne prend pas de -s.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_qcm_03.json b/data/exercises/cm1/cm1_leur_leurs_qcm_03.json new file mode 100644 index 0000000..0d5c3f9 --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_leur_leurs_qcm_03", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les élèves ouvrent ... cahiers.", + "answers": [ + "leurs", + "leur" + ], + "correct_answer": 0, + "hint": "Remplace par « ses » : « ses cahiers » a du sens.", + "explanation": "On peut dire « ses cahiers » : « leurs » accompagne un nom pluriel.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_qcm_04.json b/data/exercises/cm1/cm1_leur_leurs_qcm_04.json new file mode 100644 index 0000000..c0eb6cf --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_leur_leurs_qcm_04", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le maître ... explique la leçon.", + "answers": [ + "leurs", + "leur" + ], + "correct_answer": 1, + "hint": "Remplace par « lui » : « il lui explique » a du sens.", + "explanation": "On peut dire « il lui explique » : « leur » reste sans -s.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_qcm_05.json b/data/exercises/cm1/cm1_leur_leurs_qcm_05.json new file mode 100644 index 0000000..7a196fc --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_leur_leurs_qcm_05", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mes voisins arrosent ... fleurs.", + "answers": [ + "leurs", + "leur" + ], + "correct_answer": 0, + "hint": "Remplace par « ses » : « ses fleurs » a du sens.", + "explanation": "On peut dire « ses fleurs » : « leurs » accompagne un nom pluriel.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_qcm_06.json b/data/exercises/cm1/cm1_leur_leurs_qcm_06.json new file mode 100644 index 0000000..a04dcc9 --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_leur_leurs_qcm_06", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je ... ai dit la vérité.", + "answers": [ + "leurs", + "leur" + ], + "correct_answer": 1, + "hint": "Remplace par « lui » : « je lui ai dit » a du sens.", + "explanation": "On peut dire « je lui ai dit » : « leur » reste sans -s.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_qcm_07.json b/data/exercises/cm1/cm1_leur_leurs_qcm_07.json new file mode 100644 index 0000000..deda9a6 --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_leur_leurs_qcm_07", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les musiciens ont perdu ... partitions.", + "answers": [ + "leurs", + "leur" + ], + "correct_answer": 0, + "hint": "Remplace par « ses » : « ses partitions » a du sens.", + "explanation": "On peut dire « ses partitions » : « leurs » accompagne un nom pluriel.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_leur_leurs_qcm_08.json b/data/exercises/cm1/cm1_leur_leurs_qcm_08.json new file mode 100644 index 0000000..2b6065f --- /dev/null +++ b/data/exercises/cm1/cm1_leur_leurs_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_leur_leurs_qcm_08", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "rule_id": "regle_leur_leurs", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Ils ne ... ont pas répondu hier.", + "answers": [ + "leurs", + "leur" + ], + "correct_answer": 1, + "hint": "Remplace par « lui » : « ils ne lui ont pas répondu » a du sens.", + "explanation": "On peut dire « ne lui ont pas répondu » : « leur » reste sans -s.", + "review_tags": [ + "homophones_cm1", + "leur_leurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_correction_01.json b/data/exercises/cm1/cm1_ou_ou_correction_01.json new file mode 100644 index 0000000..3d9ec63 --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_correction_01.json @@ -0,0 +1,37 @@ +{ + "id": "cm1_ou_ou_correction_01", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Ou", + "correct": false, + "expected": "Où", + "rule_id": "regle_ou_ou_accent" + }, + { + "text": "vas-tu", + "correct": true + }, + { + "text": "après", + "correct": true + }, + { + "text": "l'école ?", + "correct": true + } + ], + "hint": "Remplace par « ou bien » : la phrase n'a pas de sens.", + "explanation": "On cherche un lieu : on écrit « où » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_correction_02.json b/data/exercises/cm1/cm1_ou_ou_correction_02.json new file mode 100644 index 0000000..ebded16 --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_correction_02.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_ou_ou_correction_02", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Tu", + "correct": true + }, + { + "text": "préfères", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "pomme", + "correct": true + }, + { + "text": "où", + "correct": false, + "expected": "ou", + "rule_id": "regle_ou_ou_accent" + }, + { + "text": "la", + "correct": true + }, + { + "text": "poire ?", + "correct": true + } + ], + "hint": "Remplace par « ou bien » : « la pomme ou bien la poire » a du sens.", + "explanation": "On peut dire « ou bien » : on écrit « ou » sans accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_correction_03.json b/data/exercises/cm1/cm1_ou_ou_correction_03.json new file mode 100644 index 0000000..9001f49 --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_ou_ou_correction_03", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Voilà", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "plage", + "correct": true + }, + { + "text": "ou", + "correct": false, + "expected": "où", + "rule_id": "regle_ou_ou_accent" + }, + { + "text": "nous", + "correct": true + }, + { + "text": "avons", + "correct": true + }, + { + "text": "joué.", + "correct": true + } + ], + "hint": "Remplace par « ou bien » : la phrase n'a pas de sens.", + "explanation": "On indique un lieu : on écrit « où » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_correction_04.json b/data/exercises/cm1/cm1_ou_ou_correction_04.json new file mode 100644 index 0000000..6227afe --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_correction_04.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_ou_ou_correction_04", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Dis-moi", + "correct": true + }, + { + "text": "ou", + "correct": false, + "expected": "où", + "rule_id": "regle_ou_ou_accent" + }, + { + "text": "tu", + "correct": true + }, + { + "text": "as", + "correct": true + }, + { + "text": "caché", + "correct": true + }, + { + "text": "mon", + "correct": true + }, + { + "text": "livre.", + "correct": true + } + ], + "hint": "Remplace par « ou bien » : la phrase n'a pas de sens.", + "explanation": "On indique un lieu : on écrit « où » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_qcm_01.json b/data/exercises/cm1/cm1_ou_ou_qcm_01.json new file mode 100644 index 0000000..3c9ac74 --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ou_ou_qcm_01", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... habites-tu ?", + "answers": [ + "Où", + "Ou" + ], + "correct_answer": 0, + "hint": "Remplace par « ou bien » : la phrase n'a pas de sens, c'est un lieu.", + "explanation": "On cherche un lieu : on écrit « où » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_qcm_02.json b/data/exercises/cm1/cm1_ou_ou_qcm_02.json new file mode 100644 index 0000000..756b23a --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ou_ou_qcm_02", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Veux-tu du thé ... du chocolat ?", + "answers": [ + "où", + "ou" + ], + "correct_answer": 1, + "hint": "Remplace par « ou bien » : « du thé ou bien du chocolat » a du sens.", + "explanation": "On peut dire « ou bien » : on écrit « ou » sans accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_qcm_03.json b/data/exercises/cm1/cm1_ou_ou_qcm_03.json new file mode 100644 index 0000000..59f4acd --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ou_ou_qcm_03", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Voici la ville ... je suis né.", + "answers": [ + "où", + "ou" + ], + "correct_answer": 0, + "hint": "Remplace par « ou bien » : la phrase n'a pas de sens.", + "explanation": "On indique un lieu : on écrit « où » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_qcm_04.json b/data/exercises/cm1/cm1_ou_ou_qcm_04.json new file mode 100644 index 0000000..857cb56 --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ou_ou_qcm_04", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Tu peux prendre le bus ... le train.", + "answers": [ + "où", + "ou" + ], + "correct_answer": 1, + "hint": "Remplace par « ou bien » : « le bus ou bien le train » a du sens.", + "explanation": "On peut dire « ou bien » : on écrit « ou » sans accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_qcm_05.json b/data/exercises/cm1/cm1_ou_ou_qcm_05.json new file mode 100644 index 0000000..d4c39bd --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ou_ou_qcm_05", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je ne sais pas ... j'ai posé mes lunettes.", + "answers": [ + "ou", + "où" + ], + "correct_answer": 1, + "hint": "Remplace par « ou bien » : la phrase n'a pas de sens.", + "explanation": "On indique un lieu : on écrit « où » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_qcm_06.json b/data/exercises/cm1/cm1_ou_ou_qcm_06.json new file mode 100644 index 0000000..7c4c2d3 --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ou_ou_qcm_06", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le jour ... il pleut, nous restons à la maison.", + "answers": [ + "ou", + "où" + ], + "correct_answer": 1, + "hint": "Remplace par « ou bien » : la phrase n'a pas de sens.", + "explanation": "On indique un moment : on écrit « où » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_qcm_07.json b/data/exercises/cm1/cm1_ou_ou_qcm_07.json new file mode 100644 index 0000000..28e343b --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ou_ou_qcm_07", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Elle hésite : le chat ... le chien ?", + "answers": [ + "où", + "ou" + ], + "correct_answer": 1, + "hint": "Remplace par « ou bien » : « le chat ou bien le chien » a du sens.", + "explanation": "On peut dire « ou bien » : on écrit « ou » sans accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_ou_ou_qcm_08.json b/data/exercises/cm1/cm1_ou_ou_qcm_08.json new file mode 100644 index 0000000..9aed859 --- /dev/null +++ b/data/exercises/cm1/cm1_ou_ou_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm1_ou_ou_qcm_08", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_ou_ou_accent", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "C'est le moment ... tout a commencé.", + "answers": [ + "où", + "ou" + ], + "correct_answer": 0, + "hint": "Remplace par « ou bien » : la phrase n'a pas de sens.", + "explanation": "On indique un moment : on écrit « où » avec un accent.", + "review_tags": [ + "orthographe_cm1", + "ou_ou" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_correction_01.json b/data/exercises/cm1/cm1_participe_etre_correction_01.json new file mode 100644 index 0000000..18098b1 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_correction_01.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_participe_etre_correction_01", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Marie", + "correct": true + }, + { + "text": "est", + "correct": true + }, + { + "text": "parti", + "correct": false, + "expected": "partie", + "rule_id": "regle_accord_participe_etre" + }, + { + "text": "à", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "piscine.", + "correct": true + } + ], + "hint": "Le sujet « Marie » est féminin.", + "explanation": "Avec « être », le participe s'accorde avec le sujet : Marie est partie.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_correction_02.json b/data/exercises/cm1/cm1_participe_etre_correction_02.json new file mode 100644 index 0000000..3e42b3a --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_correction_02.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_participe_etre_correction_02", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "garçons", + "correct": true + }, + { + "text": "sont", + "correct": true + }, + { + "text": "tombé", + "correct": false, + "expected": "tombés", + "rule_id": "regle_accord_participe_etre" + }, + { + "text": "dans", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "boue.", + "correct": true + } + ], + "hint": "Le sujet « les garçons » est pluriel.", + "explanation": "Avec « être », le participe s'accorde avec le sujet : les garçons sont tombés.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_correction_03.json b/data/exercises/cm1/cm1_participe_etre_correction_03.json new file mode 100644 index 0000000..eadf930 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_correction_03.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_participe_etre_correction_03", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Mes", + "correct": true + }, + { + "text": "sœurs", + "correct": true + }, + { + "text": "sont", + "correct": true + }, + { + "text": "arrivés", + "correct": false, + "expected": "arrivées", + "rule_id": "regle_accord_participe_etre" + }, + { + "text": "en", + "correct": true + }, + { + "text": "avance.", + "correct": true + } + ], + "hint": "Le sujet « mes sœurs » est féminin pluriel.", + "explanation": "Avec « être », le participe s'accorde avec le sujet : mes sœurs sont arrivées.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_correction_04.json b/data/exercises/cm1/cm1_participe_etre_correction_04.json new file mode 100644 index 0000000..6a0acbf --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_correction_04.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_participe_etre_correction_04", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Lucas", + "correct": true + }, + { + "text": "et", + "correct": true + }, + { + "text": "Emma", + "correct": true + }, + { + "text": "sont", + "correct": true + }, + { + "text": "allé", + "correct": false, + "expected": "allés", + "rule_id": "regle_accord_participe_etre" + }, + { + "text": "au", + "correct": true + }, + { + "text": "cinéma.", + "correct": true + } + ], + "hint": "Deux personnes : le sujet est pluriel.", + "explanation": "Avec « être », le participe s'accorde avec le sujet pluriel : « allés ».", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_qcm_01.json b/data/exercises/cm1/cm1_participe_etre_qcm_01.json new file mode 100644 index 0000000..d4c6aff --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_etre_qcm_01", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Léa est ... à l'école ce matin.", + "answers": [ + "arrivé", + "arrivés", + "arrivée" + ], + "correct_answer": 2, + "hint": "Le sujet « Léa » est féminin singulier.", + "explanation": "Avec « être », le participe s'accorde avec le sujet : Léa est arrivée.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_qcm_02.json b/data/exercises/cm1/cm1_participe_etre_qcm_02.json new file mode 100644 index 0000000..d57e8ca --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_etre_qcm_02", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Paul est ... chez sa grand-mère.", + "answers": [ + "allé", + "allés", + "allée" + ], + "correct_answer": 0, + "hint": "Le sujet « Paul » est masculin singulier.", + "explanation": "Avec « être », le participe s'accorde avec le sujet : Paul est allé.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_qcm_03.json b/data/exercises/cm1/cm1_participe_etre_qcm_03.json new file mode 100644 index 0000000..206331a --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_etre_qcm_03", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les filles sont ... à la plage.", + "answers": [ + "parties", + "parti", + "partie" + ], + "correct_answer": 0, + "hint": "Le sujet « les filles » est féminin pluriel.", + "explanation": "Avec « être », le participe s'accorde avec le sujet : les filles sont parties.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_qcm_04.json b/data/exercises/cm1/cm1_participe_etre_qcm_04.json new file mode 100644 index 0000000..a7137f4 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_etre_qcm_04", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mes cousins sont ... hier soir.", + "answers": [ + "venus", + "venue", + "venu" + ], + "correct_answer": 0, + "hint": "Le sujet « mes cousins » est masculin pluriel.", + "explanation": "Avec « être », le participe s'accorde avec le sujet : mes cousins sont venus.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_qcm_05.json b/data/exercises/cm1/cm1_participe_etre_qcm_05.json new file mode 100644 index 0000000..f95db32 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_etre_qcm_05", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Ma mère est ... tôt ce matin.", + "answers": [ + "sortis", + "sortie", + "sorti" + ], + "correct_answer": 1, + "hint": "Le sujet « ma mère » est féminin singulier.", + "explanation": "Avec « être », le participe s'accorde avec le sujet : ma mère est sortie.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_qcm_06.json b/data/exercises/cm1/cm1_participe_etre_qcm_06.json new file mode 100644 index 0000000..30be276 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_etre_qcm_06", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les enfants sont ... du bus en courant.", + "answers": [ + "descendu", + "descendus", + "descendues" + ], + "correct_answer": 1, + "hint": "Le sujet « les enfants » est masculin pluriel.", + "explanation": "Avec « être », le participe s'accorde avec le sujet : les enfants sont descendus.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_qcm_07.json b/data/exercises/cm1/cm1_participe_etre_qcm_07.json new file mode 100644 index 0000000..44a1f71 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_etre_qcm_07", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Anna et sa sœur sont ... en retard.", + "answers": [ + "arrivées", + "arrivés", + "arrivée" + ], + "correct_answer": 0, + "hint": "Deux filles : le sujet est féminin pluriel.", + "explanation": "Anna et sa sœur, c'est « elles » : le participe prend -ées.", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_etre_qcm_08.json b/data/exercises/cm1/cm1_participe_etre_qcm_08.json new file mode 100644 index 0000000..cdeb367 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_etre_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_etre_qcm_08", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_accord_participe_etre", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mon voisin et sa femme sont ... en vacances.", + "answers": [ + "parti", + "parties", + "partis" + ], + "correct_answer": 2, + "hint": "Un homme et une femme : le masculin l'emporte.", + "explanation": "Un sujet mixte s'accorde au masculin pluriel : « partis ».", + "review_tags": [ + "verbes_cm1", + "participe_etre" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_correction_01.json b/data/exercises/cm1/cm1_participe_forme_correction_01.json new file mode 100644 index 0000000..4742a6a --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_correction_01.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_participe_forme_correction_01", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Hier,", + "correct": true + }, + { + "text": "Tom", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "perdi", + "correct": false, + "expected": "perdu", + "rule_id": "regle_participe_passe_forme" + }, + { + "text": "sa", + "correct": true + }, + { + "text": "casquette.", + "correct": true + } + ], + "hint": "Le verbe « perdre » est en -re : son participe finit par -u.", + "explanation": "Beaucoup de verbes en -re ont un participe en -u : « perdu ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_correction_02.json b/data/exercises/cm1/cm1_participe_forme_correction_02.json new file mode 100644 index 0000000..7475c58 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_correction_02.json @@ -0,0 +1,53 @@ +{ + "id": "cm1_participe_forme_correction_02", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Nous", + "correct": true + }, + { + "text": "avons", + "correct": true + }, + { + "text": "finu", + "correct": false, + "expected": "fini", + "rule_id": "regle_participe_passe_forme" + }, + { + "text": "nos", + "correct": true + }, + { + "text": "devoirs", + "correct": true + }, + { + "text": "avant", + "correct": true + }, + { + "text": "le", + "correct": true + }, + { + "text": "dîner.", + "correct": true + } + ], + "hint": "Le verbe « finir » est en -ir : son participe finit par -i.", + "explanation": "Les verbes en -ir ont un participe en -i : « fini ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_correction_03.json b/data/exercises/cm1/cm1_participe_forme_correction_03.json new file mode 100644 index 0000000..463347e --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "cm1_participe_forme_correction_03", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "boulanger", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "vendi", + "correct": false, + "expected": "vendu", + "rule_id": "regle_participe_passe_forme" + }, + { + "text": "tous", + "correct": true + }, + { + "text": "ses", + "correct": true + }, + { + "text": "pains.", + "correct": true + } + ], + "hint": "Le verbe « vendre » est en -re : son participe finit par -u.", + "explanation": "Beaucoup de verbes en -re ont un participe en -u : « vendu ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_correction_04.json b/data/exercises/cm1/cm1_participe_forme_correction_04.json new file mode 100644 index 0000000..3f151e8 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_correction_04.json @@ -0,0 +1,53 @@ +{ + "id": "cm1_participe_forme_correction_04", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Elle", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "ouvri", + "correct": false, + "expected": "ouvert", + "rule_id": "regle_participe_passe_forme" + }, + { + "text": "la", + "correct": true + }, + { + "text": "fenêtre", + "correct": true + }, + { + "text": "de", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "chambre.", + "correct": true + } + ], + "hint": "Le participe du verbe « ouvrir » finit par -ert.", + "explanation": "Le participe passé d'« ouvrir » est « ouvert ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_qcm_01.json b/data/exercises/cm1/cm1_participe_forme_qcm_01.json new file mode 100644 index 0000000..5fcb3c6 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_forme_qcm_01", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Léa a ... son travail à midi.", + "answers": [ + "fini", + "finé", + "finu" + ], + "correct_answer": 0, + "hint": "Le verbe « finir » est en -ir : son participe finit par -i.", + "explanation": "Les verbes en -ir ont un participe en -i : « fini ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_qcm_02.json b/data/exercises/cm1/cm1_participe_forme_qcm_02.json new file mode 100644 index 0000000..8d26db7 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_forme_qcm_02", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Papa a ... sa voiture au garage.", + "answers": [ + "vendi", + "vendé", + "vendu" + ], + "correct_answer": 2, + "hint": "Le verbe « vendre » est en -re : son participe finit par -u.", + "explanation": "Beaucoup de verbes en -re ont un participe en -u : « vendu ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_qcm_03.json b/data/exercises/cm1/cm1_participe_forme_qcm_03.json new file mode 100644 index 0000000..4f89e9e --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_forme_qcm_03", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Tu as ... ta clé dans le jardin.", + "answers": [ + "perdu", + "perdé", + "perdi" + ], + "correct_answer": 0, + "hint": "Le verbe « perdre » est en -re : son participe finit par -u.", + "explanation": "Beaucoup de verbes en -re ont un participe en -u : « perdu ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_qcm_04.json b/data/exercises/cm1/cm1_participe_forme_qcm_04.json new file mode 100644 index 0000000..fd0cf8e --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_forme_qcm_04", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les enfants ont ... un gros gâteau.", + "answers": [ + "choisé", + "choisi", + "choisu" + ], + "correct_answer": 1, + "hint": "Le verbe « choisir » est en -ir : son participe finit par -i.", + "explanation": "Les verbes en -ir ont un participe en -i : « choisi ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_qcm_05.json b/data/exercises/cm1/cm1_participe_forme_qcm_05.json new file mode 100644 index 0000000..fc1d3f6 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_forme_qcm_05", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mon frère a ... une lettre à sa tante.", + "answers": [ + "écri", + "écrie", + "écrit" + ], + "correct_answer": 2, + "hint": "Le participe du verbe « écrire » finit par -it.", + "explanation": "Le participe passé d'« écrire » est « écrit ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_qcm_06.json b/data/exercises/cm1/cm1_participe_forme_qcm_06.json new file mode 100644 index 0000000..8c12362 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_forme_qcm_06", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous avons ... le train de justesse.", + "answers": [ + "pri", + "prit", + "pris" + ], + "correct_answer": 2, + "hint": "Le participe du verbe « prendre » finit par -is.", + "explanation": "Le participe passé de « prendre » est « pris ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_qcm_07.json b/data/exercises/cm1/cm1_participe_forme_qcm_07.json new file mode 100644 index 0000000..576efa5 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_forme_qcm_07", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Elle a ... la porte du jardin.", + "answers": [ + "ouvrit", + "ouvri", + "ouvert" + ], + "correct_answer": 2, + "hint": "Le participe du verbe « ouvrir » finit par -ert.", + "explanation": "Le participe passé d'« ouvrir » est « ouvert ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_participe_forme_qcm_08.json b/data/exercises/cm1/cm1_participe_forme_qcm_08.json new file mode 100644 index 0000000..d82f0b7 --- /dev/null +++ b/data/exercises/cm1/cm1_participe_forme_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_participe_forme_qcm_08", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "rule_id": "regle_participe_passe_forme", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les élèves ont ... leur leçon par cœur.", + "answers": [ + "apprit", + "appris", + "apri" + ], + "correct_answer": 1, + "hint": "Le participe du verbe « apprendre » finit par -is.", + "explanation": "Le participe passé d'« apprendre » est « appris ».", + "review_tags": [ + "verbes_cm1", + "participe_forme" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_correction_01.json b/data/exercises/cm1/cm1_pluriel_aux_correction_01.json new file mode 100644 index 0000000..e002da2 --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_correction_01.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_pluriel_aux_correction_01", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "chevals", + "correct": false, + "expected": "chevaux", + "rule_id": "regle_pluriel_aux_eaux" + }, + { + "text": "galopent", + "correct": true + }, + { + "text": "dans", + "correct": true + }, + { + "text": "le", + "correct": true + }, + { + "text": "champ.", + "correct": true + } + ], + "hint": "Le nom « cheval » finit par -al.", + "explanation": "Les noms en -al font -aux au pluriel : « chevaux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_correction_02.json b/data/exercises/cm1/cm1_pluriel_aux_correction_02.json new file mode 100644 index 0000000..c89b188 --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_correction_02.json @@ -0,0 +1,45 @@ +{ + "id": "cm1_pluriel_aux_correction_02", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "La", + "correct": true + }, + { + "text": "princesse", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "perdu", + "correct": true + }, + { + "text": "ses", + "correct": true + }, + { + "text": "bijous.", + "correct": false, + "expected": "bijoux.", + "rule_id": "regle_pluriel_aux_eaux" + } + ], + "hint": "« Bijou » fait partie des noms en -ou qui prennent un -x.", + "explanation": "« Bijou » prend un -x au pluriel : « bijoux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_correction_03.json b/data/exercises/cm1/cm1_pluriel_aux_correction_03.json new file mode 100644 index 0000000..11573cb --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_correction_03.json @@ -0,0 +1,41 @@ +{ + "id": "cm1_pluriel_aux_correction_03", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "pêcheurs", + "correct": true + }, + { + "text": "lavent", + "correct": true + }, + { + "text": "leurs", + "correct": true + }, + { + "text": "bateaus.", + "correct": false, + "expected": "bateaux.", + "rule_id": "regle_pluriel_aux_eaux" + } + ], + "hint": "Le nom « bateau » finit par -eau.", + "explanation": "Les noms en -eau prennent un -x au pluriel : « bateaux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_correction_04.json b/data/exercises/cm1/cm1_pluriel_aux_correction_04.json new file mode 100644 index 0000000..0d2c859 --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_correction_04.json @@ -0,0 +1,57 @@ +{ + "id": "cm1_pluriel_aux_correction_04", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "ouvriers", + "correct": true + }, + { + "text": "ont", + "correct": true + }, + { + "text": "fini", + "correct": true + }, + { + "text": "les", + "correct": true + }, + { + "text": "travails", + "correct": false, + "expected": "travaux", + "rule_id": "regle_pluriel_aux_eaux" + }, + { + "text": "de", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "rue.", + "correct": true + } + ], + "hint": "Le nom « travail » finit par -ail.", + "explanation": "« Travail » fait « travaux » au pluriel.", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_qcm_01.json b/data/exercises/cm1/cm1_pluriel_aux_qcm_01.json new file mode 100644 index 0000000..6370f1f --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_pluriel_aux_qcm_01", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les ... broutent dans le pré.", + "answers": [ + "chevals", + "chevaux", + "chevaus" + ], + "correct_answer": 1, + "hint": "Le nom « cheval » finit par -al.", + "explanation": "Les noms en -al font -aux au pluriel : « chevaux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_qcm_02.json b/data/exercises/cm1/cm1_pluriel_aux_qcm_02.json new file mode 100644 index 0000000..26504be --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_pluriel_aux_qcm_02", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Plusieurs ... naviguent sur le lac.", + "answers": [ + "bateau", + "bateaus", + "bateaux" + ], + "correct_answer": 2, + "hint": "Le nom « bateau » finit par -eau.", + "explanation": "Les noms en -eau prennent un -x au pluriel : « bateaux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_qcm_03.json b/data/exercises/cm1/cm1_pluriel_aux_qcm_03.json new file mode 100644 index 0000000..37dc465 --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_pluriel_aux_qcm_03", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le zoo accueille beaucoup d'... .", + "answers": [ + "animals", + "animaux", + "animaus" + ], + "correct_answer": 1, + "hint": "Le nom « animal » finit par -al.", + "explanation": "Les noms en -al font -aux au pluriel : « animaux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_qcm_04.json b/data/exercises/cm1/cm1_pluriel_aux_qcm_04.json new file mode 100644 index 0000000..917e647 --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_pluriel_aux_qcm_04", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "La reine porte de magnifiques ... .", + "answers": [ + "bijoux", + "bijoues", + "bijous" + ], + "correct_answer": 0, + "hint": "« Bijou » fait partie des noms en -ou qui prennent un -x.", + "explanation": "« Bijou » prend un -x au pluriel : « bijoux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_qcm_05.json b/data/exercises/cm1/cm1_pluriel_aux_qcm_05.json new file mode 100644 index 0000000..54533fc --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_pluriel_aux_qcm_05", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les ouvriers font des ... sur la route.", + "answers": [ + "travaux", + "travails", + "travaus" + ], + "correct_answer": 0, + "hint": "Le nom « travail » finit par -ail.", + "explanation": "« Travail » fait « travaux » au pluriel.", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_qcm_06.json b/data/exercises/cm1/cm1_pluriel_aux_qcm_06.json new file mode 100644 index 0000000..b77a017 --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_pluriel_aux_qcm_06", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "J'ai trouvé trois petits ... sur la plage.", + "answers": [ + "cailloux", + "caillous", + "cailloues" + ], + "correct_answer": 0, + "hint": "« Caillou » fait partie des noms en -ou qui prennent un -x.", + "explanation": "« Caillou » prend un -x au pluriel : « cailloux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_qcm_07.json b/data/exercises/cm1/cm1_pluriel_aux_qcm_07.json new file mode 100644 index 0000000..1f8a786 --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_pluriel_aux_qcm_07", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le facteur apporte les ... du matin.", + "answers": [ + "journals", + "journaux", + "journeaux" + ], + "correct_answer": 1, + "hint": "Le nom « journal » finit par -al.", + "explanation": "Les noms en -al font -aux au pluriel : « journaux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm1/cm1_pluriel_aux_qcm_08.json b/data/exercises/cm1/cm1_pluriel_aux_qcm_08.json new file mode 100644 index 0000000..b725a71 --- /dev/null +++ b/data/exercises/cm1/cm1_pluriel_aux_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "cm1_pluriel_aux_qcm_08", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "rule_id": "regle_pluriel_aux_eaux", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Deux ... se promènent dans la forêt.", + "answers": [ + "oiseau", + "oiseaus", + "oiseaux" + ], + "correct_answer": 2, + "hint": "Le nom « oiseau » finit par -eau.", + "explanation": "Les noms en -eau prennent un -x au pluriel : « oiseaux ».", + "review_tags": [ + "orthographe_cm1", + "pluriel_aux" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_correction_01.json b/data/exercises/cm2/cm2_adverbes_correction_01.json new file mode 100644 index 0000000..cbcb1b8 --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_correction_01.json @@ -0,0 +1,41 @@ +{ + "id": "cm2_adverbes_correction_01", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Il", + "correct": true + }, + { + "text": "traverse", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "rue", + "correct": true + }, + { + "text": "prudamment.", + "correct": false, + "expected": "prudemment.", + "rule_id": "regle_adverbes_ment" + } + ], + "hint": "L'adjectif « prudent » finit par -ent.", + "explanation": "« Prudent » finit par -ent : l'adverbe s'écrit « prudemment ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_correction_02.json b/data/exercises/cm2/cm2_adverbes_correction_02.json new file mode 100644 index 0000000..4af0ebf --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_correction_02.json @@ -0,0 +1,41 @@ +{ + "id": "cm2_adverbes_correction_02", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Elle", + "correct": true + }, + { + "text": "écoute", + "correct": true + }, + { + "text": "attentivemment", + "correct": false, + "expected": "attentivement", + "rule_id": "regle_adverbes_ment" + }, + { + "text": "la", + "correct": true + }, + { + "text": "leçon.", + "correct": true + } + ], + "hint": "L'adjectif « attentif » donne « attentive » au féminin.", + "explanation": "« Attentive » + -ment : l'adverbe s'écrit « attentivement ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_correction_03.json b/data/exercises/cm2/cm2_adverbes_correction_03.json new file mode 100644 index 0000000..12bcf1b --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_adverbes_correction_03", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "chien", + "correct": true + }, + { + "text": "aboie", + "correct": true + }, + { + "text": "bruyemment", + "correct": false, + "expected": "bruyamment", + "rule_id": "regle_adverbes_ment" + }, + { + "text": "dans", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "cour.", + "correct": true + } + ], + "hint": "L'adjectif « bruyant » finit par -ant.", + "explanation": "« Bruyant » finit par -ant : l'adverbe s'écrit « bruyamment ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_correction_04.json b/data/exercises/cm2/cm2_adverbes_correction_04.json new file mode 100644 index 0000000..5aab709 --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_correction_04.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_adverbes_correction_04", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "héros", + "correct": true + }, + { + "text": "se", + "correct": true + }, + { + "text": "bat", + "correct": true + }, + { + "text": "vaillemment", + "correct": false, + "expected": "vaillamment", + "rule_id": "regle_adverbes_ment" + }, + { + "text": "jusqu'au", + "correct": true + }, + { + "text": "bout.", + "correct": true + } + ], + "hint": "L'adjectif « vaillant » finit par -ant.", + "explanation": "« Vaillant » finit par -ant : l'adverbe s'écrit « vaillamment ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_qcm_01.json b/data/exercises/cm2/cm2_adverbes_qcm_01.json new file mode 100644 index 0000000..7cc850a --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_adverbes_qcm_01", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le chat guette ... la souris.", + "answers": [ + "patiemment", + "patiamment", + "patiement" + ], + "correct_answer": 0, + "hint": "L'adjectif « patient » finit par -ent.", + "explanation": "« Patient » finit par -ent : l'adverbe s'écrit « patiemment ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_qcm_02.json b/data/exercises/cm2/cm2_adverbes_qcm_02.json new file mode 100644 index 0000000..0193379 --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_adverbes_qcm_02", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il marche ... dans le couloir.", + "answers": [ + "prudemment", + "prudamment", + "prudement" + ], + "correct_answer": 0, + "hint": "L'adjectif « prudent » finit par -ent.", + "explanation": "« Prudent » finit par -ent : l'adverbe s'écrit « prudemment ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_qcm_03.json b/data/exercises/cm2/cm2_adverbes_qcm_03.json new file mode 100644 index 0000000..3358669 --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_adverbes_qcm_03", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Elle parle ... devant la classe.", + "answers": [ + "courammant", + "courement", + "couramment" + ], + "correct_answer": 2, + "hint": "L'adjectif « courant » finit par -ant.", + "explanation": "« Courant » finit par -ant : l'adverbe s'écrit « couramment ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_qcm_04.json b/data/exercises/cm2/cm2_adverbes_qcm_04.json new file mode 100644 index 0000000..a78b010 --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_adverbes_qcm_04", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le chevalier combat ... pour défendre le roi.", + "answers": [ + "vaillemment", + "vaillament", + "vaillamment" + ], + "correct_answer": 2, + "hint": "L'adjectif « vaillant » finit par -ant.", + "explanation": "« Vaillant » finit par -ant : l'adverbe s'écrit « vaillamment ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_qcm_05.json b/data/exercises/cm2/cm2_adverbes_qcm_05.json new file mode 100644 index 0000000..445a55c --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_adverbes_qcm_05", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "L'élève répond ... à la question.", + "answers": [ + "intelligement", + "intelligamment", + "intelligemment" + ], + "correct_answer": 2, + "hint": "L'adjectif « intelligent » finit par -ent.", + "explanation": "« Intelligent » finit par -ent : l'adverbe s'écrit « intelligemment ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_qcm_06.json b/data/exercises/cm2/cm2_adverbes_qcm_06.json new file mode 100644 index 0000000..4abb65f --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_adverbes_qcm_06", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le sportif court ... vers l'arrivée.", + "answers": [ + "rapidement", + "rapidemment", + "rapidamment" + ], + "correct_answer": 0, + "hint": "L'adjectif « rapide » finit par -e : on ajoute -ment.", + "explanation": "« Rapide » finit par -e : l'adverbe s'écrit « rapidement ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_qcm_07.json b/data/exercises/cm2/cm2_adverbes_qcm_07.json new file mode 100644 index 0000000..377dc22 --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_adverbes_qcm_07", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le médecin examine ... le malade.", + "answers": [ + "attentivement", + "attentivemment", + "attentivamment" + ], + "correct_answer": 0, + "hint": "L'adjectif « attentif » donne « attentive » au féminin : on ajoute -ment.", + "explanation": "« Attentive » + -ment : l'adverbe s'écrit « attentivement ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_adverbes_qcm_08.json b/data/exercises/cm2/cm2_adverbes_qcm_08.json new file mode 100644 index 0000000..86876bf --- /dev/null +++ b/data/exercises/cm2/cm2_adverbes_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_adverbes_qcm_08", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adverbes_ment", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il se bat ... pour gagner.", + "answers": [ + "violamment", + "violemment", + "violement" + ], + "correct_answer": 1, + "hint": "L'adjectif « violent » finit par -ent.", + "explanation": "« Violent » finit par -ent : l'adverbe s'écrit « violemment ».", + "review_tags": [ + "orthographe_cm2", + "adverbes" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_correction_01.json b/data/exercises/cm2/cm2_couleurs_correction_01.json new file mode 100644 index 0000000..77f64f6 --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_correction_01.json @@ -0,0 +1,37 @@ +{ + "id": "cm2_couleurs_correction_01", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Mes", + "correct": true + }, + { + "text": "chaussettes", + "correct": true + }, + { + "text": "sont", + "correct": true + }, + { + "text": "vert.", + "correct": false, + "expected": "vertes.", + "rule_id": "regle_adjectifs_couleur" + } + ], + "hint": "« Vert » est un vrai adjectif : il s'accorde.", + "explanation": "« Vert » est un adjectif de couleur : il s'accorde, « vertes ».", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_correction_02.json b/data/exercises/cm2/cm2_couleurs_correction_02.json new file mode 100644 index 0000000..c4190cb --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_correction_02.json @@ -0,0 +1,41 @@ +{ + "id": "cm2_couleurs_correction_02", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Elle", + "correct": true + }, + { + "text": "porte", + "correct": true + }, + { + "text": "des", + "correct": true + }, + { + "text": "gants", + "correct": true + }, + { + "text": "oranges.", + "correct": false, + "expected": "orange.", + "rule_id": "regle_adjectifs_couleur" + } + ], + "hint": "« Orange » vient du nom du fruit : il reste invariable.", + "explanation": "« Orange » est un nom employé comme couleur : il reste invariable.", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_correction_03.json b/data/exercises/cm2/cm2_couleurs_correction_03.json new file mode 100644 index 0000000..482d2ef --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_correction_03.json @@ -0,0 +1,41 @@ +{ + "id": "cm2_couleurs_correction_03", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Il", + "correct": true + }, + { + "text": "porte", + "correct": true + }, + { + "text": "des", + "correct": true + }, + { + "text": "chaussures", + "correct": true + }, + { + "text": "marrons.", + "correct": false, + "expected": "marron.", + "rule_id": "regle_adjectifs_couleur" + } + ], + "hint": "« Marron » vient du nom du fruit : il reste invariable.", + "explanation": "« Marron » est un nom employé comme couleur : il reste invariable.", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_correction_04.json b/data/exercises/cm2/cm2_couleurs_correction_04.json new file mode 100644 index 0000000..d259798 --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_correction_04.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_couleurs_correction_04", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Léa", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "des", + "correct": true + }, + { + "text": "rubans", + "correct": true + }, + { + "text": "bleu", + "correct": true + }, + { + "text": "clairs.", + "correct": false, + "expected": "clair.", + "rule_id": "regle_adjectifs_couleur" + } + ], + "hint": "Une couleur précisée par un autre mot reste invariable.", + "explanation": "« Bleu clair » est un adjectif composé : il reste invariable.", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_qcm_01.json b/data/exercises/cm2/cm2_couleurs_qcm_01.json new file mode 100644 index 0000000..3ae91a8 --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_couleurs_qcm_01", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Léa porte des chaussettes ... .", + "answers": [ + "vertes", + "vert" + ], + "correct_answer": 0, + "hint": "« Vert » est un vrai adjectif : il s'accorde.", + "explanation": "« Vert » est un adjectif de couleur : il s'accorde, « vertes ».", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_qcm_02.json b/data/exercises/cm2/cm2_couleurs_qcm_02.json new file mode 100644 index 0000000..9110625 --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_couleurs_qcm_02", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "J'ai acheté deux pulls ... .", + "answers": [ + "rouges", + "rouge" + ], + "correct_answer": 0, + "hint": "« Rouge » est un vrai adjectif : il s'accorde.", + "explanation": "« Rouge » est un adjectif de couleur : il s'accorde, « rouges ».", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_qcm_03.json b/data/exercises/cm2/cm2_couleurs_qcm_03.json new file mode 100644 index 0000000..94fc251 --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_couleurs_qcm_03", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les murs sont ... .", + "answers": [ + "blancs", + "blanc" + ], + "correct_answer": 0, + "hint": "« Blanc » est un vrai adjectif : il s'accorde.", + "explanation": "« Blanc » est un adjectif de couleur : il s'accorde, « blancs ».", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_qcm_04.json b/data/exercises/cm2/cm2_couleurs_qcm_04.json new file mode 100644 index 0000000..75dbe93 --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_couleurs_qcm_04", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il a mis des chaussures ... .", + "answers": [ + "marron", + "marrons" + ], + "correct_answer": 0, + "hint": "« Marron » vient du nom du fruit : il reste invariable.", + "explanation": "« Marron » est un nom employé comme couleur : il reste invariable.", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_qcm_05.json b/data/exercises/cm2/cm2_couleurs_qcm_05.json new file mode 100644 index 0000000..444b928 --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_couleurs_qcm_05", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Mamie tricote des écharpes ... .", + "answers": [ + "oranges", + "orange" + ], + "correct_answer": 1, + "hint": "« Orange » vient du nom du fruit : il reste invariable.", + "explanation": "« Orange » est un nom employé comme couleur : il reste invariable.", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_qcm_06.json b/data/exercises/cm2/cm2_couleurs_qcm_06.json new file mode 100644 index 0000000..5779d8d --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_couleurs_qcm_06", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Elle aime ses rubans bleu ... .", + "answers": [ + "clairs", + "clair" + ], + "correct_answer": 1, + "hint": "Une couleur précisée par un autre mot reste invariable.", + "explanation": "« Bleu clair » est un adjectif composé : il reste invariable.", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_qcm_07.json b/data/exercises/cm2/cm2_couleurs_qcm_07.json new file mode 100644 index 0000000..8673250 --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_couleurs_qcm_07", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Des rideaux vert ... pendent aux fenêtres.", + "answers": [ + "foncé", + "foncés" + ], + "correct_answer": 0, + "hint": "Une couleur précisée par un autre mot reste invariable.", + "explanation": "« Vert foncé » est un adjectif composé : il reste invariable.", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_couleurs_qcm_08.json b/data/exercises/cm2/cm2_couleurs_qcm_08.json new file mode 100644 index 0000000..c5ba370 --- /dev/null +++ b/data/exercises/cm2/cm2_couleurs_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_couleurs_qcm_08", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_adjectifs_couleur", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Elle a des yeux ... .", + "answers": [ + "noisette", + "noisettes" + ], + "correct_answer": 0, + "hint": "« Noisette » vient du nom du fruit : il reste invariable.", + "explanation": "« Noisette » est un nom employé comme couleur : il reste invariable.", + "review_tags": [ + "orthographe_cm2", + "couleurs" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_correction_01.json b/data/exercises/cm2/cm2_futur_cond_correction_01.json new file mode 100644 index 0000000..7296d00 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_correction_01.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_futur_cond_correction_01", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Si", + "correct": true + }, + { + "text": "j'étais", + "correct": true + }, + { + "text": "riche,", + "correct": true + }, + { + "text": "j'achèterai", + "correct": false, + "expected": "achèterais", + "rule_id": "regle_futur_conditionnel" + }, + { + "text": "une", + "correct": true + }, + { + "text": "île.", + "correct": true + } + ], + "hint": "Après « si » + imparfait, on emploie le conditionnel.", + "explanation": "Après « si j'étais », on écrit le conditionnel : « achèterais ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_correction_02.json b/data/exercises/cm2/cm2_futur_cond_correction_02.json new file mode 100644 index 0000000..c0778b5 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_correction_02.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_futur_cond_correction_02", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Demain,", + "correct": true + }, + { + "text": "nous", + "correct": true + }, + { + "text": "partirions", + "correct": false, + "expected": "partirons", + "rule_id": "regle_futur_conditionnel" + }, + { + "text": "tôt", + "correct": true + }, + { + "text": "pour", + "correct": true + }, + { + "text": "le", + "correct": true + }, + { + "text": "volcan.", + "correct": true + } + ], + "hint": "« Demain » : l'action est certaine, c'est le futur.", + "explanation": "L'action est certaine : on écrit le futur « partirons ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_correction_03.json b/data/exercises/cm2/cm2_futur_cond_correction_03.json new file mode 100644 index 0000000..bcb042f --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_futur_cond_correction_03", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "S'il", + "correct": true + }, + { + "text": "pleuvait,", + "correct": true + }, + { + "text": "tu", + "correct": false, + "expected": "resterais", + "rule_id": "regle_futur_conditionnel" + }, + { + "text": "resteras", + "correct": true + }, + { + "text": "à", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "maison.", + "correct": true + } + ], + "hint": "Après « s'il pleuvait » (imparfait), on emploie le conditionnel.", + "explanation": "Après « s'il pleuvait », on écrit le conditionnel : « resterais ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_correction_04.json b/data/exercises/cm2/cm2_futur_cond_correction_04.json new file mode 100644 index 0000000..b425f72 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_correction_04.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_futur_cond_correction_04", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Dès", + "correct": true + }, + { + "text": "qu'il", + "correct": true + }, + { + "text": "arrivera,", + "correct": true + }, + { + "text": "elle", + "correct": true + }, + { + "text": "lui", + "correct": true + }, + { + "text": "parlerait.", + "correct": false, + "expected": "parlera", + "rule_id": "regle_futur_conditionnel" + } + ], + "hint": "Après « dès qu'il arrivera » (futur), on reste au futur.", + "explanation": "Après « dès qu'il arrivera », on écrit le futur : « parlera ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_qcm_01.json b/data/exercises/cm2/cm2_futur_cond_qcm_01.json new file mode 100644 index 0000000..be777d4 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_futur_cond_qcm_01", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Demain, je ... te voir.", + "answers": [ + "viendrais", + "viendrai" + ], + "correct_answer": 1, + "hint": "« Demain » : l'action est certaine, c'est le futur.", + "explanation": "L'action est certaine : on écrit le futur « viendrai ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_qcm_02.json b/data/exercises/cm2/cm2_futur_cond_qcm_02.json new file mode 100644 index 0000000..dd13540 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_futur_cond_qcm_02", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Si j'avais des ailes, je ... jusqu'au volcan.", + "answers": [ + "volerais", + "volerai" + ], + "correct_answer": 0, + "hint": "Après « si » + imparfait, on emploie le conditionnel.", + "explanation": "Après « si j'avais », on écrit le conditionnel : « volerais ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_qcm_03.json b/data/exercises/cm2/cm2_futur_cond_qcm_03.json new file mode 100644 index 0000000..4712419 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_futur_cond_qcm_03", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Ce soir, il ... plus tard que d'habitude.", + "answers": [ + "mangera", + "mangerait" + ], + "correct_answer": 0, + "hint": "« Ce soir » : l'action est certaine, c'est le futur.", + "explanation": "L'action est certaine : on écrit le futur « mangera ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_qcm_04.json b/data/exercises/cm2/cm2_futur_cond_qcm_04.json new file mode 100644 index 0000000..d19b911 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_futur_cond_qcm_04", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Si tu étudiais plus, tu ... ton examen.", + "answers": [ + "réussirais", + "réussiras" + ], + "correct_answer": 0, + "hint": "Après « si » + imparfait, on emploie le conditionnel.", + "explanation": "Après « si tu étudiais », on écrit le conditionnel : « réussirais ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_qcm_05.json b/data/exercises/cm2/cm2_futur_cond_qcm_05.json new file mode 100644 index 0000000..9eb14da --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_futur_cond_qcm_05", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Quand il fera beau, nous ... en forêt.", + "answers": [ + "irions", + "irons" + ], + "correct_answer": 1, + "hint": "Après « quand » + futur, on reste au futur.", + "explanation": "Après « quand il fera », on écrit le futur : « irons ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_qcm_06.json b/data/exercises/cm2/cm2_futur_cond_qcm_06.json new file mode 100644 index 0000000..31bc158 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_futur_cond_qcm_06", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Si nous avions de l'argent, nous ... un bateau.", + "answers": [ + "achèterions", + "achèterons" + ], + "correct_answer": 0, + "hint": "Après « si » + imparfait, on emploie le conditionnel.", + "explanation": "Après « si nous avions », on écrit le conditionnel : « achèterions ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_qcm_07.json b/data/exercises/cm2/cm2_futur_cond_qcm_07.json new file mode 100644 index 0000000..5c123f1 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_futur_cond_qcm_07", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Ils ... du feu s'ils avaient du bois.", + "answers": [ + "feront", + "feraient" + ], + "correct_answer": 1, + "hint": "Après « s'ils avaient » (imparfait), on emploie le conditionnel.", + "explanation": "Après « s'ils avaient », on écrit le conditionnel : « feraient ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_futur_cond_qcm_08.json b/data/exercises/cm2/cm2_futur_cond_qcm_08.json new file mode 100644 index 0000000..c3a6a46 --- /dev/null +++ b/data/exercises/cm2/cm2_futur_cond_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_futur_cond_qcm_08", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_futur_conditionnel", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Si elle le pouvait, elle ... le tour du monde.", + "answers": [ + "ferait", + "fera" + ], + "correct_answer": 0, + "hint": "Après « si » + imparfait, on emploie le conditionnel.", + "explanation": "Après « si elle le pouvait », on écrit le conditionnel : « ferait ».", + "review_tags": [ + "verbes_cm2", + "futur_cond" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_correction_01.json b/data/exercises/cm2/cm2_participe_cod_correction_01.json new file mode 100644 index 0000000..c1df319 --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_correction_01.json @@ -0,0 +1,57 @@ +{ + "id": "cm2_participe_cod_correction_01", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "framboises", + "correct": true + }, + { + "text": "que", + "correct": true + }, + { + "text": "ma", + "correct": true + }, + { + "text": "sœur", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "cueilli", + "correct": false, + "expected": "cueillies", + "rule_id": "regle_participe_cod_avant" + }, + { + "text": "sont", + "correct": true + }, + { + "text": "mûres.", + "correct": true + } + ], + "hint": "Les framboises (que) sont placées avant le verbe : le participe s'accorde.", + "explanation": "Le complément « que » (= les framboises) est avant : « cueillies ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_correction_02.json b/data/exercises/cm2/cm2_participe_cod_correction_02.json new file mode 100644 index 0000000..4126ee9 --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_correction_02.json @@ -0,0 +1,53 @@ +{ + "id": "cm2_participe_cod_correction_02", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Sophie", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "mangées", + "correct": false, + "expected": "mangé", + "rule_id": "regle_participe_cod_avant" + }, + { + "text": "toutes", + "correct": true + }, + { + "text": "les", + "correct": true + }, + { + "text": "cerises", + "correct": true + }, + { + "text": "du", + "correct": true + }, + { + "text": "panier.", + "correct": true + } + ], + "hint": "Les cerises sont placées après le verbe : le participe ne s'accorde pas.", + "explanation": "Le complément est après le verbe : le participe reste « mangé ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_correction_03.json b/data/exercises/cm2/cm2_participe_cod_correction_03.json new file mode 100644 index 0000000..de7c15e --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_participe_cod_correction_03", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "La", + "correct": true + }, + { + "text": "chanson", + "correct": true + }, + { + "text": "qu'il", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "chanté", + "correct": false, + "expected": "chantée", + "rule_id": "regle_participe_cod_avant" + }, + { + "text": "était", + "correct": true + }, + { + "text": "jolie.", + "correct": true + } + ], + "hint": "La chanson (que) est placée avant le verbe : le participe s'accorde.", + "explanation": "Le complément « qu' » (= la chanson) est avant : « chantée ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_correction_04.json b/data/exercises/cm2/cm2_participe_cod_correction_04.json new file mode 100644 index 0000000..44e8376 --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_correction_04.json @@ -0,0 +1,53 @@ +{ + "id": "cm2_participe_cod_correction_04", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "lettres", + "correct": true + }, + { + "text": "que", + "correct": true + }, + { + "text": "j'ai", + "correct": true + }, + { + "text": "écrit", + "correct": false, + "expected": "écrites", + "rule_id": "regle_participe_cod_avant" + }, + { + "text": "hier", + "correct": true + }, + { + "text": "sont", + "correct": true + }, + { + "text": "parties.", + "correct": true + } + ], + "hint": "Les lettres (que) sont placées avant le verbe : le participe s'accorde.", + "explanation": "Le complément « que » (= les lettres) est avant : « écrites ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_qcm_01.json b/data/exercises/cm2/cm2_participe_cod_qcm_01.json new file mode 100644 index 0000000..379f253 --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_participe_cod_qcm_01", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Léa a ... des fleurs.", + "answers": [ + "cueillies", + "cueilli" + ], + "correct_answer": 1, + "hint": "Les fleurs sont placées après le verbe : le participe ne s'accorde pas.", + "explanation": "Le complément est après le verbe : le participe reste « cueilli ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_qcm_02.json b/data/exercises/cm2/cm2_participe_cod_qcm_02.json new file mode 100644 index 0000000..c2f42a4 --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_participe_cod_qcm_02", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les fleurs que Léa a ... sont belles.", + "answers": [ + "cueillies", + "cueilli" + ], + "correct_answer": 0, + "hint": "Les fleurs (que) sont placées avant le verbe : le participe s'accorde.", + "explanation": "Le complément « que » (= les fleurs) est avant : « cueillies ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_qcm_03.json b/data/exercises/cm2/cm2_participe_cod_qcm_03.json new file mode 100644 index 0000000..8cc9495 --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_participe_cod_qcm_03", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Paul a ... les pommes.", + "answers": [ + "mangées", + "mangé" + ], + "correct_answer": 1, + "hint": "Les pommes sont placées après le verbe : le participe ne s'accorde pas.", + "explanation": "Le complément est après le verbe : le participe reste « mangé ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_qcm_04.json b/data/exercises/cm2/cm2_participe_cod_qcm_04.json new file mode 100644 index 0000000..708e8da --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_participe_cod_qcm_04", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les pommes que Paul a ... étaient bonnes.", + "answers": [ + "mangées", + "mangé" + ], + "correct_answer": 0, + "hint": "Les pommes (que) sont placées avant le verbe : le participe s'accorde.", + "explanation": "Le complément « que » (= les pommes) est avant : « mangées ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_qcm_05.json b/data/exercises/cm2/cm2_participe_cod_qcm_05.json new file mode 100644 index 0000000..6b53629 --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_participe_cod_qcm_05", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "La lettre que j'ai ... est partie.", + "answers": [ + "écrite", + "écrit" + ], + "correct_answer": 0, + "hint": "La lettre (que) est placée avant le verbe : le participe s'accorde.", + "explanation": "Le complément « que » (= la lettre) est avant : « écrite ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_qcm_06.json b/data/exercises/cm2/cm2_participe_cod_qcm_06.json new file mode 100644 index 0000000..17bb5e0 --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_participe_cod_qcm_06", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Max a ... plusieurs lettres.", + "answers": [ + "écrites", + "écrit" + ], + "correct_answer": 1, + "hint": "Les lettres sont placées après le verbe : le participe ne s'accorde pas.", + "explanation": "Le complément est après le verbe : le participe reste « écrit ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_qcm_07.json b/data/exercises/cm2/cm2_participe_cod_qcm_07.json new file mode 100644 index 0000000..55c363a --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_participe_cod_qcm_07", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les photos qu'elle a ... sont réussies.", + "answers": [ + "pris", + "prises" + ], + "correct_answer": 1, + "hint": "Les photos (que) sont placées avant le verbe : le participe s'accorde.", + "explanation": "Le complément « que » (= les photos) est avant : « prises ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_participe_cod_qcm_08.json b/data/exercises/cm2/cm2_participe_cod_qcm_08.json new file mode 100644 index 0000000..f3081b3 --- /dev/null +++ b/data/exercises/cm2/cm2_participe_cod_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_participe_cod_qcm_08", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_participe_cod_avant", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Quelle belle histoire il a ... !", + "answers": [ + "raconté", + "racontée" + ], + "correct_answer": 1, + "hint": "« Quelle belle histoire » est placé avant le verbe : le participe s'accorde.", + "explanation": "Le complément est avant le verbe : « racontée ».", + "review_tags": [ + "verbes_cm2", + "participe_cod" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_correction_01.json b/data/exercises/cm2/cm2_passe_simple_correction_01.json new file mode 100644 index 0000000..de5b5c9 --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_correction_01.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_passe_simple_correction_01", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Soudain,", + "correct": true + }, + { + "text": "le", + "correct": true + }, + { + "text": "héros", + "correct": true + }, + { + "text": "entrat", + "correct": false, + "expected": "entra", + "rule_id": "regle_passe_simple" + }, + { + "text": "dans", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "grotte.", + "correct": true + } + ], + "hint": "Au passé simple, un verbe en -er finit par -a.", + "explanation": "À la 3e personne du singulier, un verbe en -er finit par -a : « il entra ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_correction_02.json b/data/exercises/cm2/cm2_passe_simple_correction_02.json new file mode 100644 index 0000000..57cd30b --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_correction_02.json @@ -0,0 +1,53 @@ +{ + "id": "cm2_passe_simple_correction_02", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Les", + "correct": true + }, + { + "text": "soldats", + "correct": true + }, + { + "text": "traversa", + "correct": false, + "expected": "traversèrent", + "rule_id": "regle_passe_simple" + }, + { + "text": "la", + "correct": true + }, + { + "text": "rivière", + "correct": true + }, + { + "text": "à", + "correct": true + }, + { + "text": "la", + "correct": true + }, + { + "text": "nage.", + "correct": true + } + ], + "hint": "Plusieurs soldats : le passé simple finit par -èrent.", + "explanation": "Au passé simple, ils : « ils traversèrent ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_correction_03.json b/data/exercises/cm2/cm2_passe_simple_correction_03.json new file mode 100644 index 0000000..f4a1755 --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_passe_simple_correction_03", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "roi", + "correct": true + }, + { + "text": "finissa", + "correct": false, + "expected": "finit", + "rule_id": "regle_passe_simple" + }, + { + "text": "son", + "correct": true + }, + { + "text": "repas", + "correct": true + }, + { + "text": "en", + "correct": true + }, + { + "text": "silence.", + "correct": true + } + ], + "hint": "Un verbe en -ir finit par -it au passé simple.", + "explanation": "Au passé simple, il : « il finit ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_correction_04.json b/data/exercises/cm2/cm2_passe_simple_correction_04.json new file mode 100644 index 0000000..82f9fb9 --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_correction_04.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_passe_simple_correction_04", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Elles", + "correct": true + }, + { + "text": "ouvrit", + "correct": false, + "expected": "ouvrirent", + "rule_id": "regle_passe_simple" + }, + { + "text": "la", + "correct": true + }, + { + "text": "porte", + "correct": true + }, + { + "text": "avec", + "correct": true + }, + { + "text": "précaution.", + "correct": true + } + ], + "hint": "Plusieurs filles : le passé simple finit par -irent.", + "explanation": "Au passé simple, elles : « elles ouvrirent ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_qcm_01.json b/data/exercises/cm2/cm2_passe_simple_qcm_01.json new file mode 100644 index 0000000..f6e318e --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_passe_simple_qcm_01", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le roi ... le château ce matin-là.", + "answers": [ + "quitte", + "quittait", + "quitta" + ], + "correct_answer": 2, + "hint": "Une action rapide au passé : le passé simple finit par -a.", + "explanation": "Au passé simple, un verbe en -er finit par -a : « il quitta ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_qcm_02.json b/data/exercises/cm2/cm2_passe_simple_qcm_02.json new file mode 100644 index 0000000..3dfd889 --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_passe_simple_qcm_02", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Soudain, la lave ... de la montagne.", + "answers": [ + "jaillit", + "jaillissait", + "jaillie" + ], + "correct_answer": 0, + "hint": "Une action soudaine : le passé simple d'un verbe en -ir finit par -it.", + "explanation": "Au passé simple, un verbe en -ir finit par -it : « elle jaillit ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_qcm_03.json b/data/exercises/cm2/cm2_passe_simple_qcm_03.json new file mode 100644 index 0000000..9560832 --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_passe_simple_qcm_03", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le chevalier ... sur son cheval.", + "answers": [ + "monta", + "montait", + "monté" + ], + "correct_answer": 0, + "hint": "Une action rapide au passé : le passé simple finit par -a.", + "explanation": "Au passé simple, un verbe en -er finit par -a : « il monta ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_qcm_04.json b/data/exercises/cm2/cm2_passe_simple_qcm_04.json new file mode 100644 index 0000000..60fb892 --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_passe_simple_qcm_04", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les villageois ... le volcan avec crainte.", + "answers": [ + "regardaient", + "regardant", + "regardèrent" + ], + "correct_answer": 2, + "hint": "Plusieurs villageois : le passé simple finit par -èrent.", + "explanation": "Au passé simple, ils : un verbe en -er finit par -èrent : « ils regardèrent ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_qcm_05.json b/data/exercises/cm2/cm2_passe_simple_qcm_05.json new file mode 100644 index 0000000..470e6b3 --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_passe_simple_qcm_05", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Alors, le dragon ... un grand cri.", + "answers": [ + "poussa", + "pousser", + "poussait" + ], + "correct_answer": 0, + "hint": "Une action rapide au passé : le passé simple finit par -a.", + "explanation": "Au passé simple, un verbe en -er finit par -a : « il poussa ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_qcm_06.json b/data/exercises/cm2/cm2_passe_simple_qcm_06.json new file mode 100644 index 0000000..853a465 --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_passe_simple_qcm_06", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les enfants ... vers la cabane.", + "answers": [ + "couraient", + "courant", + "coururent" + ], + "correct_answer": 2, + "hint": "Plusieurs enfants, une action soudaine : le passé simple finit par -urent.", + "explanation": "Au passé simple, ils : « ils coururent ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_qcm_07.json b/data/exercises/cm2/cm2_passe_simple_qcm_07.json new file mode 100644 index 0000000..cd41f7b --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_passe_simple_qcm_07", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Elles ... leur travail avant la nuit.", + "answers": [ + "finissaient", + "finies", + "finirent" + ], + "correct_answer": 2, + "hint": "Plusieurs filles : le passé simple d'un verbe en -ir finit par -irent.", + "explanation": "Au passé simple, elles : un verbe en -ir finit par -irent : « elles finirent ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_passe_simple_qcm_08.json b/data/exercises/cm2/cm2_passe_simple_qcm_08.json new file mode 100644 index 0000000..a041ce7 --- /dev/null +++ b/data/exercises/cm2/cm2_passe_simple_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_passe_simple_qcm_08", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "rule_id": "regle_passe_simple", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le héros ... la princesse.", + "answers": [ + "sauva", + "sauvait", + "sauvé" + ], + "correct_answer": 0, + "hint": "Une action rapide au passé : le passé simple finit par -a.", + "explanation": "Au passé simple, un verbe en -er finit par -a : « il sauva ».", + "review_tags": [ + "verbes_cm2", + "passe_simple" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_correction_01.json b/data/exercises/cm2/cm2_plutot_correction_01.json new file mode 100644 index 0000000..0817a11 --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_correction_01.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_plutot_correction_01", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Léa", + "correct": true + }, + { + "text": "est", + "correct": true + }, + { + "text": "partie", + "correct": true + }, + { + "text": "plutôt", + "correct": false, + "expected": "plus tôt", + "rule_id": "regle_plutot_plus_tot" + }, + { + "text": "que", + "correct": true + }, + { + "text": "prévu.", + "correct": true + } + ], + "hint": "Remplace par « plus tard » : « plus tard que prévu » a du sens.", + "explanation": "On peut dire « plus tard » : on écrit « plus tôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_correction_02.json b/data/exercises/cm2/cm2_plutot_correction_02.json new file mode 100644 index 0000000..3cdc413 --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_correction_02.json @@ -0,0 +1,53 @@ +{ + "id": "cm2_plutot_correction_02", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Je", + "correct": true + }, + { + "text": "préfère", + "correct": true + }, + { + "text": "plus", + "correct": false, + "expected": "plutôt", + "rule_id": "regle_plutot_plus_tot" + }, + { + "text": "tôt", + "correct": true + }, + { + "text": "le", + "correct": true + }, + { + "text": "thé", + "correct": true + }, + { + "text": "au", + "correct": true + }, + { + "text": "café.", + "correct": true + } + ], + "hint": "Remplace par « plus tard » : la phrase n'a pas de sens.", + "explanation": "On exprime une préférence : on écrit « plutôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_correction_03.json b/data/exercises/cm2/cm2_plutot_correction_03.json new file mode 100644 index 0000000..85f7f37 --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_correction_03.json @@ -0,0 +1,41 @@ +{ + "id": "cm2_plutot_correction_03", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Réveille-toi", + "correct": true + }, + { + "text": "plutôt", + "correct": false, + "expected": "plus tôt", + "rule_id": "regle_plutot_plus_tot" + }, + { + "text": "que", + "correct": true + }, + { + "text": "d'habitude", + "correct": true + }, + { + "text": "demain.", + "correct": true + } + ], + "hint": "Remplace par « plus tard » : « plus tard que d'habitude » a du sens.", + "explanation": "On peut dire « plus tard » : on écrit « plus tôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_correction_04.json b/data/exercises/cm2/cm2_plutot_correction_04.json new file mode 100644 index 0000000..b18eba1 --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_correction_04.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_plutot_correction_04", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Ce", + "correct": true + }, + { + "text": "gâteau", + "correct": true + }, + { + "text": "est", + "correct": true + }, + { + "text": "plus", + "correct": false, + "expected": "plutôt", + "rule_id": "regle_plutot_plus_tot" + }, + { + "text": "tôt", + "correct": true + }, + { + "text": "bon.", + "correct": true + } + ], + "hint": "Remplace par « plus tard » : la phrase n'a pas de sens.", + "explanation": "On nuance : on écrit « plutôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_qcm_01.json b/data/exercises/cm2/cm2_plutot_qcm_01.json new file mode 100644 index 0000000..9eae83d --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_plutot_qcm_01", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je prends ... du thé que du café.", + "answers": [ + "plutôt", + "plus tôt" + ], + "correct_answer": 0, + "hint": "Remplace par « plus tard » : la phrase n'a pas de sens.", + "explanation": "On exprime une préférence : on écrit « plutôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_qcm_02.json b/data/exercises/cm2/cm2_plutot_qcm_02.json new file mode 100644 index 0000000..1e96b8e --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_plutot_qcm_02", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Demain, il faut se lever ... .", + "answers": [ + "plus tôt", + "plutôt" + ], + "correct_answer": 0, + "hint": "Remplace par « plus tard » : « se lever plus tard » a du sens.", + "explanation": "On peut dire « plus tard » : on écrit « plus tôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_qcm_03.json b/data/exercises/cm2/cm2_plutot_qcm_03.json new file mode 100644 index 0000000..d32ecb3 --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_plutot_qcm_03", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il fait ... froid ce matin.", + "answers": [ + "plutôt", + "plus tôt" + ], + "correct_answer": 0, + "hint": "Remplace par « plus tard » : la phrase n'a pas de sens.", + "explanation": "On nuance : on écrit « plutôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_qcm_04.json b/data/exercises/cm2/cm2_plutot_qcm_04.json new file mode 100644 index 0000000..9e87749 --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_plutot_qcm_04", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le train est arrivé ... que prévu.", + "answers": [ + "plus tôt", + "plutôt" + ], + "correct_answer": 0, + "hint": "Remplace par « plus tard » : « plus tard que prévu » a du sens.", + "explanation": "On peut dire « plus tard » : on écrit « plus tôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_qcm_05.json b/data/exercises/cm2/cm2_plutot_qcm_05.json new file mode 100644 index 0000000..8916645 --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_plutot_qcm_05", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Ce film est ... drôle.", + "answers": [ + "plus tôt", + "plutôt" + ], + "correct_answer": 1, + "hint": "Remplace par « plus tard » : la phrase n'a pas de sens.", + "explanation": "On nuance : on écrit « plutôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_qcm_06.json b/data/exercises/cm2/cm2_plutot_qcm_06.json new file mode 100644 index 0000000..3777ddf --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_plutot_qcm_06", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Si tu viens ... , nous pourrons jouer.", + "answers": [ + "plutôt", + "plus tôt" + ], + "correct_answer": 1, + "hint": "Remplace par « plus tard » : « si tu viens plus tard » a du sens.", + "explanation": "On peut dire « plus tard » : on écrit « plus tôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_qcm_07.json b/data/exercises/cm2/cm2_plutot_qcm_07.json new file mode 100644 index 0000000..c016367 --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_plutot_qcm_07", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Elle aime ... la mer que la montagne.", + "answers": [ + "plus tôt", + "plutôt" + ], + "correct_answer": 1, + "hint": "Remplace par « plus tard » : la phrase n'a pas de sens.", + "explanation": "On exprime une préférence : on écrit « plutôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_plutot_qcm_08.json b/data/exercises/cm2/cm2_plutot_qcm_08.json new file mode 100644 index 0000000..a87d18e --- /dev/null +++ b/data/exercises/cm2/cm2_plutot_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_plutot_qcm_08", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_plutot_plus_tot", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je me couche ... le samedi soir.", + "answers": [ + "plutôt", + "plus tôt" + ], + "correct_answer": 1, + "hint": "Remplace par « plus tard » : « je me couche plus tard » a du sens.", + "explanation": "On peut dire « plus tard » : on écrit « plus tôt ».", + "review_tags": [ + "homophones_cm2", + "plutot" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_correction_01.json b/data/exercises/cm2/cm2_quand_quant_correction_01.json new file mode 100644 index 0000000..4ed628d --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_correction_01.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_quand_quant_correction_01", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Quant", + "correct": false, + "expected": "Quand", + "rule_id": "regle_quand_quant_qu_en" + }, + { + "text": "il", + "correct": true + }, + { + "text": "fait", + "correct": true + }, + { + "text": "beau,", + "correct": true + }, + { + "text": "nous", + "correct": true + }, + { + "text": "jouons", + "correct": true + }, + { + "text": "dehors.", + "correct": true + } + ], + "hint": "Remplace par « lorsque » : « lorsqu'il fait beau » a du sens.", + "explanation": "On peut dire « lorsque » : on écrit « quand ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_correction_02.json b/data/exercises/cm2/cm2_quand_quant_correction_02.json new file mode 100644 index 0000000..07f96e1 --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_correction_02.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_quand_quant_correction_02", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Quand", + "correct": false, + "expected": "Quant", + "rule_id": "regle_quand_quant_qu_en" + }, + { + "text": "à", + "correct": true + }, + { + "text": "ma", + "correct": true + }, + { + "text": "sœur,", + "correct": true + }, + { + "text": "elle", + "correct": true + }, + { + "text": "dort", + "correct": true + }, + { + "text": "encore.", + "correct": true + } + ], + "hint": "Remplace par « en ce qui concerne ».", + "explanation": "On peut dire « en ce qui concerne » : on écrit « quant ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_correction_03.json b/data/exercises/cm2/cm2_quand_quant_correction_03.json new file mode 100644 index 0000000..aca355a --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_correction_03.json @@ -0,0 +1,41 @@ +{ + "id": "cm2_quand_quant_correction_03", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Appelle-moi", + "correct": true + }, + { + "text": "quant", + "correct": false, + "expected": "quand", + "rule_id": "regle_quand_quant_qu_en" + }, + { + "text": "tu", + "correct": true + }, + { + "text": "seras", + "correct": true + }, + { + "text": "prêt.", + "correct": true + } + ], + "hint": "Remplace par « lorsque » : « lorsque tu seras prêt » a du sens.", + "explanation": "On peut dire « lorsque » : on écrit « quand ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_correction_04.json b/data/exercises/cm2/cm2_quand_quant_correction_04.json new file mode 100644 index 0000000..4fc680b --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_correction_04.json @@ -0,0 +1,57 @@ +{ + "id": "cm2_quand_quant_correction_04", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Mamie", + "correct": true + }, + { + "text": "dit", + "correct": true + }, + { + "text": "toujours", + "correct": true + }, + { + "text": "quand", + "correct": false, + "expected": "qu'en", + "rule_id": "regle_quand_quant_qu_en" + }, + { + "text": "hiver", + "correct": true + }, + { + "text": "il", + "correct": true + }, + { + "text": "faut", + "correct": true + }, + { + "text": "se", + "correct": true + }, + { + "text": "couvrir.", + "correct": true + } + ], + "hint": "Il y a « que » + « en » : « elle dit que, en hiver ».", + "explanation": "C'est « que » + « en » : on écrit « qu'en ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_qcm_01.json b/data/exercises/cm2/cm2_quand_quant_qcm_01.json new file mode 100644 index 0000000..0b9fb55 --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quand_quant_qcm_01", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... la nuit tombe, les étoiles apparaissent.", + "answers": [ + "Quant", + "Quand" + ], + "correct_answer": 1, + "hint": "Remplace par « lorsque » : « lorsque la nuit tombe » a du sens.", + "explanation": "On peut dire « lorsque » : on écrit « quand ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_qcm_02.json b/data/exercises/cm2/cm2_quand_quant_qcm_02.json new file mode 100644 index 0000000..797dbde --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quand_quant_qcm_02", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je te téléphonerai ... je serai arrivé.", + "answers": [ + "quand", + "quant" + ], + "correct_answer": 0, + "hint": "Remplace par « lorsque » : « lorsque je serai arrivé » a du sens.", + "explanation": "On peut dire « lorsque » : on écrit « quand ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_qcm_03.json b/data/exercises/cm2/cm2_quand_quant_qcm_03.json new file mode 100644 index 0000000..cf99555 --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quand_quant_qcm_03", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... à moi, je préfère le chocolat.", + "answers": [ + "Quand", + "Quant" + ], + "correct_answer": 1, + "hint": "Remplace par « en ce qui concerne » : la phrase a du sens.", + "explanation": "On peut dire « en ce qui concerne » : on écrit « quant ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_qcm_04.json b/data/exercises/cm2/cm2_quand_quant_qcm_04.json new file mode 100644 index 0000000..daf8804 --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quand_quant_qcm_04", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Léa sourit ... elle voit son chien.", + "answers": [ + "quand", + "quant" + ], + "correct_answer": 0, + "hint": "Remplace par « lorsque » : « lorsqu'elle voit » a du sens.", + "explanation": "On peut dire « lorsque » : on écrit « quand ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_qcm_05.json b/data/exercises/cm2/cm2_quand_quant_qcm_05.json new file mode 100644 index 0000000..42cd733 --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_quand_quant_qcm_05", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il sait bien ... hiver les jours sont courts.", + "answers": [ + "quant", + "quand", + "qu'en" + ], + "correct_answer": 2, + "hint": "Il y a « que » + « en » : « il sait que, en hiver ».", + "explanation": "C'est « que » + « en » : on écrit « qu'en ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_qcm_06.json b/data/exercises/cm2/cm2_quand_quant_qcm_06.json new file mode 100644 index 0000000..1483e79 --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quand_quant_qcm_06", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... à Paul, il est déjà parti.", + "answers": [ + "Quand", + "Quant" + ], + "correct_answer": 1, + "hint": "Remplace par « en ce qui concerne ».", + "explanation": "On peut dire « en ce qui concerne » : on écrit « quant ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_qcm_07.json b/data/exercises/cm2/cm2_quand_quant_qcm_07.json new file mode 100644 index 0000000..1dd0c71 --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_quand_quant_qcm_07", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je pense ... été il fait chaud ici.", + "answers": [ + "quand", + "quant", + "qu'en" + ], + "correct_answer": 2, + "hint": "Il y a « que » + « en » : « je pense que, en été ».", + "explanation": "C'est « que » + « en » : on écrit « qu'en ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quand_quant_qcm_08.json b/data/exercises/cm2/cm2_quand_quant_qcm_08.json new file mode 100644 index 0000000..a8c3f67 --- /dev/null +++ b/data/exercises/cm2/cm2_quand_quant_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quand_quant_qcm_08", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quand_quant_qu_en", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... tu auras fini, appelle-moi.", + "answers": [ + "Quant", + "Quand" + ], + "correct_answer": 1, + "hint": "Remplace par « lorsque » : « lorsque tu auras fini » a du sens.", + "explanation": "On peut dire « lorsque » : on écrit « quand ».", + "review_tags": [ + "homophones_cm2", + "quand_quant" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_correction_01.json b/data/exercises/cm2/cm2_quel_qu_elle_correction_01.json new file mode 100644 index 0000000..15a9f05 --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_correction_01.json @@ -0,0 +1,33 @@ +{ + "id": "cm2_quel_qu_elle_correction_01", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Qu'elle", + "correct": false, + "expected": "Quelle", + "rule_id": "regle_quel_qu_elle" + }, + { + "text": "belle", + "correct": true + }, + { + "text": "journée !", + "correct": true + } + ], + "hint": "Remplace par « qu'il » : la phrase n'a pas de sens.", + "explanation": "« Quelle » accompagne le nom « journée » : on écrit « quelle ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_correction_02.json b/data/exercises/cm2/cm2_quel_qu_elle_correction_02.json new file mode 100644 index 0000000..ae6d10f --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_correction_02.json @@ -0,0 +1,41 @@ +{ + "id": "cm2_quel_qu_elle_correction_02", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Je", + "correct": true + }, + { + "text": "pense", + "correct": true + }, + { + "text": "quelle", + "correct": false, + "expected": "qu'elle", + "rule_id": "regle_quel_qu_elle" + }, + { + "text": "viendra", + "correct": true + }, + { + "text": "demain.", + "correct": true + } + ], + "hint": "Remplace par « qu'il » : « je pense qu'il viendra » a du sens.", + "explanation": "On peut dire « qu'il » : on écrit « qu'elle ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_correction_03.json b/data/exercises/cm2/cm2_quel_qu_elle_correction_03.json new file mode 100644 index 0000000..5055dff --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_correction_03.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_quel_qu_elle_correction_03", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Quelle", + "correct": false, + "expected": "Quelles", + "rule_id": "regle_quel_qu_elle" + }, + { + "text": "sont", + "correct": true + }, + { + "text": "les", + "correct": true + }, + { + "text": "couleurs", + "correct": true + }, + { + "text": "de", + "correct": true + }, + { + "text": "ce", + "correct": true + }, + { + "text": "drapeau ?", + "correct": true + } + ], + "hint": "« Quelles » accompagne le nom pluriel « couleurs ».", + "explanation": "Le nom « couleurs » est au pluriel : on écrit « quelles ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_correction_04.json b/data/exercises/cm2/cm2_quel_qu_elle_correction_04.json new file mode 100644 index 0000000..24591e3 --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_correction_04.json @@ -0,0 +1,45 @@ +{ + "id": "cm2_quel_qu_elle_correction_04", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Léa", + "correct": true + }, + { + "text": "m'a", + "correct": true + }, + { + "text": "dit", + "correct": true + }, + { + "text": "quelles", + "correct": false, + "expected": "qu'elles", + "rule_id": "regle_quel_qu_elle" + }, + { + "text": "étaient", + "correct": true + }, + { + "text": "fatiguées.", + "correct": true + } + ], + "hint": "Remplace par « qu'ils » : « il m'a dit qu'ils étaient fatigués » a du sens.", + "explanation": "On peut dire « qu'ils » : on écrit « qu'elles ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_qcm_01.json b/data/exercises/cm2/cm2_quel_qu_elle_qcm_01.json new file mode 100644 index 0000000..b7e9628 --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_qcm_01.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quel_qu_elle_qcm_01", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... heure est-il ?", + "answers": [ + "Qu'elle", + "Quelle" + ], + "correct_answer": 1, + "hint": "Remplace par « qu'il » : la phrase n'a pas de sens.", + "explanation": "« Quelle » accompagne le nom « heure » : on écrit « quelle ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_qcm_02.json b/data/exercises/cm2/cm2_quel_qu_elle_qcm_02.json new file mode 100644 index 0000000..9f061c8 --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_qcm_02.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quel_qu_elle_qcm_02", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je crois ... est partie.", + "answers": [ + "quelle", + "qu'elle" + ], + "correct_answer": 1, + "hint": "Remplace par « qu'il » : « je crois qu'il est parti » a du sens.", + "explanation": "On peut dire « qu'il » : on écrit « qu'elle ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_qcm_03.json b/data/exercises/cm2/cm2_quel_qu_elle_qcm_03.json new file mode 100644 index 0000000..95287ba --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_qcm_03.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quel_qu_elle_qcm_03", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... beau dessin tu as fait !", + "answers": [ + "Qu'elle", + "Quel" + ], + "correct_answer": 1, + "hint": "Remplace par « qu'il » : la phrase n'a pas de sens.", + "explanation": "« Quel » accompagne le nom « dessin » : on écrit « quel ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_qcm_04.json b/data/exercises/cm2/cm2_quel_qu_elle_qcm_04.json new file mode 100644 index 0000000..6ee637c --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_qcm_04.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quel_qu_elle_qcm_04", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Dis-moi à ... étage tu habites.", + "answers": [ + "quel", + "qu'elle" + ], + "correct_answer": 0, + "hint": "Remplace par « qu'il » : la phrase n'a pas de sens.", + "explanation": "« Quel » accompagne le nom « étage » : on écrit « quel ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_qcm_05.json b/data/exercises/cm2/cm2_quel_qu_elle_qcm_05.json new file mode 100644 index 0000000..6b372c7 --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_qcm_05.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quel_qu_elle_qcm_05", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Papa pense ... a gagné la course.", + "answers": [ + "quelle", + "qu'elle" + ], + "correct_answer": 1, + "hint": "Remplace par « qu'il » : « papa pense qu'il a gagné » a du sens.", + "explanation": "On peut dire « qu'il » : on écrit « qu'elle ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_qcm_06.json b/data/exercises/cm2/cm2_quel_qu_elle_qcm_06.json new file mode 100644 index 0000000..9d0c7e0 --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_qcm_06.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quel_qu_elle_qcm_06", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "... jolies fleurs dans ce vase !", + "answers": [ + "Qu'elles", + "Quelles" + ], + "correct_answer": 1, + "hint": "Remplace par « qu'ils » : la phrase n'a pas de sens.", + "explanation": "« Quelles » accompagne le nom pluriel « fleurs » : on écrit « quelles ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_qcm_07.json b/data/exercises/cm2/cm2_quel_qu_elle_qcm_07.json new file mode 100644 index 0000000..508c517 --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_qcm_07.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quel_qu_elle_qcm_07", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les filles disent ... ont faim.", + "answers": [ + "quelles", + "qu'elles" + ], + "correct_answer": 1, + "hint": "Remplace par « qu'ils » : « les garçons disent qu'ils ont faim » a du sens.", + "explanation": "On peut dire « qu'ils » : on écrit « qu'elles ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_quel_qu_elle_qcm_08.json b/data/exercises/cm2/cm2_quel_qu_elle_qcm_08.json new file mode 100644 index 0000000..7ba2a1d --- /dev/null +++ b/data/exercises/cm2/cm2_quel_qu_elle_qcm_08.json @@ -0,0 +1,23 @@ +{ + "id": "cm2_quel_qu_elle_qcm_08", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "rule_id": "regle_quel_qu_elle", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Je me demande ... robe elle portera.", + "answers": [ + "qu'elle", + "quelle" + ], + "correct_answer": 1, + "hint": "Remplace par « qu'il » : la phrase n'a pas de sens.", + "explanation": "« Quelle » accompagne le nom « robe » : on écrit « quelle ».", + "review_tags": [ + "homophones_cm2", + "quel_qu_elle" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_correction_01.json b/data/exercises/cm2/cm2_tion_sion_correction_01.json new file mode 100644 index 0000000..58d395c --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_correction_01.json @@ -0,0 +1,41 @@ +{ + "id": "cm2_tion_sion_correction_01", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 1, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Fais", + "correct": true + }, + { + "text": "attension", + "correct": false, + "expected": "attention", + "rule_id": "regle_tion_sion_ssion" + }, + { + "text": "en", + "correct": true + }, + { + "text": "descendant", + "correct": true + }, + { + "text": "l'escalier.", + "correct": true + } + ], + "hint": "Le plus souvent, on écrit -tion.", + "explanation": "Le mot « attention » s'écrit avec -tion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_correction_02.json b/data/exercises/cm2/cm2_tion_sion_correction_02.json new file mode 100644 index 0000000..7d7aca8 --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_correction_02.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_tion_sion_correction_02", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "La", + "correct": true + }, + { + "text": "télévition", + "correct": false, + "expected": "télévision", + "rule_id": "regle_tion_sion_ssion" + }, + { + "text": "est", + "correct": true + }, + { + "text": "allumée", + "correct": true + }, + { + "text": "dans", + "correct": true + }, + { + "text": "le", + "correct": true + }, + { + "text": "salon.", + "correct": true + } + ], + "hint": "Ce mot vient du verbe « voir » : il s'écrit avec -sion.", + "explanation": "Le mot « télévision » s'écrit avec -sion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_correction_03.json b/data/exercises/cm2/cm2_tion_sion_correction_03.json new file mode 100644 index 0000000..b697c8a --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_correction_03.json @@ -0,0 +1,41 @@ +{ + "id": "cm2_tion_sion_correction_03", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 2, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Cette", + "correct": true + }, + { + "text": "misson", + "correct": false, + "expected": "mission", + "rule_id": "regle_tion_sion_ssion" + }, + { + "text": "est", + "correct": true + }, + { + "text": "très", + "correct": true + }, + { + "text": "importante.", + "correct": true + } + ], + "hint": "Ce mot a deux s : -ssion.", + "explanation": "Le mot « mission » s'écrit avec -ssion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_correction_04.json b/data/exercises/cm2/cm2_tion_sion_correction_04.json new file mode 100644 index 0000000..916a016 --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_correction_04.json @@ -0,0 +1,49 @@ +{ + "id": "cm2_tion_sion_correction_04", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 3, + "type": "sentence_correction", + "instruction": "Touche le mot qui contient une erreur, puis corrige-le.", + "tokens": [ + { + "text": "Le", + "correct": true + }, + { + "text": "professeur", + "correct": true + }, + { + "text": "a", + "correct": true + }, + { + "text": "posé", + "correct": true + }, + { + "text": "une", + "correct": true + }, + { + "text": "questsion", + "correct": false, + "expected": "question", + "rule_id": "regle_tion_sion_ssion" + }, + { + "text": "difficile.", + "correct": true + } + ], + "hint": "Le plus souvent, on écrit -tion.", + "explanation": "Le mot « question » s'écrit avec -tion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_qcm_01.json b/data/exercises/cm2/cm2_tion_sion_qcm_01.json new file mode 100644 index 0000000..338e47f --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_qcm_01.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_tion_sion_qcm_01", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Fais bien ... en traversant la rue.", + "answers": [ + "attention", + "attenssion", + "attension" + ], + "correct_answer": 0, + "hint": "Le plus souvent, on écrit -tion.", + "explanation": "Le mot « attention » s'écrit avec -tion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_qcm_02.json b/data/exercises/cm2/cm2_tion_sion_qcm_02.json new file mode 100644 index 0000000..4b090b3 --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_qcm_02.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_tion_sion_qcm_02", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Nous regardons la ... après le dîner.", + "answers": [ + "télévision", + "télévission", + "télévition" + ], + "correct_answer": 0, + "hint": "Ce mot vient du verbe « voir » : il s'écrit avec -sion.", + "explanation": "Le mot « télévision » s'écrit avec -sion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_qcm_03.json b/data/exercises/cm2/cm2_tion_sion_qcm_03.json new file mode 100644 index 0000000..53f6550 --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_qcm_03.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_tion_sion_qcm_03", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 1, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le pilote a une grande ... : voler.", + "answers": [ + "passion", + "passtion", + "pasion" + ], + "correct_answer": 0, + "hint": "Ce mot a deux s : -ssion.", + "explanation": "Le mot « passion » s'écrit avec -ssion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_qcm_04.json b/data/exercises/cm2/cm2_tion_sion_qcm_04.json new file mode 100644 index 0000000..c0a0ca4 --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_qcm_04.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_tion_sion_qcm_04", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Les astronautes partent en ... dans l'espace.", + "answers": [ + "mision", + "mition", + "mission" + ], + "correct_answer": 2, + "hint": "Ce mot a deux s : -ssion.", + "explanation": "Le mot « mission » s'écrit avec -ssion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_qcm_05.json b/data/exercises/cm2/cm2_tion_sion_qcm_05.json new file mode 100644 index 0000000..8c67b7c --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_qcm_05.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_tion_sion_qcm_05", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Le professeur pose une ... aux élèves.", + "answers": [ + "queston", + "question", + "questsion" + ], + "correct_answer": 1, + "hint": "Le plus souvent, on écrit -tion.", + "explanation": "Le mot « question » s'écrit avec -tion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_qcm_06.json b/data/exercises/cm2/cm2_tion_sion_qcm_06.json new file mode 100644 index 0000000..36ae3c1 --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_qcm_06.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_tion_sion_qcm_06", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 2, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Ce film me fait une grande ... .", + "answers": [ + "impresion", + "impression", + "impretion" + ], + "correct_answer": 1, + "hint": "Ce mot a deux s : -ssion.", + "explanation": "Le mot « impression » s'écrit avec -ssion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_qcm_07.json b/data/exercises/cm2/cm2_tion_sion_qcm_07.json new file mode 100644 index 0000000..9fc8886 --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_qcm_07.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_tion_sion_qcm_07", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "La ... du volcan a duré trois jours.", + "answers": [ + "érussion", + "éruction", + "éruption" + ], + "correct_answer": 2, + "hint": "Le son [sjɔ̃] s'écrit ici avec -ption.", + "explanation": "Le mot « éruption » s'écrit avec -ption.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/exercises/cm2/cm2_tion_sion_qcm_08.json b/data/exercises/cm2/cm2_tion_sion_qcm_08.json new file mode 100644 index 0000000..18d6d7b --- /dev/null +++ b/data/exercises/cm2/cm2_tion_sion_qcm_08.json @@ -0,0 +1,24 @@ +{ + "id": "cm2_tion_sion_qcm_08", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "rule_id": "regle_tion_sion_ssion", + "difficulty": 3, + "type": "multiple_choice", + "instruction": "Choisis le bon mot.", + "question": "Il y a trop de ... dans cette pièce.", + "answers": [ + "tension", + "tenssion", + "tention" + ], + "correct_answer": 0, + "hint": "Ce mot s'écrit avec -sion.", + "explanation": "Le mot « tension » s'écrit avec -sion.", + "review_tags": [ + "orthographe_cm2", + "tion_sion" + ], + "review_status": "draft" +} diff --git a/data/localization/fr.json b/data/localization/fr.json index e12e42c..fa044ae 100644 --- a/data/localization/fr.json +++ b/data/localization/fr.json @@ -123,5 +123,16 @@ "world_map.coming_soon": "Ce niveau arrive bientôt !", "skill.conjugaison_present": "Verbes au présent", "skill.conjugaison_ce2": "Verbes : accords et formes", - "skill.lettres_et_mots": "Lettres et mots" + "skill.lettres_et_mots": "Lettres et mots", + "skill.homophones_cm1": "Homophones (CM1)", + "skill.conjugaison_cm1": "Verbes du passé (CM1)", + "skill.orthographe_cm1": "Orthographe des mots (CM1)", + "skill.homophones_cm2": "Homophones (CM2)", + "skill.conjugaison_cm2": "Verbes : temps et accords (CM2)", + "skill.orthographe_cm2": "Orthographe des mots (CM2)", + "quit.button": "Quitter le jeu", + "quit.confirm_title": "Quitter le jeu ?", + "quit.confirm_message": "Ta progression est sauvegardée. À bientôt !", + "quit.confirm_yes": "Oui, quitter", + "quit.confirm_no": "Non, je reste" } diff --git a/data/missions/mission_100_source_chaude.json b/data/missions/mission_100_source_chaude.json new file mode 100644 index 0000000..6ba1aa7 --- /dev/null +++ b/data/missions/mission_100_source_chaude.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_100_source_chaude", + "title": "La source chaude", + "narrative_context": "Dans la source chaude, les participes cherchent leur accord. Aide-les à choisir.", + "rule_id": "regle_participe_cod_avant", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_101_pont_de_basalte.json b/data/missions/mission_101_pont_de_basalte.json new file mode 100644 index 0000000..8431dc8 --- /dev/null +++ b/data/missions/mission_101_pont_de_basalte.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_101_pont_de_basalte", + "title": "Le pont de basalte", + "narrative_context": "Un participe du pont de basalte est mal accordé. Trouve-le et corrige-le.", + "rule_id": "regle_participe_cod_avant", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_102_sommet_ardent.json b/data/missions/mission_102_sommet_ardent.json new file mode 100644 index 0000000..db8e9c7 --- /dev/null +++ b/data/missions/mission_102_sommet_ardent.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_102_sommet_ardent", + "title": "Le sommet ardent", + "narrative_context": "Au sommet, une voix dicte une phrase, une seule fois. Écoute bien et écris-la exactement.", + "rule_id": "regle_participe_cod_avant", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_103_rayon_des_adverbes.json b/data/missions/mission_103_rayon_des_adverbes.json new file mode 100644 index 0000000..9a81709 --- /dev/null +++ b/data/missions/mission_103_rayon_des_adverbes.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_103_rayon_des_adverbes", + "title": "Le rayon des adverbes", + "narrative_context": "Au rayon des adverbes, chaque mot attend sa terminaison. Choisis la bonne écriture.", + "rule_id": "regle_adverbes_ment", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_104_escalier_de_la_tour.json b/data/missions/mission_104_escalier_de_la_tour.json new file mode 100644 index 0000000..7f3c06b --- /dev/null +++ b/data/missions/mission_104_escalier_de_la_tour.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_104_escalier_de_la_tour", + "title": "L'escalier de la tour", + "narrative_context": "Une marche de l'escalier porte un adverbe mal écrit. Trouve-le et corrige-le.", + "rule_id": "regle_adverbes_ment", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_105_salle_de_lecture.json b/data/missions/mission_105_salle_de_lecture.json new file mode 100644 index 0000000..98dab68 --- /dev/null +++ b/data/missions/mission_105_salle_de_lecture.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_105_salle_de_lecture", + "title": "La salle de lecture", + "narrative_context": "Le bibliothécaire lit une phrase, une seule fois. Écoute bien et écris-la en entier.", + "rule_id": "regle_adverbes_ment", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_106_catalogue_des_noms.json b/data/missions/mission_106_catalogue_des_noms.json new file mode 100644 index 0000000..cdb10fb --- /dev/null +++ b/data/missions/mission_106_catalogue_des_noms.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_106_catalogue_des_noms", + "title": "Le catalogue des noms", + "narrative_context": "Dans le catalogue, « -tion », « -sion » ou « -ssion » ? Choisis la bonne fin de mot.", + "rule_id": "regle_tion_sion_ssion", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_107_reserve_des_manuscrits.json b/data/missions/mission_107_reserve_des_manuscrits.json new file mode 100644 index 0000000..72879dc --- /dev/null +++ b/data/missions/mission_107_reserve_des_manuscrits.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_107_reserve_des_manuscrits", + "title": "La réserve des manuscrits", + "narrative_context": "Un manuscrit contient une faute sur une terminaison. Repère-la et corrige-la.", + "rule_id": "regle_tion_sion_ssion", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_108_rayon_des_dictees.json b/data/missions/mission_108_rayon_des_dictees.json new file mode 100644 index 0000000..e0e215b --- /dev/null +++ b/data/missions/mission_108_rayon_des_dictees.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_108_rayon_des_dictees", + "title": "Le rayon des dictées", + "narrative_context": "Un livre à voix haute dicte une phrase, une seule fois. Écoute bien et écris-la sans faute.", + "rule_id": "regle_tion_sion_ssion", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_109_galerie_des_couleurs.json b/data/missions/mission_109_galerie_des_couleurs.json new file mode 100644 index 0000000..dcd82ac --- /dev/null +++ b/data/missions/mission_109_galerie_des_couleurs.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_109_galerie_des_couleurs", + "title": "La galerie des couleurs", + "narrative_context": "Dans la galerie, les couleurs s'accordent… ou pas. Choisis la bonne forme.", + "rule_id": "regle_adjectifs_couleur", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_110_atelier_du_relieur.json b/data/missions/mission_110_atelier_du_relieur.json new file mode 100644 index 0000000..3dec726 --- /dev/null +++ b/data/missions/mission_110_atelier_du_relieur.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_110_atelier_du_relieur", + "title": "L'atelier du relieur", + "narrative_context": "Le relieur a mal accordé une couleur. Trouve le mot fautif et corrige-le.", + "rule_id": "regle_adjectifs_couleur", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_111_grand_lecteur.json b/data/missions/mission_111_grand_lecteur.json new file mode 100644 index 0000000..f4b65a5 --- /dev/null +++ b/data/missions/mission_111_grand_lecteur.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_111_grand_lecteur", + "title": "Le grand lecteur", + "narrative_context": "Le grand lecteur murmure une phrase, une seule fois. Écoute bien et écris-la exactement.", + "rule_id": "regle_adjectifs_couleur", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_58_pont_levis_du_chateau.json b/data/missions/mission_58_pont_levis_du_chateau.json new file mode 100644 index 0000000..125db72 --- /dev/null +++ b/data/missions/mission_58_pont_levis_du_chateau.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_58_pont_levis_du_chateau", + "title": "Le pont-levis du château", + "narrative_context": "Le pont-levis ne s'abaisse que si tu choisis le bon mot entre « leur » et « leurs ».", + "rule_id": "regle_leur_leurs", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_59_tour_du_guetteur.json b/data/missions/mission_59_tour_du_guetteur.json new file mode 100644 index 0000000..20be2e1 --- /dev/null +++ b/data/missions/mission_59_tour_du_guetteur.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_59_tour_du_guetteur", + "title": "La tour du guetteur", + "narrative_context": "Le guetteur a mal écrit un message. Trouve l'erreur sur « leur » ou « leurs » et corrige-la.", + "rule_id": "regle_leur_leurs", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_60_salle_des_echos.json b/data/missions/mission_60_salle_des_echos.json new file mode 100644 index 0000000..95adfd6 --- /dev/null +++ b/data/missions/mission_60_salle_des_echos.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_60_salle_des_echos", + "title": "La salle des échos", + "narrative_context": "La salle répète une phrase, une seule fois. Écoute bien et écris-la en entier.", + "rule_id": "regle_leur_leurs", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_61_armurerie_royale.json b/data/missions/mission_61_armurerie_royale.json new file mode 100644 index 0000000..83954b1 --- /dev/null +++ b/data/missions/mission_61_armurerie_royale.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_61_armurerie_royale", + "title": "L'armurerie royale", + "narrative_context": "À l'armurerie, chaque objet est étiqueté « ces » ou « ses ». Choisis la bonne étiquette.", + "rule_id": "regle_ces_ses", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_62_cuisine_du_roi.json b/data/missions/mission_62_cuisine_du_roi.json new file mode 100644 index 0000000..951c694 --- /dev/null +++ b/data/missions/mission_62_cuisine_du_roi.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_62_cuisine_du_roi", + "title": "La cuisine du roi", + "narrative_context": "Le cuisinier a confondu « ces » et « ses ». Repère le mot fautif et remplace-le.", + "rule_id": "regle_ces_ses", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_63_cour_du_chateau.json b/data/missions/mission_63_cour_du_chateau.json new file mode 100644 index 0000000..4c125f5 --- /dev/null +++ b/data/missions/mission_63_cour_du_chateau.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_63_cour_du_chateau", + "title": "La cour du château", + "narrative_context": "Un héraut crie une phrase, une seule fois. Écoute bien et écris exactement ce qu'il dit.", + "rule_id": "regle_ces_ses", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_64_bibliotheque_secrete.json b/data/missions/mission_64_bibliotheque_secrete.json new file mode 100644 index 0000000..74fc8bd --- /dev/null +++ b/data/missions/mission_64_bibliotheque_secrete.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_64_bibliotheque_secrete", + "title": "La bibliothèque secrète", + "narrative_context": "Dans la bibliothèque secrète, « c'est » et « s'est » se cachent. Choisis le bon.", + "rule_id": "regle_c_est_s_est", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_65_cachot_du_dragon.json b/data/missions/mission_65_cachot_du_dragon.json new file mode 100644 index 0000000..619c1b8 --- /dev/null +++ b/data/missions/mission_65_cachot_du_dragon.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_65_cachot_du_dragon", + "title": "Le cachot du dragon", + "narrative_context": "Une inscription du cachot est fautive. Trouve « c'est » ou « s'est » mal placé et corrige-le.", + "rule_id": "regle_c_est_s_est", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_66_salle_du_trone.json b/data/missions/mission_66_salle_du_trone.json new file mode 100644 index 0000000..19b5491 --- /dev/null +++ b/data/missions/mission_66_salle_du_trone.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_66_salle_du_trone", + "title": "La salle du trône", + "narrative_context": "Le roi dicte une phrase, une seule fois. Écoute-le bien et écris-la sans faute.", + "rule_id": "regle_c_est_s_est", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_67_place_du_marche.json b/data/missions/mission_67_place_du_marche.json new file mode 100644 index 0000000..da3546c --- /dev/null +++ b/data/missions/mission_67_place_du_marche.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_67_place_du_marche", + "title": "La place du marché", + "narrative_context": "Sur la place du marché, tout se passait autrefois. Choisis la bonne forme de l'imparfait.", + "rule_id": "regle_imparfait", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_68_vieux_moulin.json b/data/missions/mission_68_vieux_moulin.json new file mode 100644 index 0000000..c1549e9 --- /dev/null +++ b/data/missions/mission_68_vieux_moulin.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_68_vieux_moulin", + "title": "Le vieux moulin", + "narrative_context": "Le meunier a mal conjugué un verbe sur sa porte. Trouve-le et corrige-le.", + "rule_id": "regle_imparfait", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_69_fontaine_du_village.json b/data/missions/mission_69_fontaine_du_village.json new file mode 100644 index 0000000..9f34a48 --- /dev/null +++ b/data/missions/mission_69_fontaine_du_village.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_69_fontaine_du_village", + "title": "La fontaine du village", + "narrative_context": "La fontaine murmure une phrase, une seule fois. Écoute bien et écris-la en entier.", + "rule_id": "regle_imparfait", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_70_forge_du_maitre.json b/data/missions/mission_70_forge_du_maitre.json new file mode 100644 index 0000000..1d9bea7 --- /dev/null +++ b/data/missions/mission_70_forge_du_maitre.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_70_forge_du_maitre", + "title": "La forge du maître", + "narrative_context": "Le forgeron a rangé ses participes dans de mauvais tiroirs. Choisis la bonne terminaison.", + "rule_id": "regle_participe_passe_forme", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_71_grenier_a_foin.json b/data/missions/mission_71_grenier_a_foin.json new file mode 100644 index 0000000..c350079 --- /dev/null +++ b/data/missions/mission_71_grenier_a_foin.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_71_grenier_a_foin", + "title": "Le grenier à foin", + "narrative_context": "Un participe passé est mal écrit dans le grenier. Repère-le et corrige-le.", + "rule_id": "regle_participe_passe_forme", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_72_cloche_de_l_eglise.json b/data/missions/mission_72_cloche_de_l_eglise.json new file mode 100644 index 0000000..7e24933 --- /dev/null +++ b/data/missions/mission_72_cloche_de_l_eglise.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_72_cloche_de_l_eglise", + "title": "La cloche de l'église", + "narrative_context": "La cloche sonne une phrase, une seule fois. Écoute bien et écris-la sans faute.", + "rule_id": "regle_participe_passe_forme", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_73_chemin_des_voyageurs.json b/data/missions/mission_73_chemin_des_voyageurs.json new file mode 100644 index 0000000..90987e7 --- /dev/null +++ b/data/missions/mission_73_chemin_des_voyageurs.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_73_chemin_des_voyageurs", + "title": "Le chemin des voyageurs", + "narrative_context": "Les voyageurs sont arrivés au village. Accorde leur participe avec le bon sujet.", + "rule_id": "regle_accord_participe_etre", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_74_auberge_du_coin.json b/data/missions/mission_74_auberge_du_coin.json new file mode 100644 index 0000000..a32131e --- /dev/null +++ b/data/missions/mission_74_auberge_du_coin.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_74_auberge_du_coin", + "title": "L'auberge du coin", + "narrative_context": "À l'auberge, un participe ne s'accorde pas avec son sujet. Trouve-le et corrige-le.", + "rule_id": "regle_accord_participe_etre", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_75_ecole_du_village.json b/data/missions/mission_75_ecole_du_village.json new file mode 100644 index 0000000..8d51b97 --- /dev/null +++ b/data/missions/mission_75_ecole_du_village.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_75_ecole_du_village", + "title": "L'école du village", + "narrative_context": "Le maître dicte une phrase, une seule fois. Écoute-le bien et écris-la exactement.", + "rule_id": "regle_accord_participe_etre", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_76_riviere_aux_crocodiles.json b/data/missions/mission_76_riviere_aux_crocodiles.json new file mode 100644 index 0000000..89c212a --- /dev/null +++ b/data/missions/mission_76_riviere_aux_crocodiles.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_76_riviere_aux_crocodiles", + "title": "La rivière aux crocodiles", + "narrative_context": "Sur la rivière, les mots passent au pluriel. Choisis la bonne forme pour traverser.", + "rule_id": "regle_pluriel_aux_eaux", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_77_pont_de_lianes.json b/data/missions/mission_77_pont_de_lianes.json new file mode 100644 index 0000000..7b10602 --- /dev/null +++ b/data/missions/mission_77_pont_de_lianes.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_77_pont_de_lianes", + "title": "Le pont de lianes", + "narrative_context": "Une liane du pont est mal nouée : un pluriel est faux. Trouve-le et corrige-le.", + "rule_id": "regle_pluriel_aux_eaux", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_78_perroquet_de_la_canopee.json b/data/missions/mission_78_perroquet_de_la_canopee.json new file mode 100644 index 0000000..15ede13 --- /dev/null +++ b/data/missions/mission_78_perroquet_de_la_canopee.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_78_perroquet_de_la_canopee", + "title": "Le perroquet de la canopée", + "narrative_context": "Le perroquet répète une phrase, une seule fois. Écoute bien et écris-la en entier.", + "rule_id": "regle_pluriel_aux_eaux", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_79_clairiere_des_singes.json b/data/missions/mission_79_clairiere_des_singes.json new file mode 100644 index 0000000..42b818e --- /dev/null +++ b/data/missions/mission_79_clairiere_des_singes.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_79_clairiere_des_singes", + "title": "La clairière des singes", + "narrative_context": "Les singes se demandent « où » ou « ou ». Aide-les à choisir.", + "rule_id": "regle_ou_ou_accent", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_80_cabane_dans_l_arbre.json b/data/missions/mission_80_cabane_dans_l_arbre.json new file mode 100644 index 0000000..bc5bd67 --- /dev/null +++ b/data/missions/mission_80_cabane_dans_l_arbre.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_80_cabane_dans_l_arbre", + "title": "La cabane dans l'arbre", + "narrative_context": "Un panneau de la cabane confond « où » et « ou ». Trouve l'erreur et corrige-la.", + "rule_id": "regle_ou_ou_accent", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_81_cascade_cachee.json b/data/missions/mission_81_cascade_cachee.json new file mode 100644 index 0000000..14e03db --- /dev/null +++ b/data/missions/mission_81_cascade_cachee.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_81_cascade_cachee", + "title": "La cascade cachée", + "narrative_context": "La cascade murmure une phrase, une seule fois. Écoute bien et écris-la sans faute.", + "rule_id": "regle_ou_ou_accent", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_82_temple_perdu.json b/data/missions/mission_82_temple_perdu.json new file mode 100644 index 0000000..0a42eb5 --- /dev/null +++ b/data/missions/mission_82_temple_perdu.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_82_temple_perdu", + "title": "Le temple perdu", + "narrative_context": "Dans le temple, « la », « là » et « l'a » se ressemblent. Choisis le bon.", + "rule_id": "regle_la_la_accent_l_a", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_83_sentier_du_tigre.json b/data/missions/mission_83_sentier_du_tigre.json new file mode 100644 index 0000000..8bc7a5e --- /dev/null +++ b/data/missions/mission_83_sentier_du_tigre.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_83_sentier_du_tigre", + "title": "Le sentier du tigre", + "narrative_context": "Une trace sur le sentier est mal écrite. Trouve le mot fautif et corrige-le.", + "rule_id": "regle_la_la_accent_l_a", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_84_arbre_aux_secrets.json b/data/missions/mission_84_arbre_aux_secrets.json new file mode 100644 index 0000000..f2103dc --- /dev/null +++ b/data/missions/mission_84_arbre_aux_secrets.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_84_arbre_aux_secrets", + "title": "L'arbre aux secrets", + "narrative_context": "L'arbre chuchote une phrase, une seule fois. Écoute-le bien et écris exactement ce qu'il dit.", + "rule_id": "regle_la_la_accent_l_a", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_85_hublot_de_la_station.json b/data/missions/mission_85_hublot_de_la_station.json new file mode 100644 index 0000000..fa19009 --- /dev/null +++ b/data/missions/mission_85_hublot_de_la_station.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_85_hublot_de_la_station", + "title": "Le hublot de la station", + "narrative_context": "Par le hublot, des phrases flottent : « quel », « quelle » ou « qu'elle » ? Choisis le bon.", + "rule_id": "regle_quel_qu_elle", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_86_salle_de_controle.json b/data/missions/mission_86_salle_de_controle.json new file mode 100644 index 0000000..8350650 --- /dev/null +++ b/data/missions/mission_86_salle_de_controle.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_86_salle_de_controle", + "title": "La salle de contrôle", + "narrative_context": "Un message de la salle de contrôle est fautif. Repère le mot et corrige-le.", + "rule_id": "regle_quel_qu_elle", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_87_radio_de_bord.json b/data/missions/mission_87_radio_de_bord.json new file mode 100644 index 0000000..256312a --- /dev/null +++ b/data/missions/mission_87_radio_de_bord.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_87_radio_de_bord", + "title": "La radio de bord", + "narrative_context": "La radio grésille une phrase, une seule fois. Écoute bien et écris-la en entier.", + "rule_id": "regle_quel_qu_elle", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_88_orbite_de_mars.json b/data/missions/mission_88_orbite_de_mars.json new file mode 100644 index 0000000..56cd13f --- /dev/null +++ b/data/missions/mission_88_orbite_de_mars.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_88_orbite_de_mars", + "title": "L'orbite de Mars", + "narrative_context": "En orbite, « quand », « quant » et « qu'en » flottent. Choisis le bon.", + "rule_id": "regle_quand_quant_qu_en", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_89_capsule_de_secours.json b/data/missions/mission_89_capsule_de_secours.json new file mode 100644 index 0000000..f4bd3b6 --- /dev/null +++ b/data/missions/mission_89_capsule_de_secours.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_89_capsule_de_secours", + "title": "La capsule de secours", + "narrative_context": "Le journal de la capsule contient une erreur. Trouve-la et corrige-la.", + "rule_id": "regle_quand_quant_qu_en", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_90_signal_lointain.json b/data/missions/mission_90_signal_lointain.json new file mode 100644 index 0000000..7cf86c0 --- /dev/null +++ b/data/missions/mission_90_signal_lointain.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_90_signal_lointain", + "title": "Le signal lointain", + "narrative_context": "Un signal lointain transmet une phrase, une seule fois. Écoute bien et écris-la sans faute.", + "rule_id": "regle_quand_quant_qu_en", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_91_navette_spatiale.json b/data/missions/mission_91_navette_spatiale.json new file mode 100644 index 0000000..76b7c49 --- /dev/null +++ b/data/missions/mission_91_navette_spatiale.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_91_navette_spatiale", + "title": "La navette spatiale", + "narrative_context": "La navette hésite entre « plutôt » et « plus tôt ». Aide l'équipage à choisir.", + "rule_id": "regle_plutot_plus_tot", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_92_serre_orbitale.json b/data/missions/mission_92_serre_orbitale.json new file mode 100644 index 0000000..83c9b62 --- /dev/null +++ b/data/missions/mission_92_serre_orbitale.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_92_serre_orbitale", + "title": "La serre orbitale", + "narrative_context": "Dans la serre, une étiquette est fautive. Trouve le mot et corrige-le.", + "rule_id": "regle_plutot_plus_tot", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_93_etoile_messagere.json b/data/missions/mission_93_etoile_messagere.json new file mode 100644 index 0000000..9402350 --- /dev/null +++ b/data/missions/mission_93_etoile_messagere.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_93_etoile_messagere", + "title": "L'étoile messagère", + "narrative_context": "L'étoile envoie une phrase, une seule fois. Écoute bien et écris-la exactement.", + "rule_id": "regle_plutot_plus_tot", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.85 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_94_cratere_fumant.json b/data/missions/mission_94_cratere_fumant.json new file mode 100644 index 0000000..252c1c1 --- /dev/null +++ b/data/missions/mission_94_cratere_fumant.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_94_cratere_fumant", + "title": "Le cratère fumant", + "narrative_context": "Au bord du cratère, « futur » ou « conditionnel » ? Choisis la bonne terminaison.", + "rule_id": "regle_futur_conditionnel", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_95_coulee_de_lave.json b/data/missions/mission_95_coulee_de_lave.json new file mode 100644 index 0000000..c8f27d9 --- /dev/null +++ b/data/missions/mission_95_coulee_de_lave.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_95_coulee_de_lave", + "title": "La coulée de lave", + "narrative_context": "La lave a dissous un verbe : il n'est pas au bon temps. Trouve-le et corrige-le.", + "rule_id": "regle_futur_conditionnel", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_96_grotte_de_cendre.json b/data/missions/mission_96_grotte_de_cendre.json new file mode 100644 index 0000000..42d90b9 --- /dev/null +++ b/data/missions/mission_96_grotte_de_cendre.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_96_grotte_de_cendre", + "title": "La grotte de cendre", + "narrative_context": "La grotte répète une phrase, une seule fois. Écoute bien et écris-la en entier.", + "rule_id": "regle_futur_conditionnel", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.15 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_97_village_de_pierre.json b/data/missions/mission_97_village_de_pierre.json new file mode 100644 index 0000000..e4cd09e --- /dev/null +++ b/data/missions/mission_97_village_de_pierre.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_97_village_de_pierre", + "title": "Le village de pierre", + "narrative_context": "Au village de pierre, tout s'est passé en un instant. Choisis la bonne forme du passé simple.", + "rule_id": "regle_passe_simple", + "exercise_type": "multiple_choice", + "map_position": { + "x": 0.15, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_98_observatoire.json b/data/missions/mission_98_observatoire.json new file mode 100644 index 0000000..e08f852 --- /dev/null +++ b/data/missions/mission_98_observatoire.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_98_observatoire", + "title": "L'observatoire", + "narrative_context": "Le registre de l'observatoire contient un verbe mal conjugué. Trouve-le et corrige-le.", + "rule_id": "regle_passe_simple", + "exercise_type": "sentence_correction", + "map_position": { + "x": 0.5, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/missions/mission_99_echo_du_volcan.json b/data/missions/mission_99_echo_du_volcan.json new file mode 100644 index 0000000..8aaed68 --- /dev/null +++ b/data/missions/mission_99_echo_du_volcan.json @@ -0,0 +1,12 @@ +{ + "mission_id": "mission_99_echo_du_volcan", + "title": "L'écho du volcan", + "narrative_context": "Le volcan gronde une phrase, une seule fois. Écoute bien et écris-la sans faute.", + "rule_id": "regle_passe_simple", + "exercise_type": "dictation", + "map_position": { + "x": 0.85, + "y": 0.5 + }, + "review_status": "draft" +} diff --git a/data/rules/regle_accord_participe_etre.json b/data/rules/regle_accord_participe_etre.json new file mode 100644 index 0000000..9c8d521 --- /dev/null +++ b/data/rules/regle_accord_participe_etre.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_accord_participe_etre", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "statement": "Avec l'auxiliaire « être », le participe passé s'accorde avec le sujet : elle est partie, ils sont partis, elles sont parties.", + "example": "Léa est arrivée. Les garçons sont partis.", + "review_status": "draft" +} diff --git a/data/rules/regle_adjectifs_couleur.json b/data/rules/regle_adjectifs_couleur.json new file mode 100644 index 0000000..263a161 --- /dev/null +++ b/data/rules/regle_adjectifs_couleur.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_adjectifs_couleur", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "statement": "Un adjectif de couleur s'accorde (des robes vertes) ; un nom employé comme couleur (marron, orange) ou un adjectif composé (bleu clair) reste invariable.", + "example": "Des rubans verts. Des chaussures marron. Des yeux bleu clair.", + "review_status": "draft" +} diff --git a/data/rules/regle_adverbes_ment.json b/data/rules/regle_adverbes_ment.json new file mode 100644 index 0000000..506c0d6 --- /dev/null +++ b/data/rules/regle_adverbes_ment.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_adverbes_ment", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "statement": "Les adverbes en -ment dérivés d'un adjectif en -ent s'écrivent -emment (prudent, prudemment) ; ceux dérivés d'un adjectif en -ant s'écrivent -amment (vaillant, vaillamment) ; les autres ajoutent -ment au féminin (lent, lentement).", + "example": "Prudent, prudemment. Vaillant, vaillamment. Lent, lentement.", + "review_status": "draft" +} diff --git a/data/rules/regle_c_est_s_est.json b/data/rules/regle_c_est_s_est.json new file mode 100644 index 0000000..e696309 --- /dev/null +++ b/data/rules/regle_c_est_s_est.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_c_est_s_est", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "statement": "« c'est » veut dire « cela est » ; « s'est » accompagne un sujet et un participe passé : « Paul s'est blessé » (on peut dire « Paul se blesse »).", + "example": "C'est un gâteau. Paul s'est blessé.", + "review_status": "draft" +} diff --git a/data/rules/regle_ces_ses.json b/data/rules/regle_ces_ses.json new file mode 100644 index 0000000..8399116 --- /dev/null +++ b/data/rules/regle_ces_ses.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_ces_ses", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "statement": "« ces » sert à montrer (ces livres-ci) ; « ses » indique ce qui appartient à quelqu'un (ses livres : les livres de lui ou d'elle).", + "example": "Ces nuages annoncent la pluie. Léa range ses crayons.", + "review_status": "draft" +} diff --git a/data/rules/regle_futur_conditionnel.json b/data/rules/regle_futur_conditionnel.json new file mode 100644 index 0000000..ab768ca --- /dev/null +++ b/data/rules/regle_futur_conditionnel.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_futur_conditionnel", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "statement": "Au futur, la terminaison est -rai, -ras, -ra, -rons, -rez, -ront ; au conditionnel présent, elle est -rais, -rais, -rait, -rions, -riez, -raient. Après « si » + imparfait, on emploie le conditionnel.", + "example": "Demain, je viendrai. Si j'avais le temps, je viendrais.", + "review_status": "draft" +} diff --git a/data/rules/regle_imparfait.json b/data/rules/regle_imparfait.json new file mode 100644 index 0000000..a5a1a5c --- /dev/null +++ b/data/rules/regle_imparfait.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_imparfait", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "statement": "À l'imparfait, les terminaisons sont -ais, -ais, -ait, -ions, -iez, -aient.", + "example": "Je chantais. Il chantait. Nous chantions. Ils chantaient.", + "review_status": "draft" +} diff --git a/data/rules/regle_la_la_accent_l_a.json b/data/rules/regle_la_la_accent_l_a.json new file mode 100644 index 0000000..a2087ee --- /dev/null +++ b/data/rules/regle_la_la_accent_l_a.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_la_la_accent_l_a", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "statement": "« la » est un article ou un pronom devant un nom ou un verbe ; « là » avec un accent indique un lieu ; « l'a » est « l' » + le verbe avoir : on peut dire « l'avait ».", + "example": "La table est là. Il l'a vue.", + "review_status": "draft" +} diff --git a/data/rules/regle_leur_leurs.json b/data/rules/regle_leur_leurs.json new file mode 100644 index 0000000..3c29c4b --- /dev/null +++ b/data/rules/regle_leur_leurs.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_leur_leurs", + "level": "CM1", + "domain": "orthographe", + "skill": "homophones_cm1", + "statement": "« leur » ne prend pas de -s quand il accompagne un verbe (je leur parle) ; « leurs » prend un -s quand il accompagne un nom pluriel (leurs amis).", + "example": "Je leur donne un livre. Ils rangent leurs jouets.", + "review_status": "draft" +} diff --git a/data/rules/regle_ou_ou_accent.json b/data/rules/regle_ou_ou_accent.json new file mode 100644 index 0000000..fcafdd3 --- /dev/null +++ b/data/rules/regle_ou_ou_accent.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_ou_ou_accent", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "statement": "« où » avec un accent indique un lieu ou un moment (Où vas-tu ?) ; « ou » sans accent veut dire « ou bien » et peut se remplacer par « ou bien ».", + "example": "Où vas-tu ? Du thé ou du café ?", + "review_status": "draft" +} diff --git a/data/rules/regle_participe_cod_avant.json b/data/rules/regle_participe_cod_avant.json new file mode 100644 index 0000000..556b233 --- /dev/null +++ b/data/rules/regle_participe_cod_avant.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_participe_cod_avant", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "statement": "Avec « avoir », le participe passé s'accorde avec le complément d'objet seulement s'il est placé avant le verbe : la lettre que j'ai écrite ; j'ai écrit une lettre.", + "example": "Les fleurs que Léa a cueillies. Léa a cueilli des fleurs.", + "review_status": "draft" +} diff --git a/data/rules/regle_participe_passe_forme.json b/data/rules/regle_participe_passe_forme.json new file mode 100644 index 0000000..63c10ae --- /dev/null +++ b/data/rules/regle_participe_passe_forme.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_participe_passe_forme", + "level": "CM1", + "domain": "grammaire", + "skill": "conjugaison_cm1", + "statement": "Le participe passé des verbes en -ir se termine par -i (fini), celui des verbes en -re souvent par -u (vendu), et quelques-uns par -is ou -it (pris, écrit).", + "example": "J'ai fini. Il a vendu. Elle a pris. Nous avons écrit.", + "review_status": "draft" +} diff --git a/data/rules/regle_passe_simple.json b/data/rules/regle_passe_simple.json new file mode 100644 index 0000000..211358d --- /dev/null +++ b/data/rules/regle_passe_simple.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_passe_simple", + "level": "CM2", + "domain": "grammaire", + "skill": "conjugaison_cm2", + "statement": "Au passé simple, à la 3e personne, les verbes en -er font -a (il chanta) et -èrent (ils chantèrent) ; les autres font souvent -it et -irent (il finit, ils finirent).", + "example": "Il chanta. Ils chantèrent. Elle finit. Elles finirent.", + "review_status": "draft" +} diff --git a/data/rules/regle_pluriel_aux_eaux.json b/data/rules/regle_pluriel_aux_eaux.json new file mode 100644 index 0000000..dd0dfd3 --- /dev/null +++ b/data/rules/regle_pluriel_aux_eaux.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_pluriel_aux_eaux", + "level": "CM1", + "domain": "orthographe", + "skill": "orthographe_cm1", + "statement": "Les noms en -al font leur pluriel en -aux (un cheval, des chevaux) ; les noms en -eau prennent un -x (un bateau, des bateaux) ; quelques noms en -ou aussi (un bijou, des bijoux).", + "example": "Un animal, des animaux. Un bateau, des bateaux. Un bijou, des bijoux.", + "review_status": "draft" +} diff --git a/data/rules/regle_plutot_plus_tot.json b/data/rules/regle_plutot_plus_tot.json new file mode 100644 index 0000000..9032e84 --- /dev/null +++ b/data/rules/regle_plutot_plus_tot.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_plutot_plus_tot", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "statement": "« plutôt » exprime une préférence ou une nuance (plutôt du thé) ; « plus tôt » s'oppose à « plus tard » : on peut le remplacer par « plus tard ».", + "example": "Je prends plutôt du thé. Viens plus tôt demain.", + "review_status": "draft" +} diff --git a/data/rules/regle_quand_quant_qu_en.json b/data/rules/regle_quand_quant_qu_en.json new file mode 100644 index 0000000..e361243 --- /dev/null +++ b/data/rules/regle_quand_quant_qu_en.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_quand_quant_qu_en", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "statement": "« quand » indique le moment (on peut dire « lorsque ») ; « quant à » veut dire « en ce qui concerne » ; « qu'en » est « que » + « en ».", + "example": "Quand il pleut, je reste. Quant à moi, j'ai faim.", + "review_status": "draft" +} diff --git a/data/rules/regle_quel_qu_elle.json b/data/rules/regle_quel_qu_elle.json new file mode 100644 index 0000000..9a3ab94 --- /dev/null +++ b/data/rules/regle_quel_qu_elle.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_quel_qu_elle", + "level": "CM2", + "domain": "orthographe", + "skill": "homophones_cm2", + "statement": "« quel(le)(s) » s'accorde avec un nom (quelle heure ?) ; « qu'elle(s) » est « que » + « elle » : on peut le remplacer par « qu'il(s) ».", + "example": "Quelle heure est-il ? Je pense qu'elle arrive.", + "review_status": "draft" +} diff --git a/data/rules/regle_tion_sion_ssion.json b/data/rules/regle_tion_sion_ssion.json new file mode 100644 index 0000000..6ef4ca2 --- /dev/null +++ b/data/rules/regle_tion_sion_ssion.json @@ -0,0 +1,9 @@ +{ + "rule_id": "regle_tion_sion_ssion", + "level": "CM2", + "domain": "orthographe", + "skill": "orthographe_cm2", + "statement": "Le son [sjɔ̃] s'écrit le plus souvent « -tion » (attention, réaction) ; quelques mots s'écrivent « -sion » (télévision, tension) ou « -ssion » (passion, mission) et sont à connaître.", + "example": "Une attention. Une télévision. Une mission.", + "review_status": "draft" +} diff --git a/data/schemas/curriculum.schema.json b/data/schemas/curriculum.schema.json index d9b38eb..e06eea4 100644 --- a/data/schemas/curriculum.schema.json +++ b/data/schemas/curriculum.schema.json @@ -16,7 +16,7 @@ "title": { "type": "string", "minLength": 1 }, "region_title": { "type": "string", "minLength": 1 }, "order": { "type": "integer", "minimum": 1, "maximum": 3 }, - "backdrop": { "type": "string", "enum": ["forest", "marsh", "beach", "mountain", "desert", "island"] }, + "backdrop": { "type": "string", "enum": ["forest", "marsh", "beach", "mountain", "desert", "island", "castle", "village", "jungle", "space", "volcano", "library"] }, "rule_ids": { "type": "array", "minItems": 1, diff --git a/docs/review/content-review.md b/docs/review/content-review.md index 9ba0867..6e80bdb 100644 --- a/docs/review/content-review.md +++ b/docs/review/content-review.md @@ -188,6 +188,99 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_accord_participe_etre (CM1, grammaire) + +**Enonce** : Avec l'auxiliaire « être », le participe passé s'accorde avec le sujet : elle est partie, ils sont partis, elles sont parties. + +**Exemple** : Léa est arrivée. Les garçons sont partis. + +**Statut** : draft + +### Choix multiples + +- **cm1_participe_etre_qcm_01** (difficulte 1) : Léa est ... à l'école ce matin. + - Reponses : arrivé, arrivés, arrivée + - Reponse attendue : arrivée + - Indice : Le sujet « Léa » est féminin singulier. + - Explication : Avec « être », le participe s'accorde avec le sujet : Léa est arrivée. + - Statut : draft +- **cm1_participe_etre_qcm_02** (difficulte 1) : Paul est ... chez sa grand-mère. + - Reponses : allé, allés, allée + - Reponse attendue : allé + - Indice : Le sujet « Paul » est masculin singulier. + - Explication : Avec « être », le participe s'accorde avec le sujet : Paul est allé. + - Statut : draft +- **cm1_participe_etre_qcm_03** (difficulte 1) : Les filles sont ... à la plage. + - Reponses : parties, parti, partie + - Reponse attendue : parties + - Indice : Le sujet « les filles » est féminin pluriel. + - Explication : Avec « être », le participe s'accorde avec le sujet : les filles sont parties. + - Statut : draft +- **cm1_participe_etre_qcm_04** (difficulte 2) : Mes cousins sont ... hier soir. + - Reponses : venus, venue, venu + - Reponse attendue : venus + - Indice : Le sujet « mes cousins » est masculin pluriel. + - Explication : Avec « être », le participe s'accorde avec le sujet : mes cousins sont venus. + - Statut : draft +- **cm1_participe_etre_qcm_05** (difficulte 2) : Ma mère est ... tôt ce matin. + - Reponses : sortis, sortie, sorti + - Reponse attendue : sortie + - Indice : Le sujet « ma mère » est féminin singulier. + - Explication : Avec « être », le participe s'accorde avec le sujet : ma mère est sortie. + - Statut : draft +- **cm1_participe_etre_qcm_06** (difficulte 2) : Les enfants sont ... du bus en courant. + - Reponses : descendu, descendus, descendues + - Reponse attendue : descendus + - Indice : Le sujet « les enfants » est masculin pluriel. + - Explication : Avec « être », le participe s'accorde avec le sujet : les enfants sont descendus. + - Statut : draft +- **cm1_participe_etre_qcm_07** (difficulte 3) : Anna et sa sœur sont ... en retard. + - Reponses : arrivées, arrivés, arrivée + - Reponse attendue : arrivées + - Indice : Deux filles : le sujet est féminin pluriel. + - Explication : Anna et sa sœur, c'est « elles » : le participe prend -ées. + - Statut : draft +- **cm1_participe_etre_qcm_08** (difficulte 3) : Mon voisin et sa femme sont ... en vacances. + - Reponses : parti, parties, partis + - Reponse attendue : partis + - Indice : Un homme et une femme : le masculin l'emporte. + - Explication : Un sujet mixte s'accorde au masculin pluriel : « partis ». + - Statut : draft + +### Corrections de phrase + +- **cm1_participe_etre_correction_01** (difficulte 1) : Marie est [parti -> partie] à la piscine. + - Indice : Le sujet « Marie » est féminin. + - Explication : Avec « être », le participe s'accorde avec le sujet : Marie est partie. + - Statut : draft +- **cm1_participe_etre_correction_02** (difficulte 2) : Les garçons sont [tombé -> tombés] dans la boue. + - Indice : Le sujet « les garçons » est pluriel. + - Explication : Avec « être », le participe s'accorde avec le sujet : les garçons sont tombés. + - Statut : draft +- **cm1_participe_etre_correction_03** (difficulte 2) : Mes sœurs sont [arrivés -> arrivées] en avance. + - Indice : Le sujet « mes sœurs » est féminin pluriel. + - Explication : Avec « être », le participe s'accorde avec le sujet : mes sœurs sont arrivées. + - Statut : draft +- **cm1_participe_etre_correction_04** (difficulte 3) : Lucas et Emma sont [allé -> allés] au cinéma. + - Indice : Deux personnes : le sujet est pluriel. + - Explication : Avec « être », le participe s'accorde avec le sujet pluriel : « allés ». + - Statut : draft + +### Dictees + +- **cm1_participe_etre_dictee_01** : Ma tante est arrivée ce matin par le train. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_participe_etre_dictee_02** : Les enfants sont rentrés tard de la sortie. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_participe_etre_dictee_03** : Léa et Sara sont montées dans le grand bateau. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_accord_sujet_verbe (CE2, grammaire) **Enonce** : Le verbe s'accorde avec son sujet, même si d'autres mots les séparent. @@ -281,6 +374,192 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_adjectifs_couleur (CM2, orthographe) + +**Enonce** : Un adjectif de couleur s'accorde (des robes vertes) ; un nom employé comme couleur (marron, orange) ou un adjectif composé (bleu clair) reste invariable. + +**Exemple** : Des rubans verts. Des chaussures marron. Des yeux bleu clair. + +**Statut** : draft + +### Choix multiples + +- **cm2_couleurs_qcm_01** (difficulte 1) : Léa porte des chaussettes ... . + - Reponses : vertes, vert + - Reponse attendue : vertes + - Indice : « Vert » est un vrai adjectif : il s'accorde. + - Explication : « Vert » est un adjectif de couleur : il s'accorde, « vertes ». + - Statut : draft +- **cm2_couleurs_qcm_02** (difficulte 1) : J'ai acheté deux pulls ... . + - Reponses : rouges, rouge + - Reponse attendue : rouges + - Indice : « Rouge » est un vrai adjectif : il s'accorde. + - Explication : « Rouge » est un adjectif de couleur : il s'accorde, « rouges ». + - Statut : draft +- **cm2_couleurs_qcm_03** (difficulte 1) : Les murs sont ... . + - Reponses : blancs, blanc + - Reponse attendue : blancs + - Indice : « Blanc » est un vrai adjectif : il s'accorde. + - Explication : « Blanc » est un adjectif de couleur : il s'accorde, « blancs ». + - Statut : draft +- **cm2_couleurs_qcm_04** (difficulte 2) : Il a mis des chaussures ... . + - Reponses : marron, marrons + - Reponse attendue : marron + - Indice : « Marron » vient du nom du fruit : il reste invariable. + - Explication : « Marron » est un nom employé comme couleur : il reste invariable. + - Statut : draft +- **cm2_couleurs_qcm_05** (difficulte 2) : Mamie tricote des écharpes ... . + - Reponses : oranges, orange + - Reponse attendue : orange + - Indice : « Orange » vient du nom du fruit : il reste invariable. + - Explication : « Orange » est un nom employé comme couleur : il reste invariable. + - Statut : draft +- **cm2_couleurs_qcm_06** (difficulte 2) : Elle aime ses rubans bleu ... . + - Reponses : clairs, clair + - Reponse attendue : clair + - Indice : Une couleur précisée par un autre mot reste invariable. + - Explication : « Bleu clair » est un adjectif composé : il reste invariable. + - Statut : draft +- **cm2_couleurs_qcm_07** (difficulte 3) : Des rideaux vert ... pendent aux fenêtres. + - Reponses : foncé, foncés + - Reponse attendue : foncé + - Indice : Une couleur précisée par un autre mot reste invariable. + - Explication : « Vert foncé » est un adjectif composé : il reste invariable. + - Statut : draft +- **cm2_couleurs_qcm_08** (difficulte 3) : Elle a des yeux ... . + - Reponses : noisette, noisettes + - Reponse attendue : noisette + - Indice : « Noisette » vient du nom du fruit : il reste invariable. + - Explication : « Noisette » est un nom employé comme couleur : il reste invariable. + - Statut : draft + +### Corrections de phrase + +- **cm2_couleurs_correction_01** (difficulte 1) : Mes chaussettes sont [vert. -> vertes.] + - Indice : « Vert » est un vrai adjectif : il s'accorde. + - Explication : « Vert » est un adjectif de couleur : il s'accorde, « vertes ». + - Statut : draft +- **cm2_couleurs_correction_02** (difficulte 2) : Elle porte des gants [oranges. -> orange.] + - Indice : « Orange » vient du nom du fruit : il reste invariable. + - Explication : « Orange » est un nom employé comme couleur : il reste invariable. + - Statut : draft +- **cm2_couleurs_correction_03** (difficulte 2) : Il porte des chaussures [marrons. -> marron.] + - Indice : « Marron » vient du nom du fruit : il reste invariable. + - Explication : « Marron » est un nom employé comme couleur : il reste invariable. + - Statut : draft +- **cm2_couleurs_correction_04** (difficulte 3) : Léa a des rubans bleu [clairs. -> clair.] + - Indice : Une couleur précisée par un autre mot reste invariable. + - Explication : « Bleu clair » est un adjectif composé : il reste invariable. + - Statut : draft + +### Dictees + +- **cm2_couleurs_dictee_01** : Les enfants portent des bonnets rouges. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_couleurs_dictee_02** : Elle a acheté des chaussures marron. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_couleurs_dictee_03** : Mon frère a des yeux bleu clair. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_adverbes_ment (CM2, orthographe) + +**Enonce** : Les adverbes en -ment dérivés d'un adjectif en -ent s'écrivent -emment (prudent, prudemment) ; ceux dérivés d'un adjectif en -ant s'écrivent -amment (vaillant, vaillamment) ; les autres ajoutent -ment au féminin (lent, lentement). + +**Exemple** : Prudent, prudemment. Vaillant, vaillamment. Lent, lentement. + +**Statut** : draft + +### Choix multiples + +- **cm2_adverbes_qcm_01** (difficulte 1) : Le chat guette ... la souris. + - Reponses : patiemment, patiamment, patiement + - Reponse attendue : patiemment + - Indice : L'adjectif « patient » finit par -ent. + - Explication : « Patient » finit par -ent : l'adverbe s'écrit « patiemment ». + - Statut : draft +- **cm2_adverbes_qcm_02** (difficulte 1) : Il marche ... dans le couloir. + - Reponses : prudemment, prudamment, prudement + - Reponse attendue : prudemment + - Indice : L'adjectif « prudent » finit par -ent. + - Explication : « Prudent » finit par -ent : l'adverbe s'écrit « prudemment ». + - Statut : draft +- **cm2_adverbes_qcm_03** (difficulte 1) : Elle parle ... devant la classe. + - Reponses : courammant, courement, couramment + - Reponse attendue : couramment + - Indice : L'adjectif « courant » finit par -ant. + - Explication : « Courant » finit par -ant : l'adverbe s'écrit « couramment ». + - Statut : draft +- **cm2_adverbes_qcm_04** (difficulte 2) : Le chevalier combat ... pour défendre le roi. + - Reponses : vaillemment, vaillament, vaillamment + - Reponse attendue : vaillamment + - Indice : L'adjectif « vaillant » finit par -ant. + - Explication : « Vaillant » finit par -ant : l'adverbe s'écrit « vaillamment ». + - Statut : draft +- **cm2_adverbes_qcm_05** (difficulte 2) : L'élève répond ... à la question. + - Reponses : intelligement, intelligamment, intelligemment + - Reponse attendue : intelligemment + - Indice : L'adjectif « intelligent » finit par -ent. + - Explication : « Intelligent » finit par -ent : l'adverbe s'écrit « intelligemment ». + - Statut : draft +- **cm2_adverbes_qcm_06** (difficulte 2) : Le sportif court ... vers l'arrivée. + - Reponses : rapidement, rapidemment, rapidamment + - Reponse attendue : rapidement + - Indice : L'adjectif « rapide » finit par -e : on ajoute -ment. + - Explication : « Rapide » finit par -e : l'adverbe s'écrit « rapidement ». + - Statut : draft +- **cm2_adverbes_qcm_07** (difficulte 3) : Le médecin examine ... le malade. + - Reponses : attentivement, attentivemment, attentivamment + - Reponse attendue : attentivement + - Indice : L'adjectif « attentif » donne « attentive » au féminin : on ajoute -ment. + - Explication : « Attentive » + -ment : l'adverbe s'écrit « attentivement ». + - Statut : draft +- **cm2_adverbes_qcm_08** (difficulte 3) : Il se bat ... pour gagner. + - Reponses : violamment, violemment, violement + - Reponse attendue : violemment + - Indice : L'adjectif « violent » finit par -ent. + - Explication : « Violent » finit par -ent : l'adverbe s'écrit « violemment ». + - Statut : draft + +### Corrections de phrase + +- **cm2_adverbes_correction_01** (difficulte 1) : Il traverse la rue [prudamment. -> prudemment.] + - Indice : L'adjectif « prudent » finit par -ent. + - Explication : « Prudent » finit par -ent : l'adverbe s'écrit « prudemment ». + - Statut : draft +- **cm2_adverbes_correction_02** (difficulte 2) : Elle écoute [attentivemment -> attentivement] la leçon. + - Indice : L'adjectif « attentif » donne « attentive » au féminin. + - Explication : « Attentive » + -ment : l'adverbe s'écrit « attentivement ». + - Statut : draft +- **cm2_adverbes_correction_03** (difficulte 2) : Le chien aboie [bruyemment -> bruyamment] dans la cour. + - Indice : L'adjectif « bruyant » finit par -ant. + - Explication : « Bruyant » finit par -ant : l'adverbe s'écrit « bruyamment ». + - Statut : draft +- **cm2_adverbes_correction_04** (difficulte 3) : Le héros se bat [vaillemment -> vaillamment] jusqu'au bout. + - Indice : L'adjectif « vaillant » finit par -ant. + - Explication : « Vaillant » finit par -ant : l'adverbe s'écrit « vaillamment ». + - Statut : draft + +### Dictees + +- **cm2_adverbes_dictee_01** : Le lion regarde sa proie patiemment. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_adverbes_dictee_02** : Elle lit à voix haute très couramment. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_adverbes_dictee_03** : Le chevalier combattit vaillamment jusqu'au soir. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_c_cedille (CE1, orthographe) **Enonce** : Devant a, o ou u, la lettre « c » se prononce [k]. Pour entendre le son [s], on écrit « ç » avec une cédille. @@ -374,6 +653,192 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_c_est_s_est (CM1, orthographe) + +**Enonce** : « c'est » veut dire « cela est » ; « s'est » accompagne un sujet et un participe passé : « Paul s'est blessé » (on peut dire « Paul se blesse »). + +**Exemple** : C'est un gâteau. Paul s'est blessé. + +**Statut** : draft + +### Choix multiples + +- **cm1_c_est_s_est_qcm_01** (difficulte 1) : ... un beau jour pour jouer dehors. + - Reponses : S'est, C'est + - Reponse attendue : C'est + - Indice : Remplace par « cela est » : « cela est un beau jour » a du sens. + - Explication : On peut dire « cela est » : on écrit « c'est ». + - Statut : draft +- **cm1_c_est_s_est_qcm_02** (difficulte 1) : Le chat ... endormi sur le canapé. + - Reponses : s'est, c'est + - Reponse attendue : s'est + - Indice : Remplace par « se » au présent : « le chat se dort » → « s'endort ». + - Explication : Le chat est le sujet et « endormi » le participe : on écrit « s'est ». + - Statut : draft +- **cm1_c_est_s_est_qcm_03** (difficulte 1) : Regarde, ... ma nouvelle bicyclette ! + - Reponses : c'est, s'est + - Reponse attendue : c'est + - Indice : Remplace par « cela est ». + - Explication : On peut dire « cela est ma nouvelle bicyclette » : « c'est ». + - Statut : draft +- **cm1_c_est_s_est_qcm_04** (difficulte 2) : Léa ... lavé les mains avant de manger. + - Reponses : c'est, s'est + - Reponse attendue : s'est + - Indice : Remplace par « se lave » au présent. + - Explication : Léa est le sujet, « lavé » est un participe : « s'est ». + - Statut : draft +- **cm1_c_est_s_est_qcm_05** (difficulte 2) : Je crois que ... le facteur qui sonne. + - Reponses : s'est, c'est + - Reponse attendue : c'est + - Indice : Remplace par « cela est ». + - Explication : On peut dire « cela est le facteur » : « c'est ». + - Statut : draft +- **cm1_c_est_s_est_qcm_06** (difficulte 2) : Mon frère ... cassé la jambe en jouant. + - Reponses : s'est, c'est + - Reponse attendue : s'est + - Indice : Remplace par « se casse » au présent. + - Explication : Mon frère est le sujet, « cassé » est un participe : « s'est ». + - Statut : draft +- **cm1_c_est_s_est_qcm_07** (difficulte 3) : Il a bien travaillé : ... pour cela qu'il a réussi. + - Reponses : s'est, c'est + - Reponse attendue : c'est + - Indice : Remplace par « cela est ». + - Explication : On peut dire « cela est pour cela » : « c'est ». + - Statut : draft +- **cm1_c_est_s_est_qcm_08** (difficulte 3) : Le soleil ... caché derrière un gros nuage. + - Reponses : c'est, s'est + - Reponse attendue : s'est + - Indice : Remplace par « se cache » au présent. + - Explication : Le soleil est le sujet, « caché » est un participe : « s'est ». + - Statut : draft + +### Corrections de phrase + +- **cm1_c_est_s_est_correction_01** (difficulte 1) : Paul [c'est -> s'est] blessé au genou. + - Indice : Remplace par « se blesse » au présent. + - Explication : Paul est le sujet, « blessé » est un participe : « s'est ». + - Statut : draft +- **cm1_c_est_s_est_correction_02** (difficulte 2) : [S'est -> C'est] la maison de mes grands-parents. + - Indice : Remplace par « cela est ». + - Explication : On peut dire « cela est la maison » : « c'est ». + - Statut : draft +- **cm1_c_est_s_est_correction_03** (difficulte 2) : La petite fille [c'est -> s'est] perdue dans la forêt. + - Indice : Remplace par « se perd » au présent. + - Explication : La petite fille est le sujet, « perdue » est un participe : « s'est ». + - Statut : draft +- **cm1_c_est_s_est_correction_04** (difficulte 3) : Je sais que [s'est -> c'est] toi qui as gagné la course. + - Indice : Remplace par « cela est ». + - Explication : On peut dire « cela est toi qui as gagné » : « c'est ». + - Statut : draft + +### Dictees + +- **cm1_c_est_s_est_dictee_01** : C'est un grand jour pour toute la classe. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_c_est_s_est_dictee_02** : Mon cousin s'est perdu dans la ville. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_c_est_s_est_dictee_03** : Quand la pluie s'est arrêtée, c'est le soleil qui est revenu. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_ces_ses (CM1, orthographe) + +**Enonce** : « ces » sert à montrer (ces livres-ci) ; « ses » indique ce qui appartient à quelqu'un (ses livres : les livres de lui ou d'elle). + +**Exemple** : Ces nuages annoncent la pluie. Léa range ses crayons. + +**Statut** : draft + +### Choix multiples + +- **cm1_ces_ses_qcm_01** (difficulte 1) : Regarde ... beaux oiseaux dans le ciel ! + - Reponses : ces, ses + - Reponse attendue : ces + - Indice : Remplace par « ce » : « ce bel oiseau » a du sens. + - Explication : « Ces » est le pluriel de « ce » : on montre des oiseaux. + - Statut : draft +- **cm1_ces_ses_qcm_02** (difficulte 1) : Théo range ... crayons dans sa trousse. + - Reponses : ses, ces + - Reponse attendue : ses + - Indice : Remplace par « son » : « son crayon » a du sens. + - Explication : « Ses » est le pluriel de « son » : les crayons de Théo. + - Statut : draft +- **cm1_ces_ses_qcm_03** (difficulte 1) : J'aime beaucoup ... gâteaux au chocolat, là-bas. + - Reponses : ses, ces + - Reponse attendue : ces + - Indice : Remplace par « ce » : « ce gâteau » a du sens. + - Explication : « Ces » est le pluriel de « ce » : on montre des gâteaux. + - Statut : draft +- **cm1_ces_ses_qcm_04** (difficulte 2) : Julie a oublié ... clés sur la table. + - Reponses : ses, ces + - Reponse attendue : ses + - Indice : Remplace par « sa » : « sa clé » a du sens. + - Explication : « Ses » est le pluriel de « sa » : les clés de Julie. + - Statut : draft +- **cm1_ces_ses_qcm_05** (difficulte 2) : Pourquoi achètes-tu ... pommes vertes ? + - Reponses : ces, ses + - Reponse attendue : ces + - Indice : Remplace par « cette » : « cette pomme » a du sens. + - Explication : « Ces » est le pluriel de « cette » : on montre des pommes. + - Statut : draft +- **cm1_ces_ses_qcm_06** (difficulte 2) : Le chat lèche ... pattes après la pluie. + - Reponses : ses, ces + - Reponse attendue : ses + - Indice : Remplace par « sa » : « sa patte » a du sens. + - Explication : « Ses » est le pluriel de « sa » : les pattes du chat. + - Statut : draft +- **cm1_ces_ses_qcm_07** (difficulte 3) : Regarde ... nuages noirs, il va pleuvoir ! + - Reponses : ces, ses + - Reponse attendue : ces + - Indice : Remplace par « ce » : « ce nuage » a du sens. + - Explication : « Ces » est le pluriel de « ce » : on montre des nuages. + - Statut : draft +- **cm1_ces_ses_qcm_08** (difficulte 3) : Max a rangé tous ... jouets dans son coffre. + - Reponses : ces, ses + - Reponse attendue : ses + - Indice : Remplace par « son » : « son jouet » a du sens. + - Explication : « Ses » est le pluriel de « son » : les jouets de Max. + - Statut : draft + +### Corrections de phrase + +- **cm1_ces_ses_correction_01** (difficulte 1) : Regarde [ses -> ces] nuages-là, ils sont très noirs ! + - Indice : Remplace par « ce » : « ce nuage-là » a du sens. + - Explication : « Ces » est le pluriel de « ce » : on montre des nuages. + - Statut : draft +- **cm1_ces_ses_correction_02** (difficulte 2) : Le chien secoue [ces -> ses] oreilles en sortant de l'eau. + - Indice : Remplace par « son » : « son oreille » a du sens. + - Explication : « Ses » est le pluriel de « son » : les oreilles du chien. + - Statut : draft +- **cm1_ces_ses_correction_03** (difficulte 2) : Léa a rangé [ces -> ses] affaires avant de partir à l'école. + - Indice : Remplace par « son » : « son affaire » a du sens. + - Explication : « Ses » est le pluriel de « son » : les affaires de Léa. + - Statut : draft +- **cm1_ces_ses_correction_04** (difficulte 3) : Pourquoi portes-tu [ses -> ces] chaussures-ci aujourd'hui ? + - Indice : Remplace par « cette » : « cette chaussure-ci » a du sens. + - Explication : « Ces » est le pluriel de « cette » : on montre des chaussures. + - Statut : draft + +### Dictees + +- **cm1_ces_ses_dictee_01** : Ces champignons poussent après la pluie. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_ces_ses_dictee_02** : Le boulanger sort ses pains du four chaud. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_ces_ses_dictee_03** : Mon voisin répare ses outils avec ces vis neuves. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_e_er_infinitif (CE2, grammaire) **Enonce** : Pour choisir entre « é » et « er », remplace le verbe par « vendre » ou « vendu » : si « vendre » convient, on écrit « er » ; si « vendu » convient, on écrit « é ». @@ -560,6 +1025,99 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_futur_conditionnel (CM2, grammaire) + +**Enonce** : Au futur, la terminaison est -rai, -ras, -ra, -rons, -rez, -ront ; au conditionnel présent, elle est -rais, -rais, -rait, -rions, -riez, -raient. Après « si » + imparfait, on emploie le conditionnel. + +**Exemple** : Demain, je viendrai. Si j'avais le temps, je viendrais. + +**Statut** : draft + +### Choix multiples + +- **cm2_futur_cond_qcm_01** (difficulte 1) : Demain, je ... te voir. + - Reponses : viendrais, viendrai + - Reponse attendue : viendrai + - Indice : « Demain » : l'action est certaine, c'est le futur. + - Explication : L'action est certaine : on écrit le futur « viendrai ». + - Statut : draft +- **cm2_futur_cond_qcm_02** (difficulte 1) : Si j'avais des ailes, je ... jusqu'au volcan. + - Reponses : volerais, volerai + - Reponse attendue : volerais + - Indice : Après « si » + imparfait, on emploie le conditionnel. + - Explication : Après « si j'avais », on écrit le conditionnel : « volerais ». + - Statut : draft +- **cm2_futur_cond_qcm_03** (difficulte 1) : Ce soir, il ... plus tard que d'habitude. + - Reponses : mangera, mangerait + - Reponse attendue : mangera + - Indice : « Ce soir » : l'action est certaine, c'est le futur. + - Explication : L'action est certaine : on écrit le futur « mangera ». + - Statut : draft +- **cm2_futur_cond_qcm_04** (difficulte 2) : Si tu étudiais plus, tu ... ton examen. + - Reponses : réussirais, réussiras + - Reponse attendue : réussirais + - Indice : Après « si » + imparfait, on emploie le conditionnel. + - Explication : Après « si tu étudiais », on écrit le conditionnel : « réussirais ». + - Statut : draft +- **cm2_futur_cond_qcm_05** (difficulte 2) : Quand il fera beau, nous ... en forêt. + - Reponses : irions, irons + - Reponse attendue : irons + - Indice : Après « quand » + futur, on reste au futur. + - Explication : Après « quand il fera », on écrit le futur : « irons ». + - Statut : draft +- **cm2_futur_cond_qcm_06** (difficulte 2) : Si nous avions de l'argent, nous ... un bateau. + - Reponses : achèterions, achèterons + - Reponse attendue : achèterions + - Indice : Après « si » + imparfait, on emploie le conditionnel. + - Explication : Après « si nous avions », on écrit le conditionnel : « achèterions ». + - Statut : draft +- **cm2_futur_cond_qcm_07** (difficulte 3) : Ils ... du feu s'ils avaient du bois. + - Reponses : feront, feraient + - Reponse attendue : feraient + - Indice : Après « s'ils avaient » (imparfait), on emploie le conditionnel. + - Explication : Après « s'ils avaient », on écrit le conditionnel : « feraient ». + - Statut : draft +- **cm2_futur_cond_qcm_08** (difficulte 3) : Si elle le pouvait, elle ... le tour du monde. + - Reponses : ferait, fera + - Reponse attendue : ferait + - Indice : Après « si » + imparfait, on emploie le conditionnel. + - Explication : Après « si elle le pouvait », on écrit le conditionnel : « ferait ». + - Statut : draft + +### Corrections de phrase + +- **cm2_futur_cond_correction_01** (difficulte 1) : Si j'étais riche, [j'achèterai -> achèterais] une île. + - Indice : Après « si » + imparfait, on emploie le conditionnel. + - Explication : Après « si j'étais », on écrit le conditionnel : « achèterais ». + - Statut : draft +- **cm2_futur_cond_correction_02** (difficulte 2) : Demain, nous [partirions -> partirons] tôt pour le volcan. + - Indice : « Demain » : l'action est certaine, c'est le futur. + - Explication : L'action est certaine : on écrit le futur « partirons ». + - Statut : draft +- **cm2_futur_cond_correction_03** (difficulte 2) : S'il pleuvait, [tu -> resterais] resteras à la maison. + - Indice : Après « s'il pleuvait » (imparfait), on emploie le conditionnel. + - Explication : Après « s'il pleuvait », on écrit le conditionnel : « resterais ». + - Statut : draft +- **cm2_futur_cond_correction_04** (difficulte 3) : Dès qu'il arrivera, elle lui [parlerait. -> parlera] + - Indice : Après « dès qu'il arrivera » (futur), on reste au futur. + - Explication : Après « dès qu'il arrivera », on écrit le futur : « parlera ». + - Statut : draft + +### Dictees + +- **cm2_futur_cond_dictee_01** : Si j'avais une cape, je volerais au-dessus des nuages. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_futur_cond_dictee_02** : Le guide nous montrera la lave dès demain. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_futur_cond_dictee_03** : Si le volcan se réveillait, les habitants partiraient. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_futur_simple (CE2, grammaire) **Enonce** : Au futur, les verbes en -er gardent leur infinitif et prennent -ai, -as, -a, -ons, -ez, -ont. @@ -1118,6 +1676,192 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_imparfait (CM1, grammaire) + +**Enonce** : À l'imparfait, les terminaisons sont -ais, -ais, -ait, -ions, -iez, -aient. + +**Exemple** : Je chantais. Il chantait. Nous chantions. Ils chantaient. + +**Statut** : draft + +### Choix multiples + +- **cm1_imparfait_qcm_01** (difficulte 1) : Quand j'étais petit, je ... souvent au parc. + - Reponses : jouais, jouait, jouaient + - Reponse attendue : jouais + - Indice : Avec « je », l'imparfait finit par -ais. + - Explication : Avec « je », l'imparfait finit par -ais : je jouais. + - Statut : draft +- **cm1_imparfait_qcm_02** (difficulte 1) : Autrefois, il ... une vieille voiture. + - Reponses : avait, avais, avaient + - Reponse attendue : avait + - Indice : Avec « il », l'imparfait finit par -ait. + - Explication : Avec « il », l'imparfait finit par -ait : il avait. + - Statut : draft +- **cm1_imparfait_qcm_03** (difficulte 1) : Chaque matin, tu ... du pain frais. + - Reponses : mangeait, mangeais, mangeaient + - Reponse attendue : mangeais + - Indice : Avec « tu », l'imparfait finit par -ais. + - Explication : Avec « tu », l'imparfait finit par -ais : tu mangeais. + - Statut : draft +- **cm1_imparfait_qcm_04** (difficulte 2) : Autrefois, nous ... au bord de la rivière. + - Reponses : pêchiez, pêchions, pêchaient + - Reponse attendue : pêchions + - Indice : Avec « nous », l'imparfait finit par -ions. + - Explication : Avec « nous », l'imparfait finit par -ions : nous pêchions. + - Statut : draft +- **cm1_imparfait_qcm_05** (difficulte 2) : Le soir, vous ... des histoires à vos enfants. + - Reponses : racontiez, racontaient, racontions + - Reponse attendue : racontiez + - Indice : Avec « vous », l'imparfait finit par -iez. + - Explication : Avec « vous », l'imparfait finit par -iez : vous racontiez. + - Statut : draft +- **cm1_imparfait_qcm_06** (difficulte 2) : Les chevaliers ... le château jour et nuit. + - Reponses : gardait, gardions, gardaient + - Reponse attendue : gardaient + - Indice : Plusieurs chevaliers : pense à « ils ». + - Explication : Avec « ils », l'imparfait finit par -aient : ils gardaient. + - Statut : draft +- **cm1_imparfait_qcm_07** (difficulte 3) : Pendant que la pluie tombait, mes sœurs ... un jeu. + - Reponses : préparaient, préparions, préparait + - Reponse attendue : préparaient + - Indice : Plusieurs sœurs : pense à « elles ». + - Explication : Avec « elles », l'imparfait finit par -aient : elles préparaient. + - Statut : draft +- **cm1_imparfait_qcm_08** (difficulte 3) : Toi et moi, nous ... toujours ensemble à l'école. + - Reponses : allaient, alliez, allions + - Reponse attendue : allions + - Indice : « Toi et moi » peut se remplacer par « nous ». + - Explication : Avec « nous », l'imparfait finit par -ions : nous allions. + - Statut : draft + +### Corrections de phrase + +- **cm1_imparfait_correction_01** (difficulte 1) : Autrefois, je [jouait -> jouais] aux billes avec mon frère. + - Indice : Avec « je », l'imparfait finit par -ais. + - Explication : Avec « je », l'imparfait finit par -ais : je jouais. + - Statut : draft +- **cm1_imparfait_correction_02** (difficulte 2) : Les enfants [chantait -> chantaient] pendant le voyage. + - Indice : Plusieurs enfants : pense à « ils ». + - Explication : Avec « ils », l'imparfait finit par -aient : ils chantaient. + - Statut : draft +- **cm1_imparfait_correction_03** (difficulte 2) : Autrefois, nous [habitiez -> habitions] dans une petite ferme. + - Indice : Avec « nous », l'imparfait finit par -ions. + - Explication : Avec « nous », l'imparfait finit par -ions : nous habitions. + - Statut : draft +- **cm1_imparfait_correction_04** (difficulte 3) : Le dimanche, vous [marchions -> marchiez] lentement dans la neige. + - Indice : Avec « vous », l'imparfait finit par -iez. + - Explication : Avec « vous », l'imparfait finit par -iez : vous marchiez. + - Statut : draft + +### Dictees + +- **cm1_imparfait_dictee_01** : Autrefois, les villageois puisaient l'eau au puits. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_imparfait_dictee_02** : Tous les soirs, ma grand-mère tricotait près du feu. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_imparfait_dictee_03** : Quand nous étions enfants, nous construisions des cabanes. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_la_la_accent_l_a (CM1, orthographe) + +**Enonce** : « la » est un article ou un pronom devant un nom ou un verbe ; « là » avec un accent indique un lieu ; « l'a » est « l' » + le verbe avoir : on peut dire « l'avait ». + +**Exemple** : La table est là. Il l'a vue. + +**Statut** : draft + +### Choix multiples + +- **cm1_la_la_l_a_qcm_01** (difficulte 1) : Mets ton sac ... , sur la chaise. + - Reponses : l'a, la, là + - Reponse attendue : là + - Indice : Cherche un lieu : « là-bas » a du sens. + - Explication : On indique un lieu : on écrit « là » avec un accent. + - Statut : draft +- **cm1_la_la_l_a_qcm_02** (difficulte 1) : ... maîtresse écrit au tableau. + - Reponses : La, L'a, Là + - Reponse attendue : La + - Indice : « La » est ici un article devant un nom. + - Explication : « La » accompagne le nom « maîtresse » : on écrit « la » sans accent. + - Statut : draft +- **cm1_la_la_l_a_qcm_03** (difficulte 1) : Paul ... vu hier au marché. + - Reponses : là, l'a, la + - Reponse attendue : l'a + - Indice : Remplace par « l'avait » : « Paul l'avait vu » a du sens. + - Explication : On peut dire « l'avait » : on écrit « l'a ». + - Statut : draft +- **cm1_la_la_l_a_qcm_04** (difficulte 2) : Pose le livre ... et viens manger. + - Reponses : là, l'a, la + - Reponse attendue : là + - Indice : Cherche un lieu : « là-bas » a du sens. + - Explication : On indique un lieu : on écrit « là » avec un accent. + - Statut : draft +- **cm1_la_la_l_a_qcm_05** (difficulte 2) : Je pense que Marie ... déjà lu ce livre. + - Reponses : là, l'a, la + - Reponse attendue : l'a + - Indice : Remplace par « l'avait » : « Marie l'avait lu » a du sens. + - Explication : On peut dire « l'avait » : on écrit « l'a ». + - Statut : draft +- **cm1_la_la_l_a_qcm_06** (difficulte 2) : Ma sœur est ... , près de la fenêtre. + - Reponses : l'a, la, là + - Reponse attendue : là + - Indice : Cherche un lieu : « là-bas » a du sens. + - Explication : On indique un lieu : on écrit « là » avec un accent. + - Statut : draft +- **cm1_la_la_l_a_qcm_07** (difficulte 3) : Cette chanson, Tom ... apprise par cœur. + - Reponses : la, l'a, là + - Reponse attendue : l'a + - Indice : Remplace par « l'avait » : « Tom l'avait apprise » a du sens. + - Explication : On peut dire « l'avait » : on écrit « l'a ». + - Statut : draft +- **cm1_la_la_l_a_qcm_08** (difficulte 3) : Reste ... jusqu'à mon retour. + - Reponses : l'a, la, là + - Reponse attendue : là + - Indice : Cherche un lieu : « là-bas » a du sens. + - Explication : On indique un lieu : on écrit « là » avec un accent. + - Statut : draft + +### Corrections de phrase + +- **cm1_la_la_l_a_correction_01** (difficulte 1) : Papa [la -> l'a] lavé ce matin. + - Indice : Remplace par « l'avait » : « papa l'avait lavé » a du sens. + - Explication : On peut dire « l'avait » : on écrit « l'a ». + - Statut : draft +- **cm1_la_la_l_a_correction_02** (difficulte 2) : Mon chat est [la, -> là,] sur le canapé. + - Indice : Cherche un lieu : « là-bas » a du sens. + - Explication : On indique un lieu : on écrit « là » avec un accent. + - Statut : draft +- **cm1_la_la_l_a_correction_03** (difficulte 2) : [L'a -> La] maison de Léa est très grande. + - Indice : « La » est ici un article devant le nom « maison ». + - Explication : « La » accompagne le nom « maison » : on écrit « la ». + - Statut : draft +- **cm1_la_la_l_a_correction_04** (difficulte 3) : Je la connais bien : ma mère [la -> l'a] rencontrée hier. + - Indice : Remplace par « l'avait » : « ma mère l'avait rencontrée » a du sens. + - Explication : On peut dire « l'avait » : on écrit « l'a ». + - Statut : draft + +### Dictees + +- **cm1_la_la_l_a_dictee_01** : La tortue avance lentement sur le chemin. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_la_la_l_a_dictee_02** : Mon frère est là depuis ce matin. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_la_la_l_a_dictee_03** : Ma tante l'a invitée pour son anniversaire. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_lettre_muette_finale (CE2, orthographe) **Enonce** : Pour trouver la lettre muette à la fin d'un mot, cherche son féminin ou un mot de la même famille : grand (grande), petit (petite), chant (chanter). @@ -1211,6 +1955,99 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_leur_leurs (CM1, orthographe) + +**Enonce** : « leur » ne prend pas de -s quand il accompagne un verbe (je leur parle) ; « leurs » prend un -s quand il accompagne un nom pluriel (leurs amis). + +**Exemple** : Je leur donne un livre. Ils rangent leurs jouets. + +**Statut** : draft + +### Choix multiples + +- **cm1_leur_leurs_qcm_01** (difficulte 1) : Les enfants rangent ... jouets. + - Reponses : leurs, leur + - Reponse attendue : leurs + - Indice : Remplace par « ses » : « ses jouets » a du sens. + - Explication : On peut dire « ses jouets » : « leurs » accompagne un nom pluriel. + - Statut : draft +- **cm1_leur_leurs_qcm_02** (difficulte 1) : Je ... donne un cadeau. + - Reponses : leur, leurs + - Reponse attendue : leur + - Indice : Remplace par « lui » : « je lui donne » a du sens. + - Explication : On peut dire « je lui donne » : « leur » accompagne le verbe et ne prend pas de -s. + - Statut : draft +- **cm1_leur_leurs_qcm_03** (difficulte 1) : Les élèves ouvrent ... cahiers. + - Reponses : leurs, leur + - Reponse attendue : leurs + - Indice : Remplace par « ses » : « ses cahiers » a du sens. + - Explication : On peut dire « ses cahiers » : « leurs » accompagne un nom pluriel. + - Statut : draft +- **cm1_leur_leurs_qcm_04** (difficulte 2) : Le maître ... explique la leçon. + - Reponses : leurs, leur + - Reponse attendue : leur + - Indice : Remplace par « lui » : « il lui explique » a du sens. + - Explication : On peut dire « il lui explique » : « leur » reste sans -s. + - Statut : draft +- **cm1_leur_leurs_qcm_05** (difficulte 2) : Mes voisins arrosent ... fleurs. + - Reponses : leurs, leur + - Reponse attendue : leurs + - Indice : Remplace par « ses » : « ses fleurs » a du sens. + - Explication : On peut dire « ses fleurs » : « leurs » accompagne un nom pluriel. + - Statut : draft +- **cm1_leur_leurs_qcm_06** (difficulte 2) : Je ... ai dit la vérité. + - Reponses : leurs, leur + - Reponse attendue : leur + - Indice : Remplace par « lui » : « je lui ai dit » a du sens. + - Explication : On peut dire « je lui ai dit » : « leur » reste sans -s. + - Statut : draft +- **cm1_leur_leurs_qcm_07** (difficulte 3) : Les musiciens ont perdu ... partitions. + - Reponses : leurs, leur + - Reponse attendue : leurs + - Indice : Remplace par « ses » : « ses partitions » a du sens. + - Explication : On peut dire « ses partitions » : « leurs » accompagne un nom pluriel. + - Statut : draft +- **cm1_leur_leurs_qcm_08** (difficulte 3) : Ils ne ... ont pas répondu hier. + - Reponses : leurs, leur + - Reponse attendue : leur + - Indice : Remplace par « lui » : « ils ne lui ont pas répondu » a du sens. + - Explication : On peut dire « ne lui ont pas répondu » : « leur » reste sans -s. + - Statut : draft + +### Corrections de phrase + +- **cm1_leur_leurs_correction_01** (difficulte 1) : Les chats lèchent [leur -> leurs] pattes. + - Indice : Remplace par « ses » : « ses pattes » a du sens. + - Explication : On peut dire « ses pattes » : il faut « leurs ». + - Statut : draft +- **cm1_leur_leurs_correction_02** (difficulte 2) : Je [leurs -> leur] parle chaque jour. + - Indice : Remplace par « lui » : « je lui parle » a du sens. + - Explication : On peut dire « je lui parle » : « leur » reste sans -s. + - Statut : draft +- **cm1_leur_leurs_correction_03** (difficulte 2) : Les sportifs lavent [leur -> leurs] maillots. + - Indice : Remplace par « ses » : « ses maillots » a du sens. + - Explication : On peut dire « ses maillots » : il faut « leurs ». + - Statut : draft +- **cm1_leur_leurs_correction_04** (difficulte 3) : Maman [leurs -> leur] a préparé un goûter. + - Indice : Remplace par « lui » : « maman lui a préparé » a du sens. + - Explication : On peut dire « lui a préparé » : « leur » reste sans -s. + - Statut : draft + +### Dictees + +- **cm1_leur_leurs_dictee_01** : Les enfants rangent leurs affaires dans le placard. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_leur_leurs_dictee_02** : Je leur prête mon vélo pour la journée. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_leur_leurs_dictee_03** : Les marins leur ont raconté leurs voyages. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_m_devant_mbp (CE1, orthographe) **Enonce** : Devant les lettres m, b et p, on écrit « m » et non « n ». @@ -1304,6 +2141,471 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_ou_ou_accent (CM1, orthographe) + +**Enonce** : « où » avec un accent indique un lieu ou un moment (Où vas-tu ?) ; « ou » sans accent veut dire « ou bien » et peut se remplacer par « ou bien ». + +**Exemple** : Où vas-tu ? Du thé ou du café ? + +**Statut** : draft + +### Choix multiples + +- **cm1_ou_ou_qcm_01** (difficulte 1) : ... habites-tu ? + - Reponses : Où, Ou + - Reponse attendue : Où + - Indice : Remplace par « ou bien » : la phrase n'a pas de sens, c'est un lieu. + - Explication : On cherche un lieu : on écrit « où » avec un accent. + - Statut : draft +- **cm1_ou_ou_qcm_02** (difficulte 1) : Veux-tu du thé ... du chocolat ? + - Reponses : où, ou + - Reponse attendue : ou + - Indice : Remplace par « ou bien » : « du thé ou bien du chocolat » a du sens. + - Explication : On peut dire « ou bien » : on écrit « ou » sans accent. + - Statut : draft +- **cm1_ou_ou_qcm_03** (difficulte 1) : Voici la ville ... je suis né. + - Reponses : où, ou + - Reponse attendue : où + - Indice : Remplace par « ou bien » : la phrase n'a pas de sens. + - Explication : On indique un lieu : on écrit « où » avec un accent. + - Statut : draft +- **cm1_ou_ou_qcm_04** (difficulte 2) : Tu peux prendre le bus ... le train. + - Reponses : où, ou + - Reponse attendue : ou + - Indice : Remplace par « ou bien » : « le bus ou bien le train » a du sens. + - Explication : On peut dire « ou bien » : on écrit « ou » sans accent. + - Statut : draft +- **cm1_ou_ou_qcm_05** (difficulte 2) : Je ne sais pas ... j'ai posé mes lunettes. + - Reponses : ou, où + - Reponse attendue : où + - Indice : Remplace par « ou bien » : la phrase n'a pas de sens. + - Explication : On indique un lieu : on écrit « où » avec un accent. + - Statut : draft +- **cm1_ou_ou_qcm_06** (difficulte 2) : Le jour ... il pleut, nous restons à la maison. + - Reponses : ou, où + - Reponse attendue : où + - Indice : Remplace par « ou bien » : la phrase n'a pas de sens. + - Explication : On indique un moment : on écrit « où » avec un accent. + - Statut : draft +- **cm1_ou_ou_qcm_07** (difficulte 3) : Elle hésite : le chat ... le chien ? + - Reponses : où, ou + - Reponse attendue : ou + - Indice : Remplace par « ou bien » : « le chat ou bien le chien » a du sens. + - Explication : On peut dire « ou bien » : on écrit « ou » sans accent. + - Statut : draft +- **cm1_ou_ou_qcm_08** (difficulte 3) : C'est le moment ... tout a commencé. + - Reponses : où, ou + - Reponse attendue : où + - Indice : Remplace par « ou bien » : la phrase n'a pas de sens. + - Explication : On indique un moment : on écrit « où » avec un accent. + - Statut : draft + +### Corrections de phrase + +- **cm1_ou_ou_correction_01** (difficulte 1) : [Ou -> Où] vas-tu après l'école ? + - Indice : Remplace par « ou bien » : la phrase n'a pas de sens. + - Explication : On cherche un lieu : on écrit « où » avec un accent. + - Statut : draft +- **cm1_ou_ou_correction_02** (difficulte 2) : Tu préfères la pomme [où -> ou] la poire ? + - Indice : Remplace par « ou bien » : « la pomme ou bien la poire » a du sens. + - Explication : On peut dire « ou bien » : on écrit « ou » sans accent. + - Statut : draft +- **cm1_ou_ou_correction_03** (difficulte 2) : Voilà la plage [ou -> où] nous avons joué. + - Indice : Remplace par « ou bien » : la phrase n'a pas de sens. + - Explication : On indique un lieu : on écrit « où » avec un accent. + - Statut : draft +- **cm1_ou_ou_correction_04** (difficulte 3) : Dis-moi [ou -> où] tu as caché mon livre. + - Indice : Remplace par « ou bien » : la phrase n'a pas de sens. + - Explication : On indique un lieu : on écrit « où » avec un accent. + - Statut : draft + +### Dictees + +- **cm1_ou_ou_dictee_01** : Je sais où j'ai mis mon cartable rouge. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_ou_ou_dictee_02** : Tu peux boire du lait ou du jus d'orange. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_ou_ou_dictee_03** : Voici le village où ma grand-mère est née. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_participe_cod_avant (CM2, grammaire) + +**Enonce** : Avec « avoir », le participe passé s'accorde avec le complément d'objet seulement s'il est placé avant le verbe : la lettre que j'ai écrite ; j'ai écrit une lettre. + +**Exemple** : Les fleurs que Léa a cueillies. Léa a cueilli des fleurs. + +**Statut** : draft + +### Choix multiples + +- **cm2_participe_cod_qcm_01** (difficulte 1) : Léa a ... des fleurs. + - Reponses : cueillies, cueilli + - Reponse attendue : cueilli + - Indice : Les fleurs sont placées après le verbe : le participe ne s'accorde pas. + - Explication : Le complément est après le verbe : le participe reste « cueilli ». + - Statut : draft +- **cm2_participe_cod_qcm_02** (difficulte 1) : Les fleurs que Léa a ... sont belles. + - Reponses : cueillies, cueilli + - Reponse attendue : cueillies + - Indice : Les fleurs (que) sont placées avant le verbe : le participe s'accorde. + - Explication : Le complément « que » (= les fleurs) est avant : « cueillies ». + - Statut : draft +- **cm2_participe_cod_qcm_03** (difficulte 1) : Paul a ... les pommes. + - Reponses : mangées, mangé + - Reponse attendue : mangé + - Indice : Les pommes sont placées après le verbe : le participe ne s'accorde pas. + - Explication : Le complément est après le verbe : le participe reste « mangé ». + - Statut : draft +- **cm2_participe_cod_qcm_04** (difficulte 2) : Les pommes que Paul a ... étaient bonnes. + - Reponses : mangées, mangé + - Reponse attendue : mangées + - Indice : Les pommes (que) sont placées avant le verbe : le participe s'accorde. + - Explication : Le complément « que » (= les pommes) est avant : « mangées ». + - Statut : draft +- **cm2_participe_cod_qcm_05** (difficulte 2) : La lettre que j'ai ... est partie. + - Reponses : écrite, écrit + - Reponse attendue : écrite + - Indice : La lettre (que) est placée avant le verbe : le participe s'accorde. + - Explication : Le complément « que » (= la lettre) est avant : « écrite ». + - Statut : draft +- **cm2_participe_cod_qcm_06** (difficulte 2) : Max a ... plusieurs lettres. + - Reponses : écrites, écrit + - Reponse attendue : écrit + - Indice : Les lettres sont placées après le verbe : le participe ne s'accorde pas. + - Explication : Le complément est après le verbe : le participe reste « écrit ». + - Statut : draft +- **cm2_participe_cod_qcm_07** (difficulte 3) : Les photos qu'elle a ... sont réussies. + - Reponses : pris, prises + - Reponse attendue : prises + - Indice : Les photos (que) sont placées avant le verbe : le participe s'accorde. + - Explication : Le complément « que » (= les photos) est avant : « prises ». + - Statut : draft +- **cm2_participe_cod_qcm_08** (difficulte 3) : Quelle belle histoire il a ... ! + - Reponses : raconté, racontée + - Reponse attendue : racontée + - Indice : « Quelle belle histoire » est placé avant le verbe : le participe s'accorde. + - Explication : Le complément est avant le verbe : « racontée ». + - Statut : draft + +### Corrections de phrase + +- **cm2_participe_cod_correction_01** (difficulte 1) : Les framboises que ma sœur a [cueilli -> cueillies] sont mûres. + - Indice : Les framboises (que) sont placées avant le verbe : le participe s'accorde. + - Explication : Le complément « que » (= les framboises) est avant : « cueillies ». + - Statut : draft +- **cm2_participe_cod_correction_02** (difficulte 2) : Sophie a [mangées -> mangé] toutes les cerises du panier. + - Indice : Les cerises sont placées après le verbe : le participe ne s'accorde pas. + - Explication : Le complément est après le verbe : le participe reste « mangé ». + - Statut : draft +- **cm2_participe_cod_correction_03** (difficulte 2) : La chanson qu'il a [chanté -> chantée] était jolie. + - Indice : La chanson (que) est placée avant le verbe : le participe s'accorde. + - Explication : Le complément « qu' » (= la chanson) est avant : « chantée ». + - Statut : draft +- **cm2_participe_cod_correction_04** (difficulte 3) : Les lettres que j'ai [écrit -> écrites] hier sont parties. + - Indice : Les lettres (que) sont placées avant le verbe : le participe s'accorde. + - Explication : Le complément « que » (= les lettres) est avant : « écrites ». + - Statut : draft + +### Dictees + +- **cm2_participe_cod_dictee_01** : Hier, ma sœur a cueilli des framboises sauvages. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_participe_cod_dictee_02** : Mon frère a rangé tous ses livres sur l'étagère. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_participe_cod_dictee_03** : La poésie qu'il a apprise est très longue. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_participe_passe_forme (CM1, grammaire) + +**Enonce** : Le participe passé des verbes en -ir se termine par -i (fini), celui des verbes en -re souvent par -u (vendu), et quelques-uns par -is ou -it (pris, écrit). + +**Exemple** : J'ai fini. Il a vendu. Elle a pris. Nous avons écrit. + +**Statut** : draft + +### Choix multiples + +- **cm1_participe_forme_qcm_01** (difficulte 1) : Léa a ... son travail à midi. + - Reponses : fini, finé, finu + - Reponse attendue : fini + - Indice : Le verbe « finir » est en -ir : son participe finit par -i. + - Explication : Les verbes en -ir ont un participe en -i : « fini ». + - Statut : draft +- **cm1_participe_forme_qcm_02** (difficulte 1) : Papa a ... sa voiture au garage. + - Reponses : vendi, vendé, vendu + - Reponse attendue : vendu + - Indice : Le verbe « vendre » est en -re : son participe finit par -u. + - Explication : Beaucoup de verbes en -re ont un participe en -u : « vendu ». + - Statut : draft +- **cm1_participe_forme_qcm_03** (difficulte 1) : Tu as ... ta clé dans le jardin. + - Reponses : perdu, perdé, perdi + - Reponse attendue : perdu + - Indice : Le verbe « perdre » est en -re : son participe finit par -u. + - Explication : Beaucoup de verbes en -re ont un participe en -u : « perdu ». + - Statut : draft +- **cm1_participe_forme_qcm_04** (difficulte 2) : Les enfants ont ... un gros gâteau. + - Reponses : choisé, choisi, choisu + - Reponse attendue : choisi + - Indice : Le verbe « choisir » est en -ir : son participe finit par -i. + - Explication : Les verbes en -ir ont un participe en -i : « choisi ». + - Statut : draft +- **cm1_participe_forme_qcm_05** (difficulte 2) : Mon frère a ... une lettre à sa tante. + - Reponses : écri, écrie, écrit + - Reponse attendue : écrit + - Indice : Le participe du verbe « écrire » finit par -it. + - Explication : Le participe passé d'« écrire » est « écrit ». + - Statut : draft +- **cm1_participe_forme_qcm_06** (difficulte 2) : Nous avons ... le train de justesse. + - Reponses : pri, prit, pris + - Reponse attendue : pris + - Indice : Le participe du verbe « prendre » finit par -is. + - Explication : Le participe passé de « prendre » est « pris ». + - Statut : draft +- **cm1_participe_forme_qcm_07** (difficulte 3) : Elle a ... la porte du jardin. + - Reponses : ouvrit, ouvri, ouvert + - Reponse attendue : ouvert + - Indice : Le participe du verbe « ouvrir » finit par -ert. + - Explication : Le participe passé d'« ouvrir » est « ouvert ». + - Statut : draft +- **cm1_participe_forme_qcm_08** (difficulte 3) : Les élèves ont ... leur leçon par cœur. + - Reponses : apprit, appris, apri + - Reponse attendue : appris + - Indice : Le participe du verbe « apprendre » finit par -is. + - Explication : Le participe passé d'« apprendre » est « appris ». + - Statut : draft + +### Corrections de phrase + +- **cm1_participe_forme_correction_01** (difficulte 1) : Hier, Tom a [perdi -> perdu] sa casquette. + - Indice : Le verbe « perdre » est en -re : son participe finit par -u. + - Explication : Beaucoup de verbes en -re ont un participe en -u : « perdu ». + - Statut : draft +- **cm1_participe_forme_correction_02** (difficulte 2) : Nous avons [finu -> fini] nos devoirs avant le dîner. + - Indice : Le verbe « finir » est en -ir : son participe finit par -i. + - Explication : Les verbes en -ir ont un participe en -i : « fini ». + - Statut : draft +- **cm1_participe_forme_correction_03** (difficulte 2) : Le boulanger a [vendi -> vendu] tous ses pains. + - Indice : Le verbe « vendre » est en -re : son participe finit par -u. + - Explication : Beaucoup de verbes en -re ont un participe en -u : « vendu ». + - Statut : draft +- **cm1_participe_forme_correction_04** (difficulte 3) : Elle a [ouvri -> ouvert] la fenêtre de la chambre. + - Indice : Le participe du verbe « ouvrir » finit par -ert. + - Explication : Le participe passé d'« ouvrir » est « ouvert ». + - Statut : draft + +### Dictees + +- **cm1_participe_forme_dictee_01** : Hier, j'ai fini mon livre avant le dîner. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_participe_forme_dictee_02** : Le fermier a vendu ses légumes au marché. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_participe_forme_dictee_03** : Les élèves ont appris une longue poésie. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_passe_simple (CM2, grammaire) + +**Enonce** : Au passé simple, à la 3e personne, les verbes en -er font -a (il chanta) et -èrent (ils chantèrent) ; les autres font souvent -it et -irent (il finit, ils finirent). + +**Exemple** : Il chanta. Ils chantèrent. Elle finit. Elles finirent. + +**Statut** : draft + +### Choix multiples + +- **cm2_passe_simple_qcm_01** (difficulte 1) : Le roi ... le château ce matin-là. + - Reponses : quitte, quittait, quitta + - Reponse attendue : quitta + - Indice : Une action rapide au passé : le passé simple finit par -a. + - Explication : Au passé simple, un verbe en -er finit par -a : « il quitta ». + - Statut : draft +- **cm2_passe_simple_qcm_02** (difficulte 1) : Soudain, la lave ... de la montagne. + - Reponses : jaillit, jaillissait, jaillie + - Reponse attendue : jaillit + - Indice : Une action soudaine : le passé simple d'un verbe en -ir finit par -it. + - Explication : Au passé simple, un verbe en -ir finit par -it : « elle jaillit ». + - Statut : draft +- **cm2_passe_simple_qcm_03** (difficulte 1) : Le chevalier ... sur son cheval. + - Reponses : monta, montait, monté + - Reponse attendue : monta + - Indice : Une action rapide au passé : le passé simple finit par -a. + - Explication : Au passé simple, un verbe en -er finit par -a : « il monta ». + - Statut : draft +- **cm2_passe_simple_qcm_04** (difficulte 2) : Les villageois ... le volcan avec crainte. + - Reponses : regardaient, regardant, regardèrent + - Reponse attendue : regardèrent + - Indice : Plusieurs villageois : le passé simple finit par -èrent. + - Explication : Au passé simple, ils : un verbe en -er finit par -èrent : « ils regardèrent ». + - Statut : draft +- **cm2_passe_simple_qcm_05** (difficulte 2) : Alors, le dragon ... un grand cri. + - Reponses : poussa, pousser, poussait + - Reponse attendue : poussa + - Indice : Une action rapide au passé : le passé simple finit par -a. + - Explication : Au passé simple, un verbe en -er finit par -a : « il poussa ». + - Statut : draft +- **cm2_passe_simple_qcm_06** (difficulte 2) : Les enfants ... vers la cabane. + - Reponses : couraient, courant, coururent + - Reponse attendue : coururent + - Indice : Plusieurs enfants, une action soudaine : le passé simple finit par -urent. + - Explication : Au passé simple, ils : « ils coururent ». + - Statut : draft +- **cm2_passe_simple_qcm_07** (difficulte 3) : Elles ... leur travail avant la nuit. + - Reponses : finissaient, finies, finirent + - Reponse attendue : finirent + - Indice : Plusieurs filles : le passé simple d'un verbe en -ir finit par -irent. + - Explication : Au passé simple, elles : un verbe en -ir finit par -irent : « elles finirent ». + - Statut : draft +- **cm2_passe_simple_qcm_08** (difficulte 3) : Le héros ... la princesse. + - Reponses : sauva, sauvait, sauvé + - Reponse attendue : sauva + - Indice : Une action rapide au passé : le passé simple finit par -a. + - Explication : Au passé simple, un verbe en -er finit par -a : « il sauva ». + - Statut : draft + +### Corrections de phrase + +- **cm2_passe_simple_correction_01** (difficulte 1) : Soudain, le héros [entrat -> entra] dans la grotte. + - Indice : Au passé simple, un verbe en -er finit par -a. + - Explication : À la 3e personne du singulier, un verbe en -er finit par -a : « il entra ». + - Statut : draft +- **cm2_passe_simple_correction_02** (difficulte 2) : Les soldats [traversa -> traversèrent] la rivière à la nage. + - Indice : Plusieurs soldats : le passé simple finit par -èrent. + - Explication : Au passé simple, ils : « ils traversèrent ». + - Statut : draft +- **cm2_passe_simple_correction_03** (difficulte 2) : Le roi [finissa -> finit] son repas en silence. + - Indice : Un verbe en -ir finit par -it au passé simple. + - Explication : Au passé simple, il : « il finit ». + - Statut : draft +- **cm2_passe_simple_correction_04** (difficulte 3) : Elles [ouvrit -> ouvrirent] la porte avec précaution. + - Indice : Plusieurs filles : le passé simple finit par -irent. + - Explication : Au passé simple, elles : « elles ouvrirent ». + - Statut : draft + +### Dictees + +- **cm2_passe_simple_dictee_01** : Le roi traversa la forêt sans s'arrêter. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_passe_simple_dictee_02** : Les chevaliers montèrent sur leurs chevaux. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_passe_simple_dictee_03** : Soudain, la princesse ouvrit la lourde porte. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_pluriel_aux_eaux (CM1, orthographe) + +**Enonce** : Les noms en -al font leur pluriel en -aux (un cheval, des chevaux) ; les noms en -eau prennent un -x (un bateau, des bateaux) ; quelques noms en -ou aussi (un bijou, des bijoux). + +**Exemple** : Un animal, des animaux. Un bateau, des bateaux. Un bijou, des bijoux. + +**Statut** : draft + +### Choix multiples + +- **cm1_pluriel_aux_qcm_01** (difficulte 1) : Les ... broutent dans le pré. + - Reponses : chevals, chevaux, chevaus + - Reponse attendue : chevaux + - Indice : Le nom « cheval » finit par -al. + - Explication : Les noms en -al font -aux au pluriel : « chevaux ». + - Statut : draft +- **cm1_pluriel_aux_qcm_02** (difficulte 1) : Plusieurs ... naviguent sur le lac. + - Reponses : bateau, bateaus, bateaux + - Reponse attendue : bateaux + - Indice : Le nom « bateau » finit par -eau. + - Explication : Les noms en -eau prennent un -x au pluriel : « bateaux ». + - Statut : draft +- **cm1_pluriel_aux_qcm_03** (difficulte 1) : Le zoo accueille beaucoup d'... . + - Reponses : animals, animaux, animaus + - Reponse attendue : animaux + - Indice : Le nom « animal » finit par -al. + - Explication : Les noms en -al font -aux au pluriel : « animaux ». + - Statut : draft +- **cm1_pluriel_aux_qcm_04** (difficulte 2) : La reine porte de magnifiques ... . + - Reponses : bijoux, bijoues, bijous + - Reponse attendue : bijoux + - Indice : « Bijou » fait partie des noms en -ou qui prennent un -x. + - Explication : « Bijou » prend un -x au pluriel : « bijoux ». + - Statut : draft +- **cm1_pluriel_aux_qcm_05** (difficulte 2) : Les ouvriers font des ... sur la route. + - Reponses : travaux, travails, travaus + - Reponse attendue : travaux + - Indice : Le nom « travail » finit par -ail. + - Explication : « Travail » fait « travaux » au pluriel. + - Statut : draft +- **cm1_pluriel_aux_qcm_06** (difficulte 2) : J'ai trouvé trois petits ... sur la plage. + - Reponses : cailloux, caillous, cailloues + - Reponse attendue : cailloux + - Indice : « Caillou » fait partie des noms en -ou qui prennent un -x. + - Explication : « Caillou » prend un -x au pluriel : « cailloux ». + - Statut : draft +- **cm1_pluriel_aux_qcm_07** (difficulte 3) : Le facteur apporte les ... du matin. + - Reponses : journals, journaux, journeaux + - Reponse attendue : journaux + - Indice : Le nom « journal » finit par -al. + - Explication : Les noms en -al font -aux au pluriel : « journaux ». + - Statut : draft +- **cm1_pluriel_aux_qcm_08** (difficulte 3) : Deux ... se promènent dans la forêt. + - Reponses : oiseau, oiseaus, oiseaux + - Reponse attendue : oiseaux + - Indice : Le nom « oiseau » finit par -eau. + - Explication : Les noms en -eau prennent un -x au pluriel : « oiseaux ». + - Statut : draft + +### Corrections de phrase + +- **cm1_pluriel_aux_correction_01** (difficulte 1) : Les [chevals -> chevaux] galopent dans le champ. + - Indice : Le nom « cheval » finit par -al. + - Explication : Les noms en -al font -aux au pluriel : « chevaux ». + - Statut : draft +- **cm1_pluriel_aux_correction_02** (difficulte 2) : La princesse a perdu ses [bijous. -> bijoux.] + - Indice : « Bijou » fait partie des noms en -ou qui prennent un -x. + - Explication : « Bijou » prend un -x au pluriel : « bijoux ». + - Statut : draft +- **cm1_pluriel_aux_correction_03** (difficulte 2) : Les pêcheurs lavent leurs [bateaus. -> bateaux.] + - Indice : Le nom « bateau » finit par -eau. + - Explication : Les noms en -eau prennent un -x au pluriel : « bateaux ». + - Statut : draft +- **cm1_pluriel_aux_correction_04** (difficulte 3) : Les ouvriers ont fini les [travails -> travaux] de la rue. + - Indice : Le nom « travail » finit par -ail. + - Explication : « Travail » fait « travaux » au pluriel. + - Statut : draft + +### Dictees + +- **cm1_pluriel_aux_dictee_01** : Les chevaux courent librement dans la prairie. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_pluriel_aux_dictee_02** : Mamie garde ses bijoux dans une petite boîte. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm1_pluriel_aux_dictee_03** : Les journaux annoncent de bonnes nouvelles. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_pluriel_nom (CE1, grammaire) **Enonce** : Le plus souvent, on forme le pluriel d'un nom en ajoutant un -s à la fin du mot. @@ -1397,6 +2699,285 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_plutot_plus_tot (CM2, orthographe) + +**Enonce** : « plutôt » exprime une préférence ou une nuance (plutôt du thé) ; « plus tôt » s'oppose à « plus tard » : on peut le remplacer par « plus tard ». + +**Exemple** : Je prends plutôt du thé. Viens plus tôt demain. + +**Statut** : draft + +### Choix multiples + +- **cm2_plutot_qcm_01** (difficulte 1) : Je prends ... du thé que du café. + - Reponses : plutôt, plus tôt + - Reponse attendue : plutôt + - Indice : Remplace par « plus tard » : la phrase n'a pas de sens. + - Explication : On exprime une préférence : on écrit « plutôt ». + - Statut : draft +- **cm2_plutot_qcm_02** (difficulte 1) : Demain, il faut se lever ... . + - Reponses : plus tôt, plutôt + - Reponse attendue : plus tôt + - Indice : Remplace par « plus tard » : « se lever plus tard » a du sens. + - Explication : On peut dire « plus tard » : on écrit « plus tôt ». + - Statut : draft +- **cm2_plutot_qcm_03** (difficulte 1) : Il fait ... froid ce matin. + - Reponses : plutôt, plus tôt + - Reponse attendue : plutôt + - Indice : Remplace par « plus tard » : la phrase n'a pas de sens. + - Explication : On nuance : on écrit « plutôt ». + - Statut : draft +- **cm2_plutot_qcm_04** (difficulte 2) : Le train est arrivé ... que prévu. + - Reponses : plus tôt, plutôt + - Reponse attendue : plus tôt + - Indice : Remplace par « plus tard » : « plus tard que prévu » a du sens. + - Explication : On peut dire « plus tard » : on écrit « plus tôt ». + - Statut : draft +- **cm2_plutot_qcm_05** (difficulte 2) : Ce film est ... drôle. + - Reponses : plus tôt, plutôt + - Reponse attendue : plutôt + - Indice : Remplace par « plus tard » : la phrase n'a pas de sens. + - Explication : On nuance : on écrit « plutôt ». + - Statut : draft +- **cm2_plutot_qcm_06** (difficulte 2) : Si tu viens ... , nous pourrons jouer. + - Reponses : plutôt, plus tôt + - Reponse attendue : plus tôt + - Indice : Remplace par « plus tard » : « si tu viens plus tard » a du sens. + - Explication : On peut dire « plus tard » : on écrit « plus tôt ». + - Statut : draft +- **cm2_plutot_qcm_07** (difficulte 3) : Elle aime ... la mer que la montagne. + - Reponses : plus tôt, plutôt + - Reponse attendue : plutôt + - Indice : Remplace par « plus tard » : la phrase n'a pas de sens. + - Explication : On exprime une préférence : on écrit « plutôt ». + - Statut : draft +- **cm2_plutot_qcm_08** (difficulte 3) : Je me couche ... le samedi soir. + - Reponses : plutôt, plus tôt + - Reponse attendue : plus tôt + - Indice : Remplace par « plus tard » : « je me couche plus tard » a du sens. + - Explication : On peut dire « plus tard » : on écrit « plus tôt ». + - Statut : draft + +### Corrections de phrase + +- **cm2_plutot_correction_01** (difficulte 1) : Léa est partie [plutôt -> plus tôt] que prévu. + - Indice : Remplace par « plus tard » : « plus tard que prévu » a du sens. + - Explication : On peut dire « plus tard » : on écrit « plus tôt ». + - Statut : draft +- **cm2_plutot_correction_02** (difficulte 2) : Je préfère [plus -> plutôt] tôt le thé au café. + - Indice : Remplace par « plus tard » : la phrase n'a pas de sens. + - Explication : On exprime une préférence : on écrit « plutôt ». + - Statut : draft +- **cm2_plutot_correction_03** (difficulte 2) : Réveille-toi [plutôt -> plus tôt] que d'habitude demain. + - Indice : Remplace par « plus tard » : « plus tard que d'habitude » a du sens. + - Explication : On peut dire « plus tard » : on écrit « plus tôt ». + - Statut : draft +- **cm2_plutot_correction_04** (difficulte 3) : Ce gâteau est [plus -> plutôt] tôt bon. + - Indice : Remplace par « plus tard » : la phrase n'a pas de sens. + - Explication : On nuance : on écrit « plutôt ». + - Statut : draft + +### Dictees + +- **cm2_plutot_dictee_01** : Je prends plutôt une pomme qu'un gâteau. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_plutot_dictee_02** : Demain, nous irons à l'école plus tôt. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_plutot_dictee_03** : Il est arrivé plus tôt que les autres invités. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_quand_quant_qu_en (CM2, orthographe) + +**Enonce** : « quand » indique le moment (on peut dire « lorsque ») ; « quant à » veut dire « en ce qui concerne » ; « qu'en » est « que » + « en ». + +**Exemple** : Quand il pleut, je reste. Quant à moi, j'ai faim. + +**Statut** : draft + +### Choix multiples + +- **cm2_quand_quant_qcm_01** (difficulte 1) : ... la nuit tombe, les étoiles apparaissent. + - Reponses : Quant, Quand + - Reponse attendue : Quand + - Indice : Remplace par « lorsque » : « lorsque la nuit tombe » a du sens. + - Explication : On peut dire « lorsque » : on écrit « quand ». + - Statut : draft +- **cm2_quand_quant_qcm_02** (difficulte 1) : Je te téléphonerai ... je serai arrivé. + - Reponses : quand, quant + - Reponse attendue : quand + - Indice : Remplace par « lorsque » : « lorsque je serai arrivé » a du sens. + - Explication : On peut dire « lorsque » : on écrit « quand ». + - Statut : draft +- **cm2_quand_quant_qcm_03** (difficulte 1) : ... à moi, je préfère le chocolat. + - Reponses : Quand, Quant + - Reponse attendue : Quant + - Indice : Remplace par « en ce qui concerne » : la phrase a du sens. + - Explication : On peut dire « en ce qui concerne » : on écrit « quant ». + - Statut : draft +- **cm2_quand_quant_qcm_04** (difficulte 2) : Léa sourit ... elle voit son chien. + - Reponses : quand, quant + - Reponse attendue : quand + - Indice : Remplace par « lorsque » : « lorsqu'elle voit » a du sens. + - Explication : On peut dire « lorsque » : on écrit « quand ». + - Statut : draft +- **cm2_quand_quant_qcm_05** (difficulte 2) : Il sait bien ... hiver les jours sont courts. + - Reponses : quant, quand, qu'en + - Reponse attendue : qu'en + - Indice : Il y a « que » + « en » : « il sait que, en hiver ». + - Explication : C'est « que » + « en » : on écrit « qu'en ». + - Statut : draft +- **cm2_quand_quant_qcm_06** (difficulte 2) : ... à Paul, il est déjà parti. + - Reponses : Quand, Quant + - Reponse attendue : Quant + - Indice : Remplace par « en ce qui concerne ». + - Explication : On peut dire « en ce qui concerne » : on écrit « quant ». + - Statut : draft +- **cm2_quand_quant_qcm_07** (difficulte 3) : Je pense ... été il fait chaud ici. + - Reponses : quand, quant, qu'en + - Reponse attendue : qu'en + - Indice : Il y a « que » + « en » : « je pense que, en été ». + - Explication : C'est « que » + « en » : on écrit « qu'en ». + - Statut : draft +- **cm2_quand_quant_qcm_08** (difficulte 3) : ... tu auras fini, appelle-moi. + - Reponses : Quant, Quand + - Reponse attendue : Quand + - Indice : Remplace par « lorsque » : « lorsque tu auras fini » a du sens. + - Explication : On peut dire « lorsque » : on écrit « quand ». + - Statut : draft + +### Corrections de phrase + +- **cm2_quand_quant_correction_01** (difficulte 1) : [Quant -> Quand] il fait beau, nous jouons dehors. + - Indice : Remplace par « lorsque » : « lorsqu'il fait beau » a du sens. + - Explication : On peut dire « lorsque » : on écrit « quand ». + - Statut : draft +- **cm2_quand_quant_correction_02** (difficulte 2) : [Quand -> Quant] à ma sœur, elle dort encore. + - Indice : Remplace par « en ce qui concerne ». + - Explication : On peut dire « en ce qui concerne » : on écrit « quant ». + - Statut : draft +- **cm2_quand_quant_correction_03** (difficulte 2) : Appelle-moi [quant -> quand] tu seras prêt. + - Indice : Remplace par « lorsque » : « lorsque tu seras prêt » a du sens. + - Explication : On peut dire « lorsque » : on écrit « quand ». + - Statut : draft +- **cm2_quand_quant_correction_04** (difficulte 3) : Mamie dit toujours [quand -> qu'en] hiver il faut se couvrir. + - Indice : Il y a « que » + « en » : « elle dit que, en hiver ». + - Explication : C'est « que » + « en » : on écrit « qu'en ». + - Statut : draft + +### Dictees + +- **cm2_quand_quant_dictee_01** : Quand le jour se lève, les oiseaux chantent. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_quand_quant_dictee_02** : Quant à Julie, elle préfère rester à la maison. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_quand_quant_dictee_03** : Je sais bien qu'en été les nuits sont courtes. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + +## regle_quel_qu_elle (CM2, orthographe) + +**Enonce** : « quel(le)(s) » s'accorde avec un nom (quelle heure ?) ; « qu'elle(s) » est « que » + « elle » : on peut le remplacer par « qu'il(s) ». + +**Exemple** : Quelle heure est-il ? Je pense qu'elle arrive. + +**Statut** : draft + +### Choix multiples + +- **cm2_quel_qu_elle_qcm_01** (difficulte 1) : ... heure est-il ? + - Reponses : Qu'elle, Quelle + - Reponse attendue : Quelle + - Indice : Remplace par « qu'il » : la phrase n'a pas de sens. + - Explication : « Quelle » accompagne le nom « heure » : on écrit « quelle ». + - Statut : draft +- **cm2_quel_qu_elle_qcm_02** (difficulte 1) : Je crois ... est partie. + - Reponses : quelle, qu'elle + - Reponse attendue : qu'elle + - Indice : Remplace par « qu'il » : « je crois qu'il est parti » a du sens. + - Explication : On peut dire « qu'il » : on écrit « qu'elle ». + - Statut : draft +- **cm2_quel_qu_elle_qcm_03** (difficulte 1) : ... beau dessin tu as fait ! + - Reponses : Qu'elle, Quel + - Reponse attendue : Quel + - Indice : Remplace par « qu'il » : la phrase n'a pas de sens. + - Explication : « Quel » accompagne le nom « dessin » : on écrit « quel ». + - Statut : draft +- **cm2_quel_qu_elle_qcm_04** (difficulte 2) : Dis-moi à ... étage tu habites. + - Reponses : quel, qu'elle + - Reponse attendue : quel + - Indice : Remplace par « qu'il » : la phrase n'a pas de sens. + - Explication : « Quel » accompagne le nom « étage » : on écrit « quel ». + - Statut : draft +- **cm2_quel_qu_elle_qcm_05** (difficulte 2) : Papa pense ... a gagné la course. + - Reponses : quelle, qu'elle + - Reponse attendue : qu'elle + - Indice : Remplace par « qu'il » : « papa pense qu'il a gagné » a du sens. + - Explication : On peut dire « qu'il » : on écrit « qu'elle ». + - Statut : draft +- **cm2_quel_qu_elle_qcm_06** (difficulte 2) : ... jolies fleurs dans ce vase ! + - Reponses : Qu'elles, Quelles + - Reponse attendue : Quelles + - Indice : Remplace par « qu'ils » : la phrase n'a pas de sens. + - Explication : « Quelles » accompagne le nom pluriel « fleurs » : on écrit « quelles ». + - Statut : draft +- **cm2_quel_qu_elle_qcm_07** (difficulte 3) : Les filles disent ... ont faim. + - Reponses : quelles, qu'elles + - Reponse attendue : qu'elles + - Indice : Remplace par « qu'ils » : « les garçons disent qu'ils ont faim » a du sens. + - Explication : On peut dire « qu'ils » : on écrit « qu'elles ». + - Statut : draft +- **cm2_quel_qu_elle_qcm_08** (difficulte 3) : Je me demande ... robe elle portera. + - Reponses : qu'elle, quelle + - Reponse attendue : quelle + - Indice : Remplace par « qu'il » : la phrase n'a pas de sens. + - Explication : « Quelle » accompagne le nom « robe » : on écrit « quelle ». + - Statut : draft + +### Corrections de phrase + +- **cm2_quel_qu_elle_correction_01** (difficulte 1) : [Qu'elle -> Quelle] belle journée ! + - Indice : Remplace par « qu'il » : la phrase n'a pas de sens. + - Explication : « Quelle » accompagne le nom « journée » : on écrit « quelle ». + - Statut : draft +- **cm2_quel_qu_elle_correction_02** (difficulte 2) : Je pense [quelle -> qu'elle] viendra demain. + - Indice : Remplace par « qu'il » : « je pense qu'il viendra » a du sens. + - Explication : On peut dire « qu'il » : on écrit « qu'elle ». + - Statut : draft +- **cm2_quel_qu_elle_correction_03** (difficulte 2) : [Quelle -> Quelles] sont les couleurs de ce drapeau ? + - Indice : « Quelles » accompagne le nom pluriel « couleurs ». + - Explication : Le nom « couleurs » est au pluriel : on écrit « quelles ». + - Statut : draft +- **cm2_quel_qu_elle_correction_04** (difficulte 3) : Léa m'a dit [quelles -> qu'elles] étaient fatiguées. + - Indice : Remplace par « qu'ils » : « il m'a dit qu'ils étaient fatigués » a du sens. + - Explication : On peut dire « qu'ils » : on écrit « qu'elles ». + - Statut : draft + +### Dictees + +- **cm2_quel_qu_elle_dictee_01** : Quelle belle étoile brille ce soir. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_quel_qu_elle_dictee_02** : Maman dit qu'elle rentrera tard ce soir. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_quel_qu_elle_dictee_03** : Je me demande quels livres elle lira pendant les vacances. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_s_ss (CE1, orthographe) **Enonce** : Entre deux voyelles, la lettre « s » seule se prononce [z]. Pour entendre le son [s], on écrit « ss ». @@ -1490,6 +3071,99 @@ Genere automatiquement depuis `data/` par `tools/generate_content_review.py`. Ne - Audio : provisoire - Statut : draft +## regle_tion_sion_ssion (CM2, orthographe) + +**Enonce** : Le son [sjɔ̃] s'écrit le plus souvent « -tion » (attention, réaction) ; quelques mots s'écrivent « -sion » (télévision, tension) ou « -ssion » (passion, mission) et sont à connaître. + +**Exemple** : Une attention. Une télévision. Une mission. + +**Statut** : draft + +### Choix multiples + +- **cm2_tion_sion_qcm_01** (difficulte 1) : Fais bien ... en traversant la rue. + - Reponses : attention, attenssion, attension + - Reponse attendue : attention + - Indice : Le plus souvent, on écrit -tion. + - Explication : Le mot « attention » s'écrit avec -tion. + - Statut : draft +- **cm2_tion_sion_qcm_02** (difficulte 1) : Nous regardons la ... après le dîner. + - Reponses : télévision, télévission, télévition + - Reponse attendue : télévision + - Indice : Ce mot vient du verbe « voir » : il s'écrit avec -sion. + - Explication : Le mot « télévision » s'écrit avec -sion. + - Statut : draft +- **cm2_tion_sion_qcm_03** (difficulte 1) : Le pilote a une grande ... : voler. + - Reponses : passion, passtion, pasion + - Reponse attendue : passion + - Indice : Ce mot a deux s : -ssion. + - Explication : Le mot « passion » s'écrit avec -ssion. + - Statut : draft +- **cm2_tion_sion_qcm_04** (difficulte 2) : Les astronautes partent en ... dans l'espace. + - Reponses : mision, mition, mission + - Reponse attendue : mission + - Indice : Ce mot a deux s : -ssion. + - Explication : Le mot « mission » s'écrit avec -ssion. + - Statut : draft +- **cm2_tion_sion_qcm_05** (difficulte 2) : Le professeur pose une ... aux élèves. + - Reponses : queston, question, questsion + - Reponse attendue : question + - Indice : Le plus souvent, on écrit -tion. + - Explication : Le mot « question » s'écrit avec -tion. + - Statut : draft +- **cm2_tion_sion_qcm_06** (difficulte 2) : Ce film me fait une grande ... . + - Reponses : impresion, impression, impretion + - Reponse attendue : impression + - Indice : Ce mot a deux s : -ssion. + - Explication : Le mot « impression » s'écrit avec -ssion. + - Statut : draft +- **cm2_tion_sion_qcm_07** (difficulte 3) : La ... du volcan a duré trois jours. + - Reponses : érussion, éruction, éruption + - Reponse attendue : éruption + - Indice : Le son [sjɔ̃] s'écrit ici avec -ption. + - Explication : Le mot « éruption » s'écrit avec -ption. + - Statut : draft +- **cm2_tion_sion_qcm_08** (difficulte 3) : Il y a trop de ... dans cette pièce. + - Reponses : tension, tenssion, tention + - Reponse attendue : tension + - Indice : Ce mot s'écrit avec -sion. + - Explication : Le mot « tension » s'écrit avec -sion. + - Statut : draft + +### Corrections de phrase + +- **cm2_tion_sion_correction_01** (difficulte 1) : Fais [attension -> attention] en descendant l'escalier. + - Indice : Le plus souvent, on écrit -tion. + - Explication : Le mot « attention » s'écrit avec -tion. + - Statut : draft +- **cm2_tion_sion_correction_02** (difficulte 2) : La [télévition -> télévision] est allumée dans le salon. + - Indice : Ce mot vient du verbe « voir » : il s'écrit avec -sion. + - Explication : Le mot « télévision » s'écrit avec -sion. + - Statut : draft +- **cm2_tion_sion_correction_03** (difficulte 2) : Cette [misson -> mission] est très importante. + - Indice : Ce mot a deux s : -ssion. + - Explication : Le mot « mission » s'écrit avec -ssion. + - Statut : draft +- **cm2_tion_sion_correction_04** (difficulte 3) : Le professeur a posé une [questsion -> question] difficile. + - Indice : Le plus souvent, on écrit -tion. + - Explication : Le mot « question » s'écrit avec -tion. + - Statut : draft + +### Dictees + +- **cm2_tion_sion_dictee_01** : Les élèves écoutent avec attention la leçon. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_tion_sion_dictee_02** : La mission des astronautes dure six mois. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft +- **cm2_tion_sion_dictee_03** : Cette émission de télévision passionne les enfants. + - Variantes acceptees : aucune + - Audio : provisoire + - Statut : draft + ## regle_verbe_avoir_present (CE1, grammaire) **Enonce** : Le verbe « avoir » change avec le sujet : j'ai, tu as, il a, nous avons, vous avez, ils ont. diff --git a/docs/specs/decisions.md b/docs/specs/decisions.md index 44635ab..2998d15 100644 --- a/docs/specs/decisions.md +++ b/docs/specs/decisions.md @@ -388,3 +388,18 @@ Volume : 3 tableaux × 3 règles × (8 QCM + 4 corrections + 3 dictées) = 72 QC **Unicité** : les gardes-fous de doublons et de quasi-doublons ont attrapé 6 collisions pendant la rédaction, toutes corrigées avant livraison (phrases reformulées). **Reste** : CM1 puis CM2 (3 tableaux chacun), à lancer après relecture de ces tableaux. **Non vérifié** : voix des 27 nouvelles dictées, niveau de difficulté et justesse pédagogique (indices, formulations), notamment le test « vendre/vendu » et la règle du futur, à faire relire. + +## 40. CM1 et CM2, bouton « Quitter le jeu » (version 0.8.0) + +**Quitter** (demande utilisateur) : bouton « Quitter le jeu » sur le choix du profil et dans les réglages (donc accessible depuis la carte), avec confirmation ; la progression du profil courant est sauvegardée avant la sortie (`GameManager.quit_game`, point d'arrêt remplaçable dans les tests). + +**CM1 et CM2** : mêmes principes que CE1/CE2 (3 tableaux, 3 règles par tableau, 8 QCM + 4 corrections + 3 dictées par règle, 3 missions par règle). Contenu entièrement `draft`, rédigé en réutilisant les règles de cadrage du point 38 (règles inspirées de ce type de cahier, textes originaux). + +- **CM1** : « Le château des homophones » (leur/leurs, ces/ses, c'est/s'est) ; « Le village des verbes » (imparfait, forme du participe passé, accord du participe avec être) ; « La jungle des mots » (pluriel en -aux/-eaux/-oux, ou/où, la/là/l'a). +- **CM2** : « La station des homophones » (quel/qu'elle, quand/quant/qu'en, plutôt/plus tôt) ; « Le volcan des verbes » (futur ou conditionnel, passé simple, accord du participe avec avoir et COD placé avant) ; « La bibliothèque des mots » (adverbes en -emment/-amment, -tion/-sion/-ssion, adjectifs de couleur). + +Volume : 6 tableaux, 18 règles, 144 QCM, 72 corrections, 54 dictées (voix Piper provisoire, audio généré), 54 missions (n° 58 à 111). Le jeu compte 111 missions. Six nouveaux décors vectoriels (château, village, jungle, espace, volcan, bibliothèque) avec musique associée. + +**Contrôles** : les gardes-fous de doublons et de quasi-doublons ont attrapé 14 collisions pendant la rédaction (dont avec CE2), toutes corrigées. Aucune dictée ne contient de point d'interrogation ou d'exclamation isolé (l'espace insécable avant « ? » rend la saisie ambiguë) ; ces phrases sont réservées aux QCM et corrections. + +**Reste / limites** : CM1 et CM2 n'ont pas été relus pédagogiquement (indices, niveau de difficulté, règles du passé simple et de l'accord du participe avec COD, à faire valider) ; voix des 54 dictées non écoutées ; la création de profil propose désormais 4 niveaux (CE1, CE2, CM1, CM2). diff --git a/docs/testing/manual-checklist.md b/docs/testing/manual-checklist.md index 0d7cd46..af8f132 100644 --- a/docs/testing/manual-checklist.md +++ b/docs/testing/manual-checklist.md @@ -29,6 +29,13 @@ Tout ce qui suit ne peut pas être vérifié sans écran (rendu, mise en page, a - CE1 : trois tableaux (forêt, plage, montagne) ; CE2 : trois tableaux (marais, désert, île) ; chaque décor est distinct, le bouton « Aller : … » les parcourt en boucle. Jouer au moins une mission de chaque règle nouvelle (être/avoir/-er ; sujet-verbe, é/er, futur ; féminin, g/ge/gu, lettre muette) et vérifier : consigne claire, une seule bonne réponse, indice utile, aucune phrase déjà vue dans la même mission. - Création de profil : seuls CE1 et CE2 sont proposés (CM1/CM2 n'ont pas encore de contenu). +## CM1, CM2 et sortie du jeu (point 40 de `decisions.md`) + +- Création de profil : quatre niveaux proposés (CE1, CE2, CM1, CM2), un seul actif à la fois ; un profil CM1 ouvre « Le château des homophones », un profil CM2 « La station des homophones ». +- Chaque niveau CM : trois tableaux (« Aller : … »), décors distincts, « Revoir le CE2 » / « Revoir le CM1 » selon le profil. +- Jouer au moins une mission de chaque règle CM nouvelle ; vérifier consignes, indices et aucune phrase déjà vue dans la mission. +- « Quitter le jeu » (choix du profil et réglages) : une confirmation apparaît ; refuser ne quitte pas ; accepter ferme le jeu et la progression est conservée au relancement. + ## Accessibilité et interface - Habillage (point 31 de `decisions.md`) : relire chaque écran (profils, carte CE1 et CE2, introduction, règle, les trois types d'exercice, retour juste/faux, récompense, collection) ; le rendu à 1152x648 a été relu sur captures, pas les autres tailles ni le tactile. Redimensionner la fenêtre : les lieux de la carte restent entiers et ne se chevauchent pas. diff --git a/project.godot b/project.godot index 81965fd..63adc08 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Les Aventuriers des mots" -config/version="0.7.0" +config/version="0.8.0" run/main_scene="res://scenes/boot/boot.tscn" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="res://icon.svg" diff --git a/scenes/profiles/profile_select.gd b/scenes/profiles/profile_select.gd index f0d3b66..d5c67dc 100644 --- a/scenes/profiles/profile_select.gd +++ b/scenes/profiles/profile_select.gd @@ -7,6 +7,8 @@ extends Control @onready var _empty_state_label: Label = %EmptyStateLabel @onready var _new_profile_button: Button = %NewProfileButton @onready var _settings_button: Button = %SettingsButton +@onready var _quit_button: Button = %QuitButton +@onready var _quit_dialog: ConfirmationDialog = %QuitDialog func _ready() -> void: @@ -15,6 +17,8 @@ func _ready() -> void: _empty_state_label.text = UIText.get_text("profile_select.empty_state") _settings_button.text = UIText.get_text("profile_select.settings_button") _settings_button.pressed.connect(_on_settings_pressed) + _quit_button.text = UIText.get_text("quit.button") + _quit_button.pressed.connect(_quit_dialog.request) _new_profile_button.pressed.connect(_on_new_profile_pressed) AudioManager.play_region_music("forest") diff --git a/scenes/profiles/profile_select.tscn b/scenes/profiles/profile_select.tscn index 679e8f5..d16c93a 100644 --- a/scenes/profiles/profile_select.tscn +++ b/scenes/profiles/profile_select.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3] +[gd_scene load_steps=4 format=3] [ext_resource type="Script" path="res://scenes/profiles/profile_select.gd" id="1"] [ext_resource type="PackedScene" path="res://scenes/ui/backdrop.tscn" id="backdrop"] +[ext_resource type="PackedScene" path="res://scenes/ui/quit_dialog.tscn" id="quit"] [node name="ProfileSelect" type="Control"] layout_mode = 3 @@ -70,8 +71,23 @@ unique_name_in_owner = true layout_mode = 2 custom_minimum_size = Vector2(0, 56) -[node name="SettingsButton" type="Button" parent="Margin/Center/Card/VBox"] +[node name="Footer" type="HBoxContainer" parent="Margin/Center/Card/VBox"] +layout_mode = 2 +theme_override_constants/separation = 10 + +[node name="SettingsButton" type="Button" parent="Margin/Center/Card/VBox/Footer"] unique_name_in_owner = true layout_mode = 2 +size_flags_horizontal = 3 theme_type_variation = &"SecondaryButton" custom_minimum_size = Vector2(0, 52) + +[node name="QuitButton" type="Button" parent="Margin/Center/Card/VBox/Footer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"SecondaryButton" +custom_minimum_size = Vector2(0, 52) + +[node name="QuitDialog" parent="." instance=ExtResource("quit")] +unique_name_in_owner = true diff --git a/scenes/ui/quit_dialog.gd b/scenes/ui/quit_dialog.gd new file mode 100644 index 0000000..a5230e5 --- /dev/null +++ b/scenes/ui/quit_dialog.gd @@ -0,0 +1,19 @@ +extends ConfirmationDialog +## Confirmation avant de quitter le jeu. La progression est sauvegardee avant +## la sortie (GameManager.quit_game). Les textes viennent de fr.json. + + +func _ready() -> void: + title = UIText.get_text("quit.confirm_title") + dialog_text = UIText.get_text("quit.confirm_message") + ok_button_text = UIText.get_text("quit.confirm_yes") + cancel_button_text = UIText.get_text("quit.confirm_no") + confirmed.connect(_on_confirmed) + + +func request() -> void: + popup_centered() + + +func _on_confirmed() -> void: + GameManager.quit_game() diff --git a/scenes/ui/quit_dialog.gd.uid b/scenes/ui/quit_dialog.gd.uid new file mode 100644 index 0000000..e6874d2 --- /dev/null +++ b/scenes/ui/quit_dialog.gd.uid @@ -0,0 +1 @@ +uid://dli2adhoni2j diff --git a/scenes/ui/quit_dialog.tscn b/scenes/ui/quit_dialog.tscn new file mode 100644 index 0000000..3f403bc --- /dev/null +++ b/scenes/ui/quit_dialog.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3] + +[ext_resource type="Script" path="res://scenes/ui/quit_dialog.gd" id="1"] + +[node name="QuitDialog" type="ConfirmationDialog"] +script = ExtResource("1") diff --git a/scenes/ui/settings.gd b/scenes/ui/settings.gd index cd95392..88b79fc 100644 --- a/scenes/ui/settings.gd +++ b/scenes/ui/settings.gd @@ -19,6 +19,8 @@ extends Control @onready var _animations_box: HBoxContainer = %AnimationsBox @onready var _adult_button: Button = %AdultButton @onready var _back_button: Button = %BackButton +@onready var _quit_button: Button = %QuitButton +@onready var _quit_dialog: ConfirmationDialog = %QuitDialog func _ready() -> void: @@ -28,6 +30,7 @@ func _ready() -> void: _animations_label.text = UIText.get_text("settings.animations_label") _adult_button.text = UIText.get_text("settings.adult_button") _back_button.text = UIText.get_text("settings.back_button") + _quit_button.text = UIText.get_text("quit.button") _music_label.text = UIText.get_text("settings.music_label") _effects_label.text = UIText.get_text("settings.effects_label") @@ -45,6 +48,7 @@ func _ready() -> void: _adult_button.pressed.connect(_on_adult_pressed) _back_button.pressed.connect(_on_back_pressed) + _quit_button.pressed.connect(_quit_dialog.request) func _build_text_size_buttons() -> void: diff --git a/scenes/ui/settings.tscn b/scenes/ui/settings.tscn index 91a0735..e1dde51 100644 --- a/scenes/ui/settings.tscn +++ b/scenes/ui/settings.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=3 format=3] +[gd_scene load_steps=4 format=3] [ext_resource type="Script" path="res://scenes/ui/settings.gd" id="1"] [ext_resource type="PackedScene" path="res://scenes/ui/backdrop.tscn" id="backdrop"] +[ext_resource type="PackedScene" path="res://scenes/ui/quit_dialog.tscn" id="quit"] [node name="Settings" type="Control"] layout_mode = 3 @@ -142,7 +143,22 @@ layout_mode = 2 theme_type_variation = &"SecondaryButton" custom_minimum_size = Vector2(0, 52) -[node name="BackButton" type="Button" parent="Margin/Center/Card/VBox"] +[node name="Footer" type="HBoxContainer" parent="Margin/Center/Card/VBox"] +layout_mode = 2 +theme_override_constants/separation = 10 + +[node name="BackButton" type="Button" parent="Margin/Center/Card/VBox/Footer"] unique_name_in_owner = true layout_mode = 2 +size_flags_horizontal = 3 custom_minimum_size = Vector2(0, 56) + +[node name="QuitButton" type="Button" parent="Margin/Center/Card/VBox/Footer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"SecondaryButton" +custom_minimum_size = Vector2(0, 56) + +[node name="QuitDialog" parent="." instance=ExtResource("quit")] +unique_name_in_owner = true diff --git a/scripts/ui/backdrop_kinds.gd b/scripts/ui/backdrop_kinds.gd index d208898..2acc620 100644 --- a/scripts/ui/backdrop_kinds.gd +++ b/scripts/ui/backdrop_kinds.gd @@ -12,6 +12,12 @@ const TEXTURES := { "mountain": "res://assets/environments/mountain_backdrop.svg", "desert": "res://assets/environments/desert_backdrop.svg", "island": "res://assets/environments/island_backdrop.svg", + "castle": "res://assets/environments/castle_backdrop.svg", + "village": "res://assets/environments/village_backdrop.svg", + "jungle": "res://assets/environments/jungle_backdrop.svg", + "space": "res://assets/environments/space_backdrop.svg", + "volcano": "res://assets/environments/volcano_backdrop.svg", + "library": "res://assets/environments/library_backdrop.svg", } ## Morceau joue par defaut avec chaque decor (reglage « automatique »). @@ -22,6 +28,12 @@ const MUSIC := { "mountain": "meadow", "desert": "night", "island": "river", + "castle": "night", + "village": "meadow", + "jungle": "marsh", + "space": "night", + "volcano": "marsh", + "library": "forest", } const FALLBACK := "forest" diff --git a/tests/data/test_elision.gd b/tests/data/test_elision.gd index b2f7924..c1d6fed 100644 --- a/tests/data/test_elision.gd +++ b/tests/data/test_elision.gd @@ -8,6 +8,8 @@ const DATA_DIR := "res://data" ## Mots a « h » aspire ou vocalique sans elision : « le hibou », « le onze ». const NO_ELISION_WORDS: Array[String] = [ "hibou", + "hublot", + "hublots", "haie", "haies", "héros", diff --git a/tests/exercises/test_exercise_engine.gd b/tests/exercises/test_exercise_engine.gd index cf945df..f7b43e9 100644 --- a/tests/exercises/test_exercise_engine.gd +++ b/tests/exercises/test_exercise_engine.gd @@ -15,7 +15,7 @@ func test_unknown_rule_returns_empty_dictionary() -> void: func test_missions_are_loaded_and_sorted() -> void: var missions := ExerciseEngine.get_missions() - assert_eq(missions.size(), 57) + assert_eq(missions.size(), 111) var ids: Array = missions.map(func(m: Dictionary) -> String: return m["mission_id"]) assert_eq(ids, ids.duplicate()) # trivialement vrai, documente l'ordre stable assert_true(ids.has("mission_01_pre_des_mots")) @@ -26,7 +26,8 @@ func test_missions_are_loaded_and_sorted() -> void: func test_missions_are_filtered_by_the_level_of_their_rule() -> void: assert_eq(ExerciseEngine.get_missions_for_level("CE1").size(), 27) assert_eq(ExerciseEngine.get_missions_for_level("CE2").size(), 30) - assert_eq(ExerciseEngine.get_missions_for_level("CM1").size(), 0) + assert_eq(ExerciseEngine.get_missions_for_level("CM1").size(), 27) + assert_eq(ExerciseEngine.get_missions_for_level("CM2").size(), 27) func test_regions_are_ordered_and_hold_their_missions() -> void: diff --git a/tests/world/test_settings_scenes.gd b/tests/world/test_settings_scenes.gd index 190ea62..ecd3edd 100644 --- a/tests/world/test_settings_scenes.gd +++ b/tests/world/test_settings_scenes.gd @@ -86,3 +86,23 @@ func test_profile_creation_offers_only_levels_that_have_content() -> void: expected.append(level) assert_eq(offered, expected) assert_true(offered.has("CE1") and offered.has("CE2")) + + +func test_quit_button_asks_for_confirmation_then_quits_through_the_hook() -> void: + var quits: Array[int] = [] + GameManager.quit_hook = func() -> void: quits.append(1) + for path in ["res://scenes/profiles/profile_select.tscn", "res://scenes/ui/settings.tscn"]: + var scene: Control = add_child_autofree(load(path).instantiate()) + await wait_process_frames(1) + var button: Button = scene.get_node("%QuitButton") + var dialog: ConfirmationDialog = scene.get_node("%QuitDialog") + assert_eq(button.text, UIText.get_text("quit.button")) + var before_press := quits.size() + button.pressed.emit() + assert_true(dialog.visible, "une confirmation doit etre demandee") + assert_eq(quits.size(), before_press, "rien ne quitte avant la confirmation") + var before := quits.size() + dialog.hide() + dialog.confirmed.emit() + assert_eq(quits.size(), before + 1) + GameManager.quit_hook = Callable()