Olivier Engler et Wallace Wang

Programmer

₄e édition

Programmer pour les Nuls 4e édition

Titre de l’édition américaine : Programming For Dummies

Publié par

Wiley Publishing, Inc.

111 River Street

Hoboken, NJ 07030 – 5774 USA

Copyright © 2017 Wiley Publishing, Inc.

Pour les Nuls est une marque déposée de Wiley Publishing, Inc.

For Dummies est une marque déposée de Wiley Publishing, Inc.

© Éditions First, un département d’Édi8, 2020 pour l’édition française.

Publiée en accord avec Wiley Publishing, Inc.

Cette œuvre est protégée par le droit d’auteur et strictement réservée à l’usage privé du client. Toute reproduction ou diffusion au profit de tiers, à titre gratuit ou onéreux, de tout ou partie de cette œuvre est strictement interdite et constitue une contrefaçon prévue par les articles L 335-2 et suivants du Code de la propriété intellectuelle. L’éditeur se réserve le droit de poursuivre toute atteinte à ses droits de propriété intellectuelle devant les juridictions civiles ou pénales.

ISBN numérique : 9782412058862

Dépôt légal : 4e trimestre 2020

Éditions First

92 avenue de France

75013 Paris – France

e-mail : firstinfo@efirst.com

Site internet : www.editionsfirst.fr

Traduction : Olivier Engler

Mise en page : Marie Housseau

Ce livre numérique a été converti initialement au format EPUB par Isako www.isako.com à partir de l'édition papier du même ouvrage.

Introduction

Programmer ? Tout le monde a entendu parler de cette activité mystérieuse qui consiste à créer des logiciels. Ce livre vous propose de découvrir cette science de façon différente des livres et des sites actuels qui expliquent la programmation.

On peut être un très bon chauffeur de poids-lourd sans connaître la théorie des moteurs Diesel, mais tous les pilotes de ligne connaissent en détail le fonctionnement de chacun des équipements qui constituent l'objet dans lequel ils sont assis.

Programmer, c'est guider une machine d'un état à un autre au-dessus d'un océan hostile - les bogues -, en garantissant la sécurité des passagers-utilisateurs.

Pour qui, ce livre ?

Ce livre ne présuppose aucune connaissance ni expérience en programmation. Les lecteurs qui voudront pratiquer les exemples auront un minimum de savoir-faire avec un ordinateur (démarrer une application, trouver un fichier, naviguer sur le web, etc.), mais vous pouvez quasiment tout lire sans pratiquer.

En termes d'âge, savoir lire et se concentrer pour certaines sections sont les seules conditions.

Le livre vous aidera notamment dans les cas suivants :

• Vous êtes collégien ou lycéen et voudriez vérifier que vous avez bien fait de vous engager dans cette discipline ou de vous en écarter.

• Vous êtes parent et voulez aider votre enfant à choisir son orientation.

• Vous êtes senior et aimeriez faire vos premiers pas en programmation.

• Vous êtes curieux de savoir dans quel état d'esprit est plongée une personne qui écrit un programme.

• Vous avez une idée d'application et aimeriez revoir les bases avant de vous lancer dans la réalisation. En littérature, quelle est la proportion de lecteurs par rapport aux auteurs ? Ce livre a aussi comme objectif de vous rendre capable de lire et de comprendre, au moins les grandes lignes, de n'importe quel programme, même si, en fin de compte, vous ne comptez pas « vous y mettre » .

Demandez le programme !

D'où vient le mot « programme » ?

« Pro » signifie vers l'extérieur, vers la place publique.

« Gramme » vient de graphein, noter par écrit, rendre tangible, communicable plus tard, permanent.

La première utilisation du mot « programme » est musicale. C'est un document destiné à une diffusion publique annonçant ce que des artistes ont prévu de jouer lors d'un futur concert. La lecture du programme permet donc de décider d'acheter ou pas des places. C'est une liste prévisionnelle d'actions souhaitées dans un certain ordre pour atteindre un objectif (un bon concert).

Au sens informatique, programmer c'est aussi préméditer des actions futures. C'est décider des changements d'état d'un automate à partir d'un état initial défini. Ce que cet automate modifie sont des représentations de choses vraies (ou fausses ! ) qui concernent votre propre existence, votre compte en banque, vos données de santé, vos souvenirs, même ceux que vous avez oubliés depuis.

On compare souvent la programmation à la création d'une recette de cuisine, mais une recette ressemble plutôt à un algorithme, et programmer, ce n'est pas que des algorithmes. Un algorithme est une technique de résolution d'un problème qui s'est avérée plus efficace que d'autres. De ce fait, elle est devenue générique. Pour réussir un clafoutis, il suffit de suivre la recette. Mais en programmation, vous devrez inventer le clafitoux et le clifoutat.

Comme le disait le nom du groupe anglais Soft Machine, programmer c'est créer une machine molle.

Préface de la deuxième édition

Depuis la parution de la première édition de ce livre, l'engouement pour la découverte des principes de l'informatique n'a cessé de croître chez les juniors comme chez les seniors.

Nous avons donc profité de cette nouvelle parution pour appliquer quelques retouches et vérifier que tout ce qui y est dit reste à jour.

Structure du livre

Ce livre comporte cinq parties : une importante partie centrale flanquée de deux parties de préparation et deux parties d'application.

La première partie vous propose de faire le lien avec votre quotidien. Nous y verrons que la programmation est moins éloignée de vous que vous pourriez le penser. Le Chapitre 2 donne l'occasion d'un premier projet de programmation sans écrire une ligne de code.

La deuxième partie aborde la naissance des machines à penser en termes matériel et intellectuel : automates, transistors, comptage en base deux et portes logiques.

La troisième partie s'étend sur huit chapitres pour découvrir pas à pas les grands principes de l'art de programmer : valeurs, variables, instructions, fonctions, tableaux, structures, construction de l'exécutable et librairies. Arrivé à la fin de cette partie, vous serez capable de comprendre les grandes lignes de n'importe quel infolangage et de choisir d'en apprendre plus par ailleurs si cela vous a mis en appétit.

La quatrième partie profite de la précédente pour oser aborder des pratiques de programmation plus complexes : une application pilotée par événement sous Windows, les bases de la programmation orientée objets et une incursion dans la création de pages web en HTML avec CSS et JavaScript.

La cinquième partie est constituée des traditionnels « Dix commandements » . Vous y trouverez dix pistes pour aller plus loin et dix erreurs de programmation à éviter.

Une annexe est consacrée à l'installation d'un atelier de développement (Code : :-Blocks) et une autre contient la table des codes ASCII des caractères anglais.

L'approche

Dans l'esprit de la collection « Pour les Nul(le)s » , le livre se rebelle contre la façon traditionnelle de parler de programmation. C'est-à-dire ?

Tous les livres et cours d'initiation (et l'auteur en a lu et francisé plus d'une cinquantaine) choisissent de commencer par un programme complet mais apparemment très court : l'affichage du message de bienvenue « Hello world » .

L'intention est bonne, mais le lecteur est brutalement sommé de deviner en même temps quasiment tous les concepts fondamentaux de la programmation ! Pourquoi des guillemets ? Pourquoi printf(), et #include, et ces accolades partout ? Et ces caractères du message, l'ordinateur les comprend ? De plus, l'affichage d'un message à l'écran est loin de constituer une activité centrale en programmation.

Les premières phrases que l'on apprend à écrire à l'école primaire ne sont pas des extraits de Zola ou d'un rapport du FMI, même très court. En comparaison du français, un infolangage est beaucoup plus simple. Il suffit de commencer par le commencement !

Un art de programmer ?

L'ordinateur que vous alimentez avec un logiciel va faire exactement ce que le programme contient. Ceci dit, séparer ainsi le matériel du logiciel est réducteur, tout comme vouloir séparer le corps de l'âme.

Un ordinateur éteint (donc sans logiciel) est l'objet le plus inutile qui puisse s'imaginer. L'ordinateur n'existe qu'une fois qu'un logiciel l'anime. Le logiciel est l'expression d'une sorte de scénario que vous avez entièrement conçu en fonction de l'idée que vous vous faites du fonctionnement de la machine.

En quelque sorte, lorsque le programme fonctionne, il n'est que la preuve que le scénario développé dans votre esprit était limpide. C'est exactement comme un tableau de peinture : s'il en émane assez de force pour toucher d'autres personnes, c'est que l'auteur a vécu une expérience intérieure forte au point de lui dicter les mouvements de son pinceau.

La pratique

Ne vous basez pas seulement sur la pratique pour apprendre à programmer. La rédaction d'un programme est d'abord un processus mental. Il faut se rendre disponible. Programmer, c'est d'abord construire l'idée de ce que l'on va écrire, puis passer à l'écriture dans un second temps.

Aussi important, sinon plus, que l'écriture de code, il y a la lecture des textes sources écrits par les autres ! Grâce au mouvement des logiciels libres et Open Source, vous disposez dès le départ d'une fabuleuse bibliothèque. Lisez du code, cherchez à comprendre comment les meilleurs programmeurs ont trouvé leurs solutions.

Un bon écrivain ou un bon compositeur ont d'abord « fait leurs classes » en puisant dans le savoir-faire de leurs prédécesseurs. Un des objectifs de ce livre est de vous aider à apprendre à lire le code source plus encore qu'à l'écrire. Vos idées de création viendront d'elles-mêmes ensuite.

Contrairement aux livres habituels pour débutants qui optent pour un langage « facile » (Visual Basic, Python), nous parlons de langage C et même d'assembleur. Mais ces langages sont considérés de « bas niveau » .

L'expression « de bas niveau » possède cette connotation élitiste que l'on retrouve chez les « intellectuels » (au sens péjoratif) qui veulent nier le corps, alors que c'est des émotions du corps que se construit l'âme, comme l'ont montré les chercheurs en neurosciences comme Antonio Damasio.

Pourquoi avoir choisi le C ?

❶ Le langage C est beaucoup plus transparent que les langages de « haut niveau » quand il s'agit de montrer les contraintes qu'impose le matériel sur les conditions de création.

❷ En présentant quelques concepts fondamentaux de façon très détaillée comme nous le proposons dans la Partie 3, il est ensuite beaucoup plus facile de maîtriser n'importe quel autre langage. Vous en ferez l'essai dans la Partie 4 en abordant (brièvement car la place manque) la programmation pilotée par événements et la programmation objets.

Les fichiers archives des exemples

Les troisième et quatrième parties contiennent de nombreux exemples de texte source. Il est bien sûr intéressant de les tester et de les modifier pour voir ce qui se passe réellement.

Dans les premiers chapitres, ce sont des extraits non directement compilables. Ils sont d'abord destinés à être lus. Nous indiquons cependant au début de la troisième partie comment ajouter un habillage permettant de rendre ces exemples opérationnels.

Vous trouverez les exemples sous forme de fichiers archives compressés sur la page du livre sur le site de l'éditeur :

www.pourlesnuls.fr

En bas de la page, choisissez téléchargement, puis dans la liste déroulante qui apparaît, choisissez Pour les nuls Vie numérique. Cherchez la couverture de ce livre et cliquez. La liste des archives vous est proposée.

Des conseils pour mettre en place les fichiers et les outils sont fournis avec les archives.

Conventions typographiques

Les mots-clés du langage C et les noms des fonctions prédéfinies sont imprimés dans une police fixe, comme dans printf() ou break.

Les noms de fichiers et de dossiers sont imprimés en police sans serif en italique, comme dans programme.exe.

Les noms des commandes dans les menus sont imprimés sans serif gras : ouvrez le menu Fichier.

Les listings source sont numérotés dans chaque chapitre, comme ceci :

LISTING 1.1 : Exemple de texte source.

#include <stdio.h>
int main() {
 return(0);
}

La largeur limitée des pages imprimées oblige à limiter la longueur des lignes de texte source.

Icônes utilisées

Cette icône attire l’attention sur une information qu’il est important de mémoriser. Bien que je conseille de tout mémoriser, il s’agit ici de quelque chose d’absolument indispensable.

Une astuce est une suggestion, une technique spéciale ou quelque chose de particulier qui vous aide à être encore plus efficace.

Cette icône marque un piège à éviter, une information qui peut avoir de fâcheuses conséquences si vous n’en tenez pas compte.

Bien sûr, tout est technique en programmation, mais je réserve cette icône aux compléments, apartés et anecdotes encore plus techniques. Considérez-les comme des bonus pour ultra-geeks.

Remerciements

L'auteur remercie particulièrement Jean-Pierre Cano de lui avoir fait confiance pour ce titre qui constitue le point d'entrée pour tous les autres livres de la collection « Pour les Nuls » consacrés aux langages informatiques.

Merci du fond du coeur à Martine, Eva et Déreck pour avoir supporté ma vie nocturne au long de tous ces mois.

Un grand merci à l'éminent linguiste Richard Carter pour les discussions sur les rapports entre infolangages et langages humains.

Avertissement

En programmation, on prend rapidement l'habitude de traquer la moindre faute, chez soi comme chez les autres. La rigueur des infolangages a cette rigidité pour corollaire. Certains professionnels de l'informatique seront donc prompts à relever des choix éditoriaux qui les auraient déroutés.

Nous avons par exemple choisi de ne présenter la fonction d'affichage printf() qu'au bout d'une centaine de pages, parce qu'elle suppose de maîtriser plusieurs notions plus élémentaires d'abord.

De même, nous avons choisi de ne pas consacrer beaucoup de pages à la présentation de toutes les fonctions prédéfinies du langage. En effet, une fois que vous avez acquis des bases solides, découvrir comment utiliser ces fonctions est aisé : il suffit de puiser dans la documentation de référence.

De nos jours, un programmeur passe beaucoup de temps à créer des passerelles entre des blocs fonctionnels préexistants, blocs qu'il doit apprendre à utiliser. Il est devenu très rare de commencer un projet avec un écran vierge. Si après avoir lu ce livre, vous décidez d'aller plus loin en programmation, prévoyez donc de ne jamais cesser d'apprendre.

Gardons le contact !

Une importante nouveauté de cette édition est la mise à disposition d'une adresse de contact. Vous pouvez dorénavant nous transmettre des suggestions pour la prochaine édition et poser des questions.

Pour bien utiliser cette opportunité, vous voudrez bien tenir compte des règles suivantes.

Commencez le texte de l'objet du message (son titre) par la référence PROGPLN, comme ceci :

PROGPLN : Résumé de ma question/suggestion

Envoyez votre message à cette adresse :

firstinfo@efirst.com

Ayez un peu de patience, car il faut quelques jours pour retransmettre les messages à l'auteur et lui laisser le temps de répondre.

En vous souhaitant un agréable voyage dans l'univers de la programmation !

Partie 1 Premiers contacts

Dans cette partie

Un tableur pour programmer ?

•

Les pages Web vues des coulisses

•

L'atelier Scratch

•

Un jeu de tennis en 30 minutes

DANS CE CHAPITRE

Formuler, c'est programmer

•

Une fourmilière sous le capot

Chapitre 1 Le code est partout

Dans bien des domaines d'activités humaines, les frontières entre l'intime et l'étranger sont floues. Tout le monde programme sa journée, ses prochains congés et ses jours de fête. Vous direz que ce n'est pas la même chose. En apparence, oui.

Au quotidien, certaines activités considérées comme banales avec un ordinateur sont déjà des invitations à adopter l'état d'esprit du programmeur. Le meilleur exemple est le logiciel bureautique nommé tableur.

Votre tableur est programmable

Le premier logiciel pour grand public qui permettait d'une certaine façon de programmer est un tableur, l'ancêtre de tous les tableurs : VisiCalc. Conçu fin 1978 par Dan Bricklin et Bob Frankston, il a engendré une descendance qui a envahi les bureaux et les foyers du monde entier.

Quasiment quatre décennies plus tard, l'idée de génie de VisiCalc est toujours le fondement des tableurs modernes tels que Excel, LibreOffice et OpenOffice. Elle consiste à permettre d'écrire dans une cellule de tableau non seulement un nombre ou du texte, mais aussi une formule. Autrement dit, dans le même emplacement, il peut y avoir des données ou du code qui génère des données.

Figure 1.1 VisiCalc, le premier tableur.

Prenons un tableur moderne (OpenOffice). L'exemple suivant cherche à trouver automatiquement le prix le plus bas pour une série d'articles dans les deux supermarchés les plus proches. Nous avons saisi un échantillon de données et deux fois la même formule simple pour faire la somme d'une colonne.

Figure 1.2 Une feuille de calcul avec deux formules.

Dans la colonne B, au lieu de saisir une valeur, nous indiquons la formule :

=SOMME(B4:B9)

De nombreux lecteurs connaissent cette technique. Elle est remarquable parce qu'une fois déshabillée elle est très similaire à celle-ci :

ADD Adresse1,  Adresse2

qui est typiquement du langage assembleur, directement compréhensible par un processeur. Nous y reviendrons dans la suite du livre.

Un tableur permet aussi des formules conditionnelles grâce à la fonction SI qui propose déjà une syntaxe très proche des instructions conditionnelles. Saisissons la formule suivante en cellule D4 :

=SI(B4>C4;"Lanville";"Boucy")

La formule dit : « Si la valeur de l'adresse (de la cellule) B4 est supérieure à celle de l'adresse C4, nous injectons le nom du second magasin (le moins cher) dans la cellule contenant cette formule, et le nom du premier sinon » .

Nous profitons de l'excellente possibilité de copie relative pour remplir la colonne. Nous ajoutons une formule similaire ( =SI(D4="Lanville" ; C4 ; B4) ) dans la colonne suivante.

Figure 1.3 Résultats des formules affichés.

Pour voir les formules au lieu des données :

• dans Open ou LibreOffice, ouvrez la boîte Outils/Options et activez dans LibreOffice Calc/Affichage l'option Formules.

• dans Excel, dans Fichier/Options, Options avancées, descendez jusqu'à la catégorie Options d'affichage de la feuille pour activer l'option Formules dans les cellules.

Sans même parler des macros dont sont dotés tous les logiciels bureautiques de nos jours, un premier contact avec certains concepts de programmation est donc accessible à chacun de nous.

Voyons maintenant un autre contexte où l'activité de programmation est très accessible : votre navigateur Web.

La fourmilière sous le capot

La navigation sur Internet (le Web) est devenue un acte quotidien. C'est aussi un moyen très simple de découvrir à quoi ressemble un programme.

Ouvrons par exemple une session de navigation avec un navigateur standard, que ce soit Firefox, Chrome, Internet Explorer ou Safari (ou d'autres sous Linux). Voici la page d'accueil du site de l'éditeur de ce livre :

Figure 1.4 La page d'accueil du site editionsfirst.fr.

Prenez quelques instants pour repérer les sections qui constituent la page :

• plusieurs boutons-liens tout en haut ;

• une bannière graphique ;

• un menu horizontal proposant des catégories ;

• un bandeau de recherche ;

• puis plusieurs sections de contenu.

Et maintenant, nous pouvons basculer d'un geste dans les coulisses. Le tableau suivant indique quel est ce geste selon le navigateur.

Tableau 1.1 Accès au code source d'une page Web.

Logiciel
Technique

Firefox

Menu Outils/Développement Web et Code source de la page.

Internet Explorer

Menu Affichage/Source.

Safari

1) Menu Safari/Préférences, page Avancées, option Afficher le menu Développement. 2) Menu Développement/Afficher le code source.

Chrome

Menu Outils, Afficher la source.

Le raccourci clavier Ctrl-U fonctionne dans tous les navigateurs sous Windows (Alt-Pomme-U sous Mac). Voici le résultat affiché.

Figure 1.5 Le code source de la même page.

Ce que vous voyez est du code source. Dans ce cas précis, c'est un mélange de plusieurs langages :

• du HTML : les balises HTML commencent toujours après un chevron gauche ;

• du JavaScript : tout ce qui suit un marqueur <script language=... et jusqu'au prochain marqueur de fin </script> ou bien les liens soulignés se terminant par .js ;

• du CSS : pour contrôler l'apparence visuelle de la page ;

• du PHP : pour gérer le cas où le visiteur a oublié son mot de passe.

Voici le détail d'un fichier JavaScript contenu dans la même page. Vous constatez que les lignes ont des retraits variables à gauche (pour améliorer la compréhension du code).

Figure 1.6 Extrait de code source JavaScript.

Pour l'instant, tout ceci ne devrait pas vous parler, mais une fois les fondamentaux présentés, ce sera bien plus clair.

Notez que vous pouvez faire une copie locale de la page complète (menu Fichier/ Enregistrer sous) et voir tous les fichiers source dans le sous-dossier créé.

Après ce premier contact, procédons à une séance complète de programmation, mais avec un outil visuel. Il n'y aura pas une ligne à écrire et aucun logiciel à installer. En route pour Scratch !

DANS CE CHAPITRE

L'atelier Scratch

•

Premiers pas

•

Un jeu de tennis sans écrire une ligne

Chapitre 2 Une séance de programmation ludique

Scratch est le nom d'un logiciel de programmation visuelle conçu par un laboratoire de recherche américain (le groupe Lifelong Kindergarten Group) du MIT Media Lab au Massachussets. Le logiciel est gratuit et se fonde sur de nombreux logiciels libres.

Depuis 2012, Scratch est utilisable sans installation, dans une fenêtre de navigateur Web. Plus de sept millions de projets ont été conçus en Scratch, et leurs auteurs ne sont pas que des enfants ou des adolescents.

Entrez dans le monde de Scratch

Ouvrez votre navigateur Web et cherchez à accéder au site du langage Scratch. Voici l'adresse exacte :

scratch.mit.edu

Figure 2.1 La page d'accueil de Scratch.

La page devrait être en français. Du côté gauche, repérez la grande icône ESSAIE LE (ou TRY IT). Cliquez-la. Vous arrivez dans la fenêtre d'expérimentation, c'est-à-dire l'atelier de création.

Parfois, il y a trop de monde sur le serveur et certaines images ne s'affichent pas. Mais le lien reste accessible au format texte (Figure 2.1).

Préparation de l'atelier

Avant d'en découvrir les éléments, faisons le ménage. Nous supposons que vous avez cliqué ESSAIE-LE ou TRY IT.

❶ En haut à gauche, à côté du titre Scratch, vous voyez un petit globe terrestre. C'est un menu dans lequel vous pouvez choisir votre langue d'interface. Si les menus ne sont pas en français, choisissez Français dans la liste (Figure 2.2).

Figure 2.2 Début du menu des langues de l'atelier Scratch.

❷ Si vous voyez à droite un volet Gettings started in Scratch ou Prise en main de Scratch, cliquez dans la croix de fermeture du volet dans son angle supérieur gauche (Figure 2.3).

Figure 2.3 Bouton de fermeture du volet droit du guide.

L'atelier est maintenant dans son état initial.

Figure 2.4 Vue générale de l'atelier Scratch.

Chat alors !

À gauche sous le menu, vous voyez une vaste zone blanche. Cet espace est la Scène. Elle contient un gros matou orange, la mascotte de Scratch. Dans le monde de Scratch, cet objet visuel se nomme un lutin.

❶ Déplacez le pointeur de souris dans la scène tout en regardant changer ses coordonnées sous la scène à droite. Vous comprenez que l'origine des coordonnées est au centre de la scène (juste à gauche de la bouche du chat).

Les coordonnées augmentent vers la droite et vers le haut. Les limites sont les suivantes :

• dans le sens horizontal, de -240 sur le bord gauche à +240 sur le bord droit ;

• dans le sens vertical, de +180 sur le bord supérieur à -180 sur le bord inférieur ;

C'est dans cet espace que nous allons proposer une promenade au matou en utilisant les blocs d'action du volet central.

❷ Dans le volet en bas à gauche, cliquez une fois dans l'objet visuel Sprite1 (notre matou) pour le sélectionner.

Ici, il n'y a qu'un objet mais il y a aussi l'arrière-plan Scène, et c'est le matou que nous voulons faire bouger.

❸ Dans le volet central, cherchez le bloc bleu (catégorie Mouvement) suivant :

Avancer de 10 pixels

❹ Cliquez et maintenez le bloc puis faites-le glisser jusqu'au volet droit et relâchez à peu près en haut (laissez l'espace de deux blocs au-dessus).

Figure 2.5 Association d'une action au chat.

Vous venez de définir une instruction.

❺ Repérez le drapeau vert au-dessus de la scène. Il sert à démarrer le programme. Cliquez. Il ne se passe rien !

C'est normal. Une action est associée à l'objet, mais rien ne dit quand cette action doit se déclencher. Il manque un événement.

❻ Dans le volet des blocs, changez de catégorie en cliquant sur Evénements. Vous voyez des blocs bruns.

❼ Repérez le bloc Quand (DrapeauVert) pressé. Amenez-le dans le volet d'écriture de droite au-dessus de l'autre sans relâcher. Attendez de voir la silhouette du bloc apparaître. Cela confirme que le nouveau bloc sera bien ancré avant l'autre. Relâchez.

Si les deux blocs ne sont pas enclenchés, déplacez l'un ou l'autre pour y parvenir.

Figure 2.6 Ajout d'un événement déclencheur de l'action.

❽ Essayons à nouveau en utilisant le bouton vert de la scène. Cette fois-ci le chat se déplace un peu vers la droite à chaque clic, jusqu'à presque disparaître dans les coulisses.

Figure 2.7 L'objet chat a presque disparu à droite.

(Vous pouvez l'agripper par la queue pour le ramener vers le milieu de la scène ou ailleurs.)

❾ Cliquez dans la zone numérique du bloc d'action Avancer de… et indiquez la valeur 50 (pixels). Vous aurez moins à cliquer pour atteindre le bord.

❿ Dans le volet des blocs, affichez la catégorie Mouvement et repérez le bloc Tourner (VersLaDroite) de 15 degrés sous le dernier (bien ancré).

⓫ Déposez ce bloc sous le dernier en veillant à ce qu'il s'accroche sous l'autre mouvement.

⓬ Toujours dans la catégorie Mouvement, utilisez l'ascenseur pour voir le bloc nommé Rebondir si le bord est atteint.

⓭ Déposez ce bloc en l'accrochant au précédent. Nous avons créé une action conditionnelle.

⓮ Essayez le programme. Lorsque le chat touche assez le bord droit, il tourne sur lui-même et repart dans un autre sens, et ainsi de suite.

Figure 2.8 Le programme qui donne un comportement au chat.

En répétant le programme, vous remarquez que notre chat s'amuse comme un fou à faire des cabrioles. Mais le doigt se fatigue vite à cliquer.

Un mouvement permanent

Pour que le chat se déplace seul, nous allons ajouter une boucle de répétition. Nous abrégeons la promenade avec le bouton rouge d'arrêt impératif.

❶ Dans le volet des blocs, affichez la catégorie jaune Contrôle et repérez le bloc Répéter indéfiniment.

❷ Ici, il faut être délicat. Dans le bloc, cliquez à peu près sur le début de sa légende (Répéter…) et amenez le bloc au-dessus des trois blocs d'action bleus.

Bougez légèrement jusqu'à voir le nouveau bloc s'étendre en hauteur pour englober les trois actions avec la silhouette entre le bloc de départ et le deuxième. Vous pouvez alors relâcher.

❸ Lancez le programme. Selon la dernière position de l'objet, le chat va faire des cercles ou bien rebondir.

❹ Utilisez le bouton rouge d'arrêt.

Vous pouvez entre deux essais faire varier les paramètres : la quantité d'avance en pixels et l'angle de rotation. Vous verrez que si le chat n'avance pas assez, il va tourner en rond car jamais plus il n'avancera assez pour toucher un bord et donc rebondir (ce qui fait changer de sens). Vous pouvez arrêter le programme et placer le chat plus près d'un bord avant de relancer.

Notre premier programme est terminé. Si vous voulez pouvoir le retrouver, il vous faut le stocker en lieu sûr, par exemple sur le disque de votre ordinateur.

Figure 2.9 Ajout d'une boucle de répétition infinie.

Sauvons le chat fou

❶ Ouvrez le menu Fichier en haut à gauche et choisissez la troisième commande, Télécharger dans votre ordinateur. Donnez par exemple le nom Chatfou et validez.

Figure 2.10 Sauvegarde du projet Chatfou.

❷ Vous pourrez retrouver votre projet plus tard avec la deuxième commande (Importer depuis votre ordinateur).

L'atelier Scratch permet donc de découvrir les principes de la programmation sans devoir apprendre à écrire dans un infolangage. Passons à un projet plus conséquent pour découvrir d'autres concepts.

Création d'un jeu en Scratch

Nous allons supprimer le matou ! Serions-nous cruels ? Nullement. Vous comprendrez pourquoi il vaut mieux ne pas nous servir du matou pour le projet que nous allons créer, car nous risquerions une plainte de la SPA.

❶ Dans le menu Fichier, choisissez Nouveau (New).

Si vous ne venez pas de sauvegarder, une boîte vous demande si vous acceptez d'abandonner tout ce qui a été fait jusque-là (le message est peut-être en anglais : Discard contents ...?). Dans vos futures sessions avec cet outil, faites une pause à ce moment avant d'accepter. En informatique, on peut perdre quatre heures de travail en une microseconde.

Vous voyez l'interface initiale de Scratch :

• à gauche, deux panneaux superposés pour la Scène et la boîte à objets ;

• au centre, le panneau des blocs d'actions et d'instructions ; il montre au départ les blocs de la catégorie Mouvement ;

• à droite, le panneau de rédaction des programmes, vide puisque rien n'a été écrit.

❷ Amenez le pointeur de souris sur le gros matou (pas sa vignette en bas) et cliquez-droit pour ouvrir le petit menu local.

Figure 2.11 Le menu local d'un objet.

❸ Choisissez la commande Supprimer.

Le matou disparaît de la scène, mais en outre le volet central se vide de tous les blocs bleus. Ce n'est rien. Ils vont réapparaître quand nous aurons à nouveau au moins un lutin.

Sur certaines machines, le menu local n'apparaît pas à cause d'un souci dans la version de Flash. Dans ce cas, sélectionnez le chat dans le volet Lutins en bas à gauche, puis ouvrez la page Costumes au milieu en haut et supprimez manuellement le ou les chats avec le bouton Effacer du volet droit.

Réfléchir avant d'agir

Le jeu que nous allons créer est une sorte d'entraînement de tennis. Comme nous utilisons le langage Scratch, le projet s'appellera Scrannis.

Avant de nous jeter dans la réalisation, il nous faut étudier ce dont nous avons besoin et quels comportements devront avoir nos objets. Il nous faut :

• une balle ;

• une raquette ;

• trois murs rebondissants ;