Cours 8 :PROGRAMME SCRATCH (A PARTIR DE 8 ANS !) Programmer c'est quoi: Programmation et langages: Programmer c'est décrire à l'aide d'un vocabulaire limité ce qu'on veut que l'ordinateur fasse, ligne par ligne. Un programme ressemble donc beaucoup à une recette de cuisine. Selon le langage de programmation, on n'a pas les même mots, ni la même syntaxe, ni la même manière de décrire ce qu'on veut. Un langage de programmation est lui-même un programme qui traduit les textes en langage machine, finalement exécuté par l'ordinateur. Dans tous les langages de programmation, y compris le langage machine, on trouve: - la variable, un mot qui devra représenter une valeur. Par exemple si on écrit la ligne volume = 8 dans la suite du programme on pourra utiliser le mot volume à la place de 8 - le test et l'instruction conditionnelle: SI ( volume < 7 ) ALORS (volume = 8) Ces deux éléments sont le minimum nécessaire pour programmer. Certains langages informatiques ne sont PAS des langages de programmation: HTML, PDF sont des langages de description de page. Ca ne les empêche pas d'être compliqués et de faire de longs listings. Scratch et Processing sont des langages de programmation. Ca ne les empêche pas d'être simples et de faire beaucoup en moins de vingt lignes Quelques langages de programmation: Actuels: java, javascript, python, perl, C, C++, Ruby, Processing Etranges: Logo, Forth, Lisp, Prolog Anciens: Basic, Pascal, Ada, Cobol, Fortran Spécifiques: Applescript, Metal, Visual Basic Bidouillage: Shell (Ex: bash) , assembleur, Arduino Adresses: Processing: https://processing.org/download/ (Cours en français: http://www.ecole-art-aix.fr/rubrique81.html) NetLogo: https://ccl.northwestern.edu/netlogo/ Basic: Metal http://freymanart.com/metal/ Scratch été inventé pour pervertir les enfants à partir de 8 ans en leur donnant le goût de la programmation. Scratch est fait pour être le plus simple possible: On ne tape rien, on se contente de draguer des lignes toutes faites. Scratch 1.4 se trouve là: http://scratchfr.free.fr/ http://info.scratch.mit.edu/fr/Scratch_1.4_Download http://wiki.scratch.mit.edu/wiki/Project_Downloading Pour passer en français: Dans la barre de titre, cliquer le globe terrestre après le mot "SCRATCH" Charger les exemples dans Fichier/Ouvrir/Exemples Scratch, ses principes, ses fenêtres: En Scratch Un programme est fait d'objets animés sur un écran. Ces objets interagissent entre eux et avec l'utilisateur. Chaque objet a son propre programme 2 L'Ecran montre: La Scène (l'écran blanc à droite) qui peut avoir son programme. Les Objets qui vont interagir (listés dans la fenêtre du bas à droite) Quand on clique un Objet (sur la liste sous la Scène, ou directement dans la scène) on affiche son programme dans La colonne centrale : Le tableau de définition de l'Objet sélectionné est la colonne au centre En haut, on a la position (x,y,direction) de l'Objet, son icône, et son nom qu'on peut changer En haut à gauche, on coche le type de rotations autorisé pour l'Objet. Costume liste les formes que peut prendre l'objet pendant son programme Ce sont de simples dessins. On peut en ajouter autant qu'on veut. Scratch propose des dossiers de dessins pour les donner à vos objets Un programme de dessin est incorporé à Scratch pour en créer de nouveaux. Son: liste les sons que peut émettre un objet pendant son programme. Comme pour les dessins, il y a une bibliothèque et on peut en créer. Script: est son programme proprement dit. La colonne de gauche est le langage de programmation: En haut on clique sur le genre d'instruction, comme sur un onglet. Pour faire joli et facile à repérer, chaque genre a sa couleur. Dessous, les lignes de programme possibles pour ce genre 3 Programmer en Scratch En Scratch, programmer un objet consiste à draguer une ligne de la colonne de gauche vers la colonne Scripts de l'Objet. C'est tout. On colle les lignes ensemble pour faire des blocs. On décolle une ligne par en bas. On la repose à gauche quand on n'en veut plus. On double-clique un bloc pour le faire exécuter et le tester. Une fois que chaque objet a reçu son programme, on clique le drapeau vert en haut à droite pour lancer tout à la fois. Premier exemple: Draguer "Contrôle/répéter indéfiniment" dans la colonne Script de l'Objet 1 Draguer "Mouvement/tourner de 15 degrés" au centre des mâchoires de "répéter indéfiniment" Double-cliquer sur le bloc NOTE: En haut à droite, on a différentes dispositions des fenêtres de Scratch. C'est pratique de changer quand veut présenter plein écran ou programmer des blocs. Conseils pour se lancer dans la programmation: Un programme ne marche jamais du premier coup comme on l'avait prévu. On doit toujours le corriger, le "debuguer". La manière la plus efficace de programmer est donc de progresser bug par bug Partir d'un exemple de programme simple qui marche, qui ressemble à ce qu'on veut, et lui ajouter petit à petit objets et des instructions, qu'on debugue au fur et à mesure L'erreur des débutants est de concevoir un grand programme d'abord et de se lancer dans l'écriture du tout après. On décrit les programmes comme ça, mais on ne les écrit pas comme ça. 4 Comme en modelage, on peut mettre au point des morceaux de programme séparément et les assembler par copié-collé Second exemple: Exercice pratique: On va complexifier un programme simple: Pong Fichier/Ouvrir/Exemples/Games/Pong OK On examine ses 3 objets: Scène, ball, paddle - Scène a juste un son (jamais employé, d'ailleurs) - paddle n'a qu'un bloc d'instruction: dès que le dapeau vert est cliqué, sa position x sera celle, horizontale, de la souris Cliquer le drapeau vert et constater que c'est ce qu'il fait! -ball a un son et 3 blocs d'instruction Le premier dit où se mettre quand le jeu commence, et qu'on arrête tout si on touche la ligne rouge Le dernier dit que la balle avance et rebondit sur les bords de la Scène Le central dit ce qu'elle fait TANT QUE elle touche paddle (ce qu'elle arrêtera de faire quand elle aura "rebondi") A vous de modifier tout ça. CONSEIL: SAUVEZ A CHAQUE MODIFICATION QUI MARCHE, C'est plus facile de recharger que de défaire et refaire! Suggestion 1: changer le son que fait la balle, sa vitesse (Cliquer les nombre pour les changer) Suggestion 2: créer des plots qui dévient la balle genre flipper Editer le dessin de la scène, ajouter trois petits carrés verts Editer le Script de la balle: Séparer le bloc qui fait rebondir sur le paddle "jouer le son…", le dupliquer (clic droit) et le remettre en place. Dans les instructions "Controle", draguer "répéter indéfiniment si " autour de notre copie 5 Dans les instructions "Capteurs" draguer "couleur touchée" et le poser après le "si" de "répéter indéfiniment si" cliquer la couleur, la souris devient pipette, cliquer un plot vert Dans les instructions "Controle", ajouter "Quand drapeau pressé" sur notre bloc Suggestion diverses: Créer un paddle vertical Transformer le jeu en casse-brique Ajouter une variable qui compte le nombre de rebonds et augmente la vitesse. etc... Continuer à la maison: Pour commencer doucement, prenez des exemples simples: dans Fichier/Ouvrir/Exemples/ Animation: Aquarium Games: Pong, FishChomp, Marble Racer Interacive Art: Kaleidoscope, WHEE (variables) Music and Dance: Ocean Music Box Names: tamara Simulations: SoundGraph NOTE: la section Sensors & Motors: ces programmes utilisent une carte externe (http://www.picocricket.com/picoboard.html) Télécharger d'autres exemples: http://scratch.mit.edu/ ou http://scratch.mit.edu/studios/211854/ Choisir un projet, cliquer "Voir à l'interieur". Dans la fenêtre de l'éditeur, menu Fichier/Télécharger dans votre ordinateur. On obtient un fichier .sb2 pour Scratch2. On le convertit en fichier .sb pour Scratch 1.4 en allant sur: http://kurt.herokuapp.com/20to14 6