De Scratch Wiki en français
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
(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 !