De Scratch Wiki en Français
m (lien vers le bon projet (iframe)...) |
(→Le script) |
||
(4 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 127 : | Ligne 127 : | ||
si <[60] < (chronomètre)> alors | si <[60] < (chronomètre)> alors | ||
si <(Temps) = [1]> alors | si <(Temps) = [1]> alors | ||
− | dire | + | dire (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe [Bravo ] (nom d'utilisateur)) [, tu as effectué un score de ]) (score)) [/3 en]) (Timer2)) [,]) (arrondi de (Timer3))) [minute.]) pendant (2) secondes |
sinon | sinon | ||
− | dire | + | dire (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe [Bravo ] (nom d'utilisateur)) [, tu as effectué un score de ]) (score)) [/3 en]) (Timer2)) [,]) (arrondi de (Timer3))) [minutes.]) pendant (2) secondes |
end | end | ||
Ligne 135 : | Ligne 135 : | ||
sinon | sinon | ||
− | dire (regroupe (regroupe (regroupe (regroupe (regroupe [Bravo ] (nom d'utilisateur)) [, tu as effectué un score de ]) | + | dire (regroupe (regroupe (regroupe (regroupe (regroupe [Bravo ] (nom d'utilisateur)) [, tu as effectué un score de ]) (Score)) [/3 en]) (arrondi de (chronomètre))) pendant (2) secondes |
+ | end | ||
+ | |||
+ | définir Timer | ||
+ | répéter indéfiniment | ||
+ | mettre [Timer2 v] à ([plancher v] de ((chronomètre) / (60)):: operators) | ||
+ | mettre [Timer3 v] à ((chronomètre) modulo (60)) | ||
end | end | ||
</scratchblocks> | </scratchblocks> | ||
− | + | Détaillons le script du temps : | |
'''Quand le chronomètre indique plus d'une minute >> si la variable temps (qui nous indique le chiffre des minutes dans le bloc (dire)) est égale à 1 (qui correspond à une minute) alors ne pas mettre de "s" à la fin du bloc, où, l'inverse (bloc "sinon") nous dit qu'il faut en mettre 1. | '''Quand le chronomètre indique plus d'une minute >> si la variable temps (qui nous indique le chiffre des minutes dans le bloc (dire)) est égale à 1 (qui correspond à une minute) alors ne pas mettre de "s" à la fin du bloc, où, l'inverse (bloc "sinon") nous dit qu'il faut en mettre 1. | ||
Et le dernier "sinon", c'est juste pour dire si le joueur à réussi à faire le score en MOINS d'une minute, et donc qu'il faut rajouter "seconde" dans le bloc {{Wink}}''' | Et le dernier "sinon", c'est juste pour dire si le joueur à réussi à faire le score en MOINS d'une minute, et donc qu'il faut rajouter "seconde" dans le bloc {{Wink}}''' | ||
Ligne 145 : | Ligne 151 : | ||
Et voilà, c'est la fin de ce tuto ! À bientôt !! | Et voilà, c'est la fin de ce tuto ! À bientôt !! | ||
+ | |||
==Le projet== | ==Le projet== | ||
<html> <iframe allowtransparency="true" width="485" height="402" src="//scratch.mit.edu/projects/embed/193990557/?autostart=false" frameborder="0" allowfullscreen></iframe> | <html> <iframe allowtransparency="true" width="485" height="402" src="//scratch.mit.edu/projects/embed/193990557/?autostart=false" frameborder="0" allowfullscreen></iframe> | ||
</html> | </html> |
Version actuelle datée du 15 avril 2018 à 20:24
Sommaire
Qu'est-ce que c'est ?
Un quiz est un questionnaire permettant de tester des connaissances (cela dépend de votre genre de quiz).
Comment en faire un ?
C'est ce que nous allons voir ! Commençons d'abord par le script de base :
Quand le drapeau vert pressé //Ceci est le début de notre script. demander [] et attendre
Là, dans le carré blanc, on peut soit le faire sous forme de liste, soit sous forme de variable, ou soit, simplement en complétant le blanc : à toi de voir.
Avec une variable
Voyons comment nous allons faire pour demander la question sous forme de variable.
demander (question) et attendre
Il suffit simplement de mettre ce que vous voulez dans la case blanche de ce bloc :
mettre [questions v] à [Votre question]
| À chaque fois que le joueur donnera sa réponse, il faudra mettre autre chose dans la variable. Mais ne t'inquiète pas, nous verrons ça plus tard. |
Avec une liste
Bon, maintenant, voyons comment faire pour demander un élément d'une liste, qu'il soit aléatoire ou non (en plus, cela permet plus ou moins de ne pas tricher). Voici ce que notre bloc donnera, après les explications :
demander (élément (1 v) de [questions v]) et attendre
Donc, comme vous l'avez remarqué, nous allons utiliser ce bloc dans les listes :
(élément (1 v) de [questions v])
Vous allez donc devoir créer au minimum 5 questions : appuyez sur + pour créer un nouvel élément de la liste ou utilisez ce bloc (mais bon, ça devient fatiguant à la longue )
insérer [question] en position (1 v) de la liste [questions]
Et voilà ! C'est fini pour les listes, et pour les questions : nous allons pouvoir passer aux réponses !
Réponses
Bon, voilà les réponses : c'est ce bloc qu'on va utiliser le plus souvent :
(réponse)
Et on va en découvrir les aspects, tout comme les questions.
Opérateurs
Si vous voulez faire tout simple, et bien c'est ici !
| Faites très attention : un utilisateur, un jour ou l'autre, va forcément copier !! |
Pourquoi ? Et bien : si l'utilisateur va dans les scripts, il va tout de suite tout voir ; vous allez comprendre :
si <(réponse) = [Votre réponse]> alors end
Et voilà : c'est tout bête mais ça marche.
Avec variable
si <(réponse) = (réponses)> alors end
Voilà le script. Le seul problème est le suivant : à chaque fois que le joueur a répondu a une question, il va falloir changer la variable ; c'est à dire lui mettre autre chose à l'intérieur du rectangle blanc :
mettre [réponses v] à [Nouvelle réponse]
Avec une liste
si <(élément (1,2 ou 178168628628 v) de [réponses v]) contient (réponse)> alors end
Et voici le script ! Après, me diriez-vous, les utilisateurs peuvent toujours faire apparaître la liste... Mais on va les en empêcher
Script anti-tricheurs
Voici ce qu'il faut faire :
Quand le drapeau vert pressé répéter indéfiniment réinitialiser le chronomètre
Et puis, 2e script :
quand [chronomètre v] > (1) basculer sur l'arrière-plan [#NONauxtricheurs v] // C'est à vous de créer l'arrière-plan :P stop [tout v]
Je vous explique : si le chronomètre se réinitialise indéfiniment, et bien, il ne peut pas dépasser 0.00000000000000000000000000001 secondes : mais, je ne sais pas si vous le saviez, le chronomètre ne se réinitialise plus lorsqu'il le projet est stoppé, il continue de marcher ! Et là, une seconde après que le projet se soit arrêté, bing, c'est la surprise.
Quelques animations
Bon, les programmes pour les questions / réponses sont terminés ! Passons aux animations ! Évidemment, vu qu'on ne peut pas faire beaucoup beaucoup d'animations sur Scratch, le script ne va pas être bien long : je vais tout regrouper en 1 seul script, que vous ayez choisi l'option de réponse n°1, n°2, ou n°3. Il vous faudra cependant enlever (pour vous, ce que vous avez choisi) ce qu'il y a d'inutile (les options que vous n'avez pas prises).
Si la réponse est bonne
Note, avant de commencer :
| Les sons / arrières-plans vus ici sont inventés : il faudra vous créer les vôtres (ou choisir les sons) et tout renommer avec VOS noms d'arrières plans, de sons... etc |
si <<(élément (1 v) de [list v] :: list) contient (réponse) ?> ou <<(réponse) = ["Réponse"]> ou <(réponse) = (Réponses)>>> alors basculer sur l'arrière-plan [Gagné, trop fort ! v] jouer le son [bravo ! v] attendre (2) secondes basculer sur l'arrière-plan [normal v] envoyer à tous [Nouvelle question v] // C'est parti pour une nouvelle question ! Mais vous savez comment faire ;) end
Si c'est une mauvaise réponse
On va reprendre le script du début et ajouter un "sinon" :
si <> alors sinon basculer sur l'arrière-plan [Perdu v] jouer le son [Game over v] attendre (2) secondes basculer sur l'arrière-plan [normal v] envoyer à tous [C'est re-parti pour une autre question v] end
Timer + Score
Vous voulez savoir combien de temps vous avez mis pour finir ce quizz ? Ou alors quelle note avez vous eu ? Alors c'est parti !
Le script
Pour pouvoir "mesurer" votre temps, voici ce qu'il faut faire :
- Créer une variable
- Savoir utiliser les blocs opérateurs "regroupe"
Commençons notre script...
Il va falloir, déjà, que le programme détecte si le joueur a fait plus ou moins d'une minute pour tout répondre...
quand je reçois [Résultats v] si <[60] < (chronomètre)> alors si <(Temps) = [1]> alors dire (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe [Bravo ] (nom d'utilisateur)) [, tu as effectué un score de ]) (score)) [/3 en]) (Timer2)) [,]) (arrondi de (Timer3))) [minute.]) pendant (2) secondes sinon dire (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe (regroupe [Bravo ] (nom d'utilisateur)) [, tu as effectué un score de ]) (score)) [/3 en]) (Timer2)) [,]) (arrondi de (Timer3))) [minutes.]) pendant (2) secondes end sinon dire (regroupe (regroupe (regroupe (regroupe (regroupe [Bravo ] (nom d'utilisateur)) [, tu as effectué un score de ]) (Score)) [/3 en]) (arrondi de (chronomètre))) pendant (2) secondes end définir Timer répéter indéfiniment mettre [Timer2 v] à ([plancher v] de ((chronomètre) / (60)):: operators) mettre [Timer3 v] à ((chronomètre) modulo (60)) end
Détaillons le script du temps :
Quand le chronomètre indique plus d'une minute >> si la variable temps (qui nous indique le chiffre des minutes dans le bloc (dire)) est égale à 1 (qui correspond à une minute) alors ne pas mettre de "s" à la fin du bloc, où, l'inverse (bloc "sinon") nous dit qu'il faut en mettre 1.
Et le dernier "sinon", c'est juste pour dire si le joueur à réussi à faire le score en MOINS d'une minute, et donc qu'il faut rajouter "seconde" dans le bloc
(regroupe x10 ~) User... (nom d'utilisateur du joueur) [...] a fait comme score Score (la variable) / 3
Et voilà, c'est la fin de ce tuto ! À bientôt !!
Le projet