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

Comparatif des interfaces Scratch et Snap !

Pages : 123

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 :

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

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

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 :

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

Copie d’écran illustrant une utilisation de 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 :

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

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

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 :

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

Copie d’écran de la définition de la commande "liste_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

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é

  • 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

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

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.

Portfolio
Documents joints
un document Carte du jeu "Pose la fusée" (PDF de 122.9 ko)

Carte du jeu "Pose la fusée"

Fichier source de l’hélicoptère

Fichier source du jeu "pose la fusée"