Modèle basic/matchlist
Le modèle basic/matchlist permet de fabriquer des exercices de correspondances.
Clés spécifiques
| Clé | Description | Type | Défaut |
|---|---|---|---|
| matches | Liste des correspondances (source, cible). Elle peut être saisie comme une liste de couples ou comme une chaîne multilignes (chaque ligne correspondant à une correspondance, les deux éléments étant distingués par un séparateur défini dans la clé `separator`). | (str, list[tuple[str, str]] | [] |
| separator | Séparateur des éléments d'une correspondance (source, cible). | str | ',' |
| nbmatches | Nombre de correspondances à proposer parmi la liste de correspondances. Si cette clé vaut `None`, toutes les correspondances sont proposées. | (int, None) | None |
| targets | Liste de cibles supplémentaires. Elle peut être saisie comme une liste ou comme une chaîne multilignes (chaque ligne correspondant à un item). | (str, list[str]) | [] |
| multiple | Valeur indiquant si une cible peut être reliée à plusieurs sources. | bool | True |
| scoring | Barème de l'exercice. | ('AllOrNothing', 'RightMinusWrong', 'CorrectItems') | 'RightMinusWrong' |
TODO : Une option strip ou skipinitialspace pour éliminer les espaces superflus dans matches.
TODO : Revoir les barèmes (Comment compter une source non reliée ? une cible non reliée ? etc.)
Exemples
Exemple 1 : Capitales
extends = /model/basic/matchlist.pl
question ==
Relier chaque pays à sa capitale.
==
matches ==
France,Paris
Italie,Rome
Allemagne,Berlin
Espagne,Madrid
==
Exemple 2 : Capitales
extends = /model/basic/matchlist.pl
question ==
Relier chaque pays à sa capitale.
==
separator = ";"
nbmatches = 4
matches ==
Allemagne;Berlin
Autriche;Vienne
Belgique;Bruxelles
Danemark;Copenhague
Espagne;Madrid
Finlande;Helsinki
France;Paris
Grèce;Athènes
Hongrie;Budapest
Irlande;Dublin
Italie;Rome
Norvège;Oslo
Pays-Bas;Amsterdam
Pologne;Varsovie
Portugal;Lisbonne
Roumanie;Bucarest
Royaume-Uni;Londres
Slovaquie;Bratislava
Suède;Stockholm
Suisse;Berne
==
Exemple 3 (avec une liste générée par un script)
extends = /model/basic/matchlist.pl
question ==
Relier chaque nombre à la décomposition qui lui est égale.
==
before ==
matches = []
for a in sample(range(10, 20), 4) :
b = randint(1, a-1)
c = a - b
matches.append([str(a), f"{b} + {c}"])
==