Accueil : Mathématiques

article Scratch et Snap ! Pour initier à la programmation     -    publié le 24/02/2016    mis à jour le 25/02/2016

Comparatif des interfaces Scratch et Snap !

1 2 3 

• Les fonctionnalités intéressantes de Snap !

- Créer des lutins animés

Tout comme dans Scratch, il existe un éditeur de dessin qui permet de dessiner ses propres lutins mais celui-ci est moins élaboré que dans Scratch (pas de possibilité d’insérer du texte, par exemple).
En revanche, il est possible de créer un lutin en plusieurs parties puis de les associer ensemble, afin de les animer : un des lutins joue le rôle d’ancre et les autres lutins viennent s’attacher à celui-ci comme des parties.
Pour comprendre ce procédé, on peut s’appuyer sur l’exemple d’un lutin hélicoptère dont on a animé les hélices :

  • duplication du lutin hélicoptère en trois exemplaires ;
  • placement des lutins dans la scène pour reconstituer l’hélicoptère ;
  • création par effacement du lutin hélicoptère seul, du lutin hélice avant et du lutin hélice arrière ;
  • glissement de l’icône de l’hélice avant (dans la zone des objets) sur le lutin hélicoptère (dans la scène) afin de l’attacher à celui-ci. Même action pour l’hélice arrière ;
  • animation des hélices.

Un petit aperçu du fichier en images :

Attachement des hélices à l'hélicoptère

Les icônes des hélices comportent une icône en haut à droite, signifiant leur attachement à un autre lutin

Script des hélices

Les hélices tournent indéfiniment dès que le drapeau vert est pressé.

Résultat dans la scène

Les hélices sont attachées à l’hélicoptère et tournent indéfiniment.

- Créer ses blocs de commandes

La grande plus-value de Snap ! est la possibilité de créer ses propres blocs. Les blocs créés peuvent être de tous types. Par exemple :

  • il est possible de créer une commande graphique rectangle de variables longueur et largeur et de l’utiliser pour tracer des rectangles de dimensions variables :
Définition de la commande Rectangle

Copie d’écran illustrant la définition de la commande Rectangle

Utilisation de la commande Rectangle

Copie d’écran illustrant une utilisation de la commande Rectangle

Tracé utilisant la commande Rectangle

Copie d’écran illustrant un tracé obtenu avec la commande Rectangle.

  • on peut définir des fonctions récursives comme le flocon de Von Koch :
Définition des commandes segment et vonkoch

Copie d’écran illustrant les définitions des commandes segment et vonkoch

Utilisation de la commande vonkoch

Copie d’écran illustrant une utilisation de la commande vonkoch

Tracé d'un flocon de Von Koch

Tracé d’un flocon de Von Koch utilisant la commande vonkoch

  • on peut définir des fonctions d’une variable, comme une fonction fibonacci qui calcule les termes successifs de la suite de Fibonacci puis une commande liste_fibonaci(N) qui affiche les N premiers termes de cette suite :
Définition de la fonction "fibonacci"

Copie d’écran de la définition de la fonction "fibonacci"

Définition de la commande "liste_fibonacci"

Copie d’écran de la définition de la commande "liste_fibonacci"

Affichage des premiers termes de la suite de Fibonacci

Affichage des premiers termes de la suite de Fibonacci

  • on peut définir une fonction de cryptage avec le chiffrement de César (décalage des lettres de l’alphabet donné par une clé) : celle-ci sera utilisée pour chiffrer un texte puis pour décrypter un texte par la force brute en affichant tous les cryptages possibles dans une liste :
Définition de la fonction de codage par le chiffrement de César

Définition de la fonction de codage par le chiffrement de César

Script du lutin qui intègre les méthodes de cryptage et de décryptage

Script du lutin qui intègre les méthodes de cryptage et de décryptage

Liste des cryptages possibles pour le décryptage d'un texte chiffré

Liste des cryptages possibles pour le décryptage d’un texte chiffré

  • on peut aussi définir une commande à partir d’un code JavaScript, que l’on intègre ensuite dans un bloc Exécuter :
Définition de la fonction à partir d'un code JavaScript

Définition de la fonction à partir d’un code JavaScript

Inclusion de la fonction dans un bloc d'exécution

Inclusion de la fonction dans un bloc d’exécution

Tracé d'un exemple

Tracé d’un exemple

- Convertir un fichier Scratch en un fichier Snap !

Un deuxième avantage de Snap ! est que l’on peut facilement migrer de Scratch vers Snap ! en utilisant un convertisseur en ligne : l’utilitaire Snapin8r2 permet de convertir un fichier .sb2 en un fichier .xml qui pourra être ouvert dans l’interface Snap !. Les lutins et la scène présents dans le fichier d’origine sont importés ainsi que les costumes et arrière-plans associés.

Logo de l'interface Snapin8r2

Logo de l’interface Snapin8r2

- Exporter un fichier Snap ! en un module autonome

Un dernier avantage offert par Snap ! est la possibilité d’exporter un projet sous la forme d’un module autonome : l’utilitaire Snapp ! permet de convertir un fichier .xml en un dossier compressé .zip pour lequel on peut spécifier le système d’exploitation (Windows, Linux ou OSX) :

Invite de l'utilitaire Snapp !

Copie d’écran de l’invite de Snapp !

Il reste ensuite à décompresser ce dossier dans lequel se trouve un fichier .exe que l’on exécute sans aucune installation supplémentaire. On obtient la même interface que sur le web et on peut modifier les valeurs des différentes variables. Le fichier est protégé en écriture et les manipulations effectuées ne sont pas sauvegardées.

Un exemple de module autonome sur le triangle de Sierpinski : pour Windows, pour Linux et pour OSX.

« Précédente  1 2 3  Suivante » Sur une seule page
- Fichiers multimédias

-  Images

Définition de la commande Rectangle Script du lutin utilisant la commande "liste_fibonacci" Définition de la commande "liste_fibonacci" Définition de la fonction "fibonacci" Utilisation de la commande Rectangle Tracé utilisant la commande Rectangle Définition de la fonction de codage par le chiffrement de César Utilisation de la commande vonkoch Tracé d'un flocon de Von Koch Affichage des premiers termes de la suite de Fibonacci Liste des cryptages possibles pour le décryptage d'un texte chiffré Définition des commandes segment et vonkoch Script du lutin qui intègre les méthodes de cryptage et de décryptage Définition de la fonction à partir d'un code JavaScript Inclusion de la fonction dans un bloc d'exécution Tracé d'un exemple Attachement des hélices à l'hélicoptère Résultat dans la scène Script des hélices
- Documents joints

Carte du jeu "Pose la fusée"

Fichier source de l’hélicoptère

Fichier source du jeu "pose la fusée"

Contact
Accessibilité
Mentions légales
RSS
Académie de Poitiers, Rectorat, 22 rue Guillaume VII le Troubadour BP 625 86022 Poitiers Cedex