De Scratch Wiki en Français

(Le script)
(Le script)
Ligne 136 : Ligne 136 :
 
sinon
 
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
 
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ésolé des éléments coupés... Détaillons le script du temps :  
+
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}}'''

Version du 15 avril 2018 à 20:24


Créer un quiz

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]

Caution (2).png Attention : 

À 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 !

Warning Danger : 

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 :

Warning Note : 

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