De Scratch Wiki en français


Créer un quiz de mathématiques


Créer un quiz de mathématiques

Vous aimez les quizs ? Vous aimez les mathématiques ? Voilà un tutoriel pour regrouper les deux ! Vous allez pouvoir créer votre propre quiz !

Principe

Dans le projet que nous nous apprêtons à créer, nous allons faire parler un sprite afin qu'il nous pose des petites opérations. Si on a juste, on gagne un point ; sinon, on perd un point. Il existe deux méthodes pour cela.

Scripts

Méthode simple

Pour que le sprite pose à chaque fois le calcul 2 + 2, voici le script :

mettre [points v] à [0] // le joueur commence avec 0 points
demander [2 + 2] et attendre // voici le bloc qui permettra au sprite de poser sa question
si <(réponse) = [4]> alors // si le joueur répond "4", alors ...
ajouter (1) à [points v]::variables // le sprite lui rajoute 1 point
sinon // si le joueur ne répond pas "4", alors ...
ajouter (-1) à [points v]::variables // le sprite lui retire 1 point
end

Et pour rajouter des calculs, il suffit de copier le script :

mettre [points v] à [0]
demander [2 + 2] et attendre
si <(réponse) = [4]> alors
ajouter (1) à [points v]::variables
sinon
ajouter (-1) à [points v]::variables
end
demander [3 - 1] et attendre
si <(réponse) = [2]> alors
ajouter (1) à [points v]::variables
sinon
ajouter (-1) à [points v]::variables
fin
demander [9 x 5] et attendre
si <(réponse) = [45]> alors
ajouter (1) à [points v]::variables
sinon
ajouter (-1) à [points v]::variables
end

Bon, vous l'aurez compris, ce script peut durer très longtemps. Alors vous pouvez essayer une seconde méthode, plus complexe mais plus utile.

Méthode "variables"

Vous pouvez utiliser des variables pour faire vos calculs ! Pour cela, il faut utiliser deux variables :

(nombre1)
(nombre2)

Ces deux variables stockeront des nombres au hasard, puis le sprite posera le calcul (la somme de ces deux nombres, par exemple).

mettre [points v] à [0] // le joueur commence avec 0 points
répéter indéfiniment // ce bloc permettra de faire indéfiniment un nombre de questions
mettre [nombre1 v] à (nombre aléatoire entre (1) et (10)) // "nombre1" est un nombre tiré au hasard entre 1 et 10
mettre [nombre2 v] à (nombre aléatoire entre (1) et (10)) // "nombre2" est un nombre tiré au hasard entre 1 et 10
demander (regrouper (nombre1) et (regrouper [ + ] et (nombre2))) et attendre // "regroupe" sert à regrouper plusieurs valeurs
si <(réponse) = ((nombre1) + (nombre2))> alors // si la réponse du joueur est bien la somme de "nombre1" et "nombre2", alors ...
ajouter (1) à [points v]::variables // le joueur gagne 1 point
sinon // si la réponse du joueur n'est pas égale à la somme de "nombre1" et "nombre2", alors ...
ajouter (-1) à [points v]::variables // le joueur perd un point
fin
fin
Danger
 Danger :
Faites la différence entre ces blocs :
(regrouper (nombre1) et (regrouper [ + ] et (nombre2))) // ce bloc donne une chaîne de caractères
((nombre1) + (nombre2)) // ce bloc donne un nombre

Aller plus loin

Maintenant que vous savez réaliser un script demandant une opération "x + y = ?" et vérifiant le résultat, pourquoi ne pas :

  • Ajouter des programme pour les opérations suivantes : ([x] - [y]) (soustraction) ; ([x] / [y]) (division) ; ([x] * [y]) (multiplication) ; ([x] modulo [y]) (reste d'une division quotient-reste) ; ([plancher v] de ([x] / [y])) (quotient d'une quotient-reste) ;
  • Réaliser votre script un certain nombre de fois puis donner le score
  • Augmenter la difficulté en fonction du score
  • Ajouter des nombre négatifs, le carré ([x] * [x]), la racine carré ([racine v] de (x)) ; …

Libre à vous d'améliorer votre projet !

Cet article fait partie de la catégorie des tutos
Tous les articles de cette catégorie :