Sie sind auf Seite 1von 141

DCOUVRIR LA PROGRAMMATION AVEC ----------------------------------------------------------

LE LANGAGE LINOTTE
VERSION 2010.A

Ronan Mouns

Dcouvrir la programmation avec le langage Linotte

Spcification 0.7.5 du langage Linotte

-2-

Dcouvrir la programmation avec le langage Linotte

I. PRSENTATION DU LANGAGE LINOTTE .............................................................................................6 A. HISTORIQUE............................................................................................................................6 B. QUEST-CE QUUNE LINOTTE ?...................................................................................................7 C. LICENCES...............................................................................................................................7 D. LA MASCOTTE.........................................................................................................................7 II. INSTALLER LINOTTE....................................................................................................................8 A. TLCHARGEMENT ET INSTALLATION...........................................................................................8 1. INSTALLATION SOUS MICROSOFT WINDOWS.............................................................................8 2. INSTALLATION SOUS LINUX...................................................................................................9 3. INSTALLATION SOUS MACOSX...........................................................................................10 B. LAPPLICATION : L'ATELIER LINOTTE........................................................................................11 1. SOUS MICROSOFT WINDOWS...............................................................................................12 2. SOUS LINUX ET MACOS....................................................................................................12 C. LAPPLET PETITETTEDELINOTTE DANS UN NAVIGATEUR INTERNET..............................................13 D. JINOTTE................................................................................................................................13 1. SOUS MICROSOFT WINDOWS...............................................................................................14 2. SOUS LINUX.....................................................................................................................14 3. SOUS MACOS X...............................................................................................................14 III. LES NOTIONS DE BASE..............................................................................................................15 A. LE LIVRE..............................................................................................................................15 B. LES PARAGRAPHES................................................................................................................16 C. LES ACTEURS ET LES RLES.....................................................................................................17 1. LES ACTEURS...................................................................................................................17 2. LES RLES : TEXTE ET NOMBRE............................................................................................18 D. IMPRATIF OU PRSENT ?........................................................................................................20 E. LES ARTICLES........................................................................................................................20 F. LES ACTIONS.........................................................................................................................21 G. LES ACTEURS ANONYMES........................................................................................................23 H. LES CASIERS.........................................................................................................................24 I. LES ACTEURS PARTICULIERS......................................................................................................24 J. LES GRANDS RLES.................................................................................................................25 K. LES COMMENTAIRES...............................................................................................................26 L. LES CONDITIONS....................................................................................................................27 M. LES BOUCLES ET LE JOKER......................................................................................................29 1. POUR CHAQUE...................................................................................................................29 2. DE... A...........................................................................................................................31 3. POUR DE ..........................................................................................................32 4. TANT QUE........................................................................................................................33 5. SUPPRIMER UN ACTEUR D'UN CASIER.....................................................................................33 N. LES SOUFFLEURS..................................................................................................................34 O. LES ESPCES.......................................................................................................................34 P. LES ACTEURS PERSISTANTS ( OU FICHIERS )...............................................................................37 Q. CHARGER UN FICHIER DEPUIS INTERNET...................................................................................38 IV. PROGRAMMATION AVANCE.......................................................................................................39 A. INTRODUCTION......................................................................................................................39 B. LES MATHMATIQUES.............................................................................................................39 C. LES POINTEURS DE CASIERS......................................................................................................40 D. CRATION DYNAMIQUE DES ACTEURS........................................................................................41 E. CHARGEMENT DYNAMIQUE DES ACTEURS....................................................................................42 F. AFFICHAGE DYNAMIQUE DU NOM D'UN ACTEUR...........................................................................43

-3-

Dcouvrir la programmation avec le langage Linotte

G. HRITAGE..............................................................................................................................44

LES SOUS-PARAGRAPHES.........................................................................................................45 I. LES ACTEURS LOCAUX.............................................................................................................46 J. LES DOUBLURES.....................................................................................................................49 K. LE CLONAGE D'ACTEUR...........................................................................................................51 L. LA LECTURE PARALLLE..........................................................................................................53 M. LES GREFFONS......................................................................................................................55 V. LE GRAPHISME.........................................................................................................................56 A. LES ESPCES GRAPHIQUES........................................................................................................56 1. LES TALENTS D'ARTISTE DE L'INTERPRTE..............................................................................56 2. LES FIGURES GOMTRIQUES................................................................................................59 3. TRANSFORMATION !...........................................................................................................61 4. LES SCRIBES.....................................................................................................................62 5. TABLEAU DES CARACTRISTIQUES DES ESPCES GRAPHIQUES.....................................................64 B. ANIMATION DES ACTEURS........................................................................................................67 C. INTERAGIR AVEC L'UTILISATEUR................................................................................................70 D. PROGRAMMER EN LOGO..........................................................................................................72 VI. LE VERBIER............................................................................................................................74 AFFICHER.................................................................................................................75 DEMANDER...............................................................................................................76 QUESTIONNER...........................................................................................................77 ALLER.....................................................................................................................78 COPIER.....................................................................................................................79 MESURER.................................................................................................................80 VIDER......................................................................................................................81 AJOUTER..................................................................................................................82 CONCATNER............................................................................................................83 REVENIR..................................................................................................................84 TERMINER................................................................................................................85 MLANGER...............................................................................................................86 INVERSER.................................................................................................................87 INSRER...................................................................................................................88 EXTRAIRE.................................................................................................................89 CHERCHER................................................................................................................90 TRIER......................................................................................................................91 ATTENDRE................................................................................................................92 DIVISER...................................................................................................................93 MULTIPLIER..............................................................................................................94 SOUSTRAIRE..............................................................................................................95 JOUER......................................................................................................................96 PROJETER.................................................................................................................97 DPLACER VERS LA GAUCHE........................................................................................98 DPLACER VERS LA DROITE.........................................................................................99 DPLACER VERS LE BAS............................................................................................100 DPLACER VERS LE HAUT..........................................................................................101 DPLACER DE..........................................................................................................102 DPLACER VERS......................................................................................................103 TOURNER GAUCHE.................................................................................................104 TOURNER DROITE..................................................................................................105 AVANCER...............................................................................................................106 RECULER................................................................................................................107 TEMPORISER............................................................................................................108 -4-

H.

Dcouvrir la programmation avec le langage Linotte

TEMPORISER N SECONDES..........................................................................................109 EFFACER................................................................................................................110 EFFACER LA TOILE...................................................................................................111 EFFACER LE TABLEAU...............................................................................................112 RAFRACHIR............................................................................................................113 MODIFIER...............................................................................................................114 PHOTOGRAPHIER DANS..............................................................................................115 VIDER LES TOUCHES.................................................................................................116 CRER...................................................................................................................117 CONVERTIR.............................................................................................................118 PARCOURIR.............................................................................................................119 PARCOURIR AVEC.....................................................................................................120 EXPLORER..............................................................................................................121 TER DE................................................................................................................122 VALOIR..................................................................................................................123 STIMULER...............................................................................................................124 LIRE......................................................................................................................125 FERMER.................................................................................................................126 VALUER................................................................................................................127 APPELER................................................................................................................128 OBSERVER..............................................................................................................129 OUVRIR UN TUBE.....................................................................................................130 FERMER UN TUBE.....................................................................................................131 CHARGER UN TUBE...................................................................................................132 DCHARGER UN TUBE...............................................................................................133 CONFIGURER UN TUBE..............................................................................................134 VII. ANNEXES............................................................................................................................135 A. ET POUR QUELQUES LIVRES DE PLUS........................................................................................135 1. TROUVER LE NOMBRE.......................................................................................................135 2. MMOIRE DES CHIFFRES....................................................................................................136 3. MMOIRE DES CHIFFRES 2.................................................................................................137 4. 99 BOTTLES OF BEER......................................................................................................138 5. L'AGENDA TEXTE.............................................................................................................139 6. PONG.............................................................................................................................141

-5-

Dcouvrir la programmation avec le langage Linotte

I.PRSENTATION DU LANGAGE LINOTTE


A.HISTORIQUE
Linotte est un projet n en 2005 dans la tte dun informaticien constatant que la programmation informatique tait entrain de devenir de plus en plus complique. Dun ct, nous avons les programmeurs geeks qui suivent cette volution sans problme car c'est soit leur mtier ou une passion (peut tre mme les deux !), mais de lautre ct, nous avons les novices et les curieux qui souhaitent entrer dans cette joyeuse communaut mais du coup hsitent devant les centaines de langages offerts eux ! Sils ne se dcouragent pas, ils peuvent commencer leur chemin de croix ! Premire tape, il faut trouver un langage de programmation, deuxime tape, rechercher une documentation accessible un dbutant et enfin, la dernire tape, est d'apprendre un environnement graphique pour crire et excuter ses programmes... et pour couronner le tout, la plupart des langages sont en anglais ! Mme si le niveau danglais utilis dans les langages est trivial, il est dommage de ne pas utiliser notre langue surtout si le programme na pas vocation tre diffus en masse ou rutilis par des programmeurs dun autre pays. Il est ainsi dommage de devoir traverser toutes ces tapes pour sinitier la programmation ! Cest ce public que Linotte veut aider. Il est destin aux personnes curieuses qui veulent apprendre interagir avec un ordinateur laide de phrase simple. Il permet dacqurir les bases et les premiers rflexes dun programmeur, et ensuite libre lui s'voluer vers des langages plus puissants ! Tu penses donc tu programmes ! Linotte ne prtend pas remplacer le langage Basic ou le Logo : ils sont riches en fonctionnalits mais ils restent complexes pour un nophyte. Linotte veut aller plus loin dans la trivialit : la programmation doit tre aussi simple que dcrire une phrase en franais ! Cest un langage de programmation littraire : pour programmer, il suffit de savoir crire et de connatre quelques notions de cinma. Ainsi, Linotte peut tre utilis dans le milieu de lducation par le fait qu'il est trs simple apprhender et ne demande aucune notion mathmatique ou d'informatique. Mais derrire cette simplicit, Linotte reste un langage puissant pour celui que veut aller plus loin. Ce programmeur peut commencer en adoptant une logique de programmation imprative ou ensuite voluer vers la programmation fonctionnelle et implmenter des algorithmes rcursifs. Dans le futur, on peut imaginer le langage Linotte traduit dans dautres langues comme lespagnol, langlais ou mme le quechua ! Mais avant den arriver l, le chemin parcourir est encore long pour convaincre une communaut d'informaticiens ladopter puis le traduire

-6-

Dcouvrir la programmation avec le langage Linotte

B.QUEST-CE QUUNE LINOTTE ?


Voici un extrait de la dfinition dune Linotte extrait de Wikipedia : La linotte mlodieuse (Carduelis cannabina) est un petit passereau brun, la poitrine rose de la famille des fringillids. Son gazouillis est agrable et doux, son vol vif et lger.

Image : Wikimedia.org

C.LICENCES
Linterprte Linotte est un logiciel libre. http://www.gnu.org/licenses/gpl.txt Il existe galement une version franaise mais cette traduction nest pas officielle : http://fsffrance.org/gpl/gpl-fr.fr.html Les spcifications sont sous la licence Licence de documentation libre GNU : http://www.fsf.org/licensing/licenses/fdl.html

D.LA MASCOTTE
La communaut libre ralise des miracles : grce au site CrystalXP (http://www.crystalxp.net) et mimipunk (http://mimipunk.deviantart.com), la mascotte a pu natre :

Cette mascotte est sous Licence Creative Commons 2.5 : http://creativecommons.org/licenses/by-nc-sa/2.5/deed.fr

-7-

Dcouvrir la programmation avec le langage Linotte

II.INSTALLER LINOTTE
Avant de continuer ce chapitre, il vous faut installer le logiciel Java fournit par SUN Microsystems. Vous pouvez le trouver sur le site http://www.java.com/fr. Il est important dinstaller une version gale ou suprieur 6.0.

A.TLCHARGEMENT ET INSTALLATION
1.Installation sous Microsoft Windows
Pour ce chapitre, il vous faut : Un fureteur Internet libre : http://www.mozilla.com/ Un dsarchiveur 1 libre: http://www.7-zip.org/ Afin de tlcharger linterprte Linotte laide de votre navigateur Internet, allez sur le site officiel de Linotte : http://langagelinotte.free.fr/ Une page Internet se prsentant comme limage ci-dessous va safficher. Pour tlcharger, il faut cliquer sur le lien vous pouvez tlcharger la dernire version stable comme indiqu en jaune sur limage Figure 1.

Figure 1

Votre navigateur va enregistrer sur votre disque dur un fichier dont le nom ressemble Linotte_x_x_x.zip. Ce fichier est une archive et contient lexcutable pour linterprte. Si vous avez install 7-zip, double-cliquez sur le fichier afin de lancer le dsarchiveur et choisissez de lextraire dans un rpertoire. Voici un exemple de rpertoire qui peut convenir : C:\Linotte Linstallation est termine !

Ce mot nexiste pas dans la langue franaise

-8-

Dcouvrir la programmation avec le langage Linotte

2.Installation sous Linux


Pour tlcharger linterprte Linotte laide de votre navigateur Internet, il vous faut aller sur le site officiel de Linotte : http://langagelinotte.free.fr/ Une page Internet se prsentant comme limage si dessous va safficher. Pour tlcharger, il faut cliquer sur le lien vous pouvez tlcharger la dernire version stable comme indiqu en jaune sur limage Figure 1.

Figure 2 Votre navigateur va enregistrer sur votre disque dur un fichier dont le nom ressemble Linotte_x_x_x.zip. Ce fichier est une archive et contient lexcutable pour linterprte. Toutes les distributions Linux savent dcompresser les fichiers archives. Vous pouvez utiliser notre environnement Gnome ou KDE pour extraire les fichiers. Sinon, si vous tre sur une console, un unzip Linotte_x_x_x.zip va extraire les fichiers dans le rpertoire Linotte_x_x_x. Linstallation est termine !

-9-

Dcouvrir la programmation avec le langage Linotte

3.Installation sous MacOSX


Pour ce chapitre, il vous faut : Un dsarchiveur : StuffIt Expander http://www.apple.com/downloads/macosx/system_disk_utilities/stuffitexpander.html Il vous faut tlcharger linterprte Linotte laide de votre navigateur Internet, pour cela, il faut aller sur le site officiel de Linotte : http://langagelinotte.free.fr/ Une page Internet se prsentant comme limage si dessous va safficher. Pour tlcharger, il faut cliquer sur le lien vous pouvez tlcharger la dernire version stable comme indiqu en jaune sur limage Figure 1.

Figure 3

Votre navigateur va enregistrer sur votre disque dur un fichier dont le nom ressemble Linotte_x_x_x.zip. Ce fichier est une archive et contient lexcutable pour linterprte. Pour dcompresser les fichiers, il suffit de double-cliquer sur le fichier dans le Finder. Linstallation est termine !

- 10 -

Dcouvrir la programmation avec le langage Linotte

B.LAPPLICATION : L'ATELIER LINOTTE


L'atelier Linotte est un environnement qui permet de programmer en Linotte. Grce lui, vous allez tester les exemples du document et par la suite, il sera votre support pour exprimer votre crativit ! L'interface de l'atelier est conue pour tre trs simple. Elle est divise en deux parties. La partie haute est le cahier. C'est ici que vous pouvez crire et modifier vos programmes 2. La partie du bas est le tableau, il affiche le rsultat du livre ou alors les messages d'erreurs. Les deux boutons du bas permettent de lancer la lecture d'un livre ou alors demander son arrt. L'environnement Linotte, c'est dire l'interprte, est actif tant que l'atelier est ouvert. Toutes les variables3 cres restent en mmoire jusqu' sa fermeture. La toile sera explique dans le chapitre sur le graphisme, vous pouvez en attentant la rduire dans la barre de tche de votre systme afin qu'elle ne vous gne pas.

En fait, dans la suite de livre, je ne parlerai plus de programme mais de livre. En programmation Linotte, on n'crit pas un programme : on crit un livre Linotte. 3 Mme remarque que la prcdente, les variables n'existent pas en Linotte, ce sont des acteurs.

- 11 -

Dcouvrir la programmation avec le langage Linotte

1.Sous Microsoft Windows


Le lancement de Linotte se fait en cliquant sur l'icne Linotte.exe prsent dans le rpertoire d'installation.

2.Sous Linux et MacOS


Dans le rpertoire d'installation de Linotte, il faut cliquer sur le fichier Linotte.sh

Lapplet Tte2Linotte sous Firefox

- 12 -

Dcouvrir la programmation avec le langage Linotte

C.LAPPLET PETITETTEDELINOTTE DANS UN NAVIGATEUR INTERNET


On peut intgrer une applet en forme de bouton pour lire un livre Linotte dans une page HTML. Pour utiliser cette applet, les seules contraintes sont : d'crire le livre que vous voulez intgrer sur votre page, puis, d'ajouter le code HTML suivant dans votre page :
<applet code="org.linotte.applet.PetiteTete2Linotte.class" width="110" height="110"> <param name="cache_archive" value="http://langagelinotte.free.fr/linotte/linotte_last/jinotte.zip "> <!-- valeur modifier : --> <param name="url" value="http://mon.site.a.moi.fr/mon_livre.liv"> </applet>

Enfin, il faut modifier le paramtre 'url' afin qu'il pointe vers votre livre. Voici le rsultat :

La PetiteTte2Linotte sur une page internet

D.JINOTTE
Jinotte est l'interface qui permet d'utiliser Linotte en ligne de commande. Voici les options disponibles : Usage :
jinotte [option]* [chemin_vers_nom_livre.liv]+

- 13 -

Dcouvrir la programmation avec le langage Linotte

Les options disponibles :


-v : -b : -h : -t : -x : -s :

Affiche la version de l'interprte Linotte Affiche des informations en plus Affiche les options disponibles Affiche le temps d'excution pour chaque livre Autorise l'utilisation de la toile en mode console Affiche un icne dans le systray au lieu de la barre des tches.

Exemples :

jinotte -bt livre\bienvenue.liv jinotte -bt livre\bienvenue.liv livre\helloword.liv

Ligne de commande sous Windows

1.Sous Microsoft Windows


Ouvrir une session DOS, allez dans le rpertoire de Linotte et ensuite taper la ligne suivante :
jinotte -bt livre\bienvenue.liv

2.Sous Linux
Ouvrir un shell, allez dans le rpertoire de Linotte et ensuite taper la ligne suivante :
java -cp jinotte.jar -b livre\bienvenue.liv

3.Sous MacOS x
Ouvrir un shell, allez dans le rpertoire de Linotte et ensuite taper la ligne suivante :
java -cp jinotte.jar -b livre\bienvenue.liv

- 14 -

Dcouvrir la programmation avec le langage Linotte

III.LES NOTIONS DE BASE


Une linotte est installe dans votre ordinateur et le sifflement de votre tour en est devenu mlodieux... il est temps de passer l'tape suprieur : comprendre les bases du langage !

A.LE LIVRE
Linotte fonctionne avec un interprte. Un interprte est le programme qui va recevoir des ordres pour les excuter un un et il ne s'arrtera que pour les cas suivants : s'il rencontre la fin de la liste des ordres, si on lui demande, ou s'il rencontre une erreur. Dans le cas d'une erreur, il affiche la cause afin que vous puissiez la corriger. On peut comparer l'interprte un ralisateur de cinma. Afin quil puisse raliser son film, il lui faut un scnario, une liste d'acteurs, les rles des acteurs et les actions que devrons accomplir les acteurs. Si le film est long, il peut le partitionner en plusieurs scnes. L'interprte Linotte a besoin de ces mmes informations mais la diffrence qu'elles sont regroupes dans un livre que l'on peut associer au scnario. Les actions sont dtailles non pas dans des scnes mais dans des paragraphes. Voici un exemple simple d'un livre qui affiche Bonjour ! sur l'cran :
Livre : mon premier exemple Paragraphe : afficher le message Les rles : Message est un texte valant "Bonjour !" Les actions : Tu affiches le message Tu termines

Pour le ralisateur, nous aurions un scnario avec une scne et un acteur. Pour l'interprte Linotte, il y a un paragraphe, un acteur avec le rle de texte. Il a galement deux actions effectuer : afficher l'acteur message, terminer la lecture du livre. Vous pouvez tester cet exemple en effectuant un copier/coller de ce livre dans l'Atelier Linotte et ensuite, vous appuyez sur Lire pour voir le rsultat. Latelier ne peut livre quun livre la fois. Si vous avez un livre dans le cahier, vous devez supprimer lancien et le remplacer par le nouveau. On peut remarquer qu'il est important de dfinir les acteurs que l'on va utiliser avant de lister les actions. Si vous ne respectez pas cet ordre, l'interprte vous affichera une erreur. Maintenant que la notion de livre a t introduite, approfondissons la notion de paragraphe. Scne suivante !!

- 15 -

Dcouvrir la programmation avec le langage Linotte

B.LES PARAGRAPHES
Revenons notre ralisateur. Il dcide de filmer son film dans trois scnes diffrentes : une dans une cuisine, une dans un couloir et une dans la rue. Deux acteurs A et B vont intervenir. Voici un scnario simple :
Scnario : la balade Scne 1 : le couloir Les acteurs : Lacteur A Les actions : A va dans la cuisine Scne 2 : la cuisine Les acteurs : Lacteur A Lacteur B Les actions : A parle B B va dans la rue Scne 3 : la rue Les acteurs : Lacteur B Les actions : B part

A partir de cet exemple, on voit bien quoi peut servir un paragraphe : en linotte, il a la mme fonction que la scne. On peut aller dans un paragraphe, puis dans un autre et mme revenir dans un que lon a dj parcouru ! Voici un autre exemple mais en Linotte :
Livre : capitale de la France Paragraphe : question les rles : question est un texte valant "Quelle est la capitale de la France ?" capitale est un texte vide rponse est un texte valant "Paris" les actions : tu affiches la question tu demandes la capitale si capitale est gale la rponse alors tu vas vers la rponse bonne tu vas vers la rponse fausse Paragraphe : rponse bonne les actions : tu affiches "Bravo, tu es trop fort !" tu joues le "Do" tu termines Paragraphe : rponse fausse les rles : libelle est un texte valant "Faux ! tu peux recommencer !" les actions : tu affiches le libelle tu vas vers la question

Ce livre demande lutilisateur la capitale de la France dans le paragraphe question. Ensuite, on vrifie la rponse : si elle est fausse on va vers le paragraphe rponse fausse, mais si la rponse est bonne on va vers rponse bonne : ce paragraphe termine le livre. Par contre, le paragraphe rponse fausse affiche un message puis renvoie vers le paragraphe question que lon a dj parcouru! On a fait une boucle qui peut devenir infinie si lutilisateur ne connat pas la capitale de la France ! On voit bien travers cet exemple quen Linotte on peut simplement passer dun paragraphe un autre. Toutes les fins de paragraphe doivent terminer soit par le verbe aller ou le verbe terminer.

- 16 -

Dcouvrir la programmation avec le langage Linotte

Nous verrons plus loin que l'on peut galement utiliser le verbe Parcourir pour aller dans un autre paragraphe. La diffrence avec le verbe Aller est que le verbe Parcourir enregistre le point de dpart et il est possible de revenir vers ce point de dpart en utilisant le verbe Revenir.

C.LES ACTEURS ET LES RLES


1. Les acteurs
Votre ordinateur contient une mmoire o lon peut stocker des donnes que lon veut pouvoir lire, modifier ou supprimer. Les acteurs sont linterface qui va vous permettre de manipuler simplement cette mmoire car ils sont les messagers qui contiennent linformation. Au dbut du paragraphe, vous dfinissez les acteurs que vous allez utiliser : linterprte Linotte va rserver un espace dans la mmoire pour enregistrer les acteurs. Pour un acteur, il va stocker linformation qui lui est associe mais galement le nom de lacteurcar il ne faut pas oublier de nommer vos acteurs. Cest lidentifiant qui permet de le retrouver ! Reprenons un exemple dj utilis :
Livre : mon premier exemple Paragraphe : afficher le message Les rles : Message est un texte valant "Bonjour !" Les actions : Tu affiches le message Tu termines

La dclaration des acteurs est faite dans la section les rles. Nous verrons plus tard la dfinition dun rle. La ligne Message est un texte valant "Bonjour !" permet dindiquer l'interprte que linformation qui va tre stocke dans lacteur Message est : bonjour ! . Pendant toute la lecture de ce paragraphe, lacteur sera disponible : il suffit par exemple dutiliser le verbe afficher pour extraire la valeur de la mmoire et lafficher sur lcran : Tu affiches le message. Si vous changez de paragraphe ou arrtez le livre, l'interprte ne supprime pas lacteur de la mmoire4. Essayez lexemple prcdent puis essayez le suivant :
Livre : mon deuxime exemple Paragraphe : afficher le message Les rles : Message est un texte Les actions : Tu affiches le message Tu termines

Ce livre affiche toujours le message bonjour ! ! On voit bien que lors de la dclaration de lacteur, linterprte a t chercher celui dj prsent dans la mmoire. Il existe 3 faons de crer un acteur : 1. On affecte une valeur : Le message est un texte valant "Bonjour!"
4

L'interprte ne doit pas tre relanc entre les deux exemples bien entendu ! Vous ne pouvez pas tester cet exemple avec Jinotte.

- 17 -

Dcouvrir la programmation avec le langage Linotte

2. On utilise la valeur prcdente : Le message est un texte 3. On affecte une valeur vierge : Le message est un texte vide Il est obligatoire de dclarer les acteurs au dbut du paragraphe : comme dans une scne, le scnariste a besoin de connatre les acteurs disponibles. Pour l'interprte, mme si lacteur existe en mmoire, le dfinir au niveau du paragraphe permet de lui garantir son existence.

2.Les rles : texte et nombre


Linotte est un langage typ. Si initialement, on demande l'interprte de ne stocker que des valeurs de la forme dune chane de caractres un acteur, alors celui-ci ne pourra intervenir que dans les actions ncessitant une chane. Chaque acteur a donc un rle. On peut encore faire lanalogie avec le cinma : un acteur a un rle dans un film et il ne le changera jamais mme si au cinma, tout est possible ! Les rles les plus simples en Linotte sont : texte et nombre. Il en existe des plus complexes : les casiers et les espces mais nous les verrons plus tard. Nous avons dj vu le rle texte : Message est un texte valant Dcouvrons maintenant le rle nombre dans un exemple :
"Bonjour !".

Livre : mon troisime exemple Paragraphe : afficher le message Les rles : Question est un texte valant "Quel est ton ge ?" Message est un texte valant "Vous paraissez nettement mois que vos " ge est un nombre vide Les actions : Tu affiches la question Tu demandes l'ge Tu ajoutes l'ge dans le message Tu affiches le message Tu termines

Vous remarquerez que lutilisation des majuscules et des minuscules na pas dincidence sur le comportement de l'interprte. Par contre, les accents sont importants, ils doivent tre respects sinon l'interprte ne reconnatra pas le mot. Cet exemple montre que l'interprte peut dans certain cas transformer une valeur dun acteur nombre en texte (Tu ajoutes l ge dans le message). Linverse nexiste pas. Il est galement possible d'crire : Tu affiches message + ge Voici un autre exemple mais gnrant une erreur syntaxique :
Livre : Exemple qui ne fonctionne pas ! Paragraphe : afficher le message Les rles : Valeur est un texte valant "Bonjour !" Les actions : valeur vaut sin valeur Tu termines

On indique en Linotte que valeur a un rle texte mais on veut calculer son sinus. Linterprte au moment de lire le livre va sapercevoir quil y a une erreur de syntaxe et va gnrer une erreur : La syntaxe du verbe 'calculer le sinus' n'est pas correcte : valeur. Ainsi, l'interprte, sans connatre la valeur dun acteur peut en contrlant son rle vous viter une erreur ! Voici le livre corrig :

- 18 -

Dcouvrir la programmation avec le langage Linotte

Livre : Exemple qui fonctionne! Paragraphe : afficher le message Les rles : Valeur est un nombre valant 45.3 Les actions : valeur vaut sin valeur Tu termines

En linotte, la taille des chanes et des nombres est illimite. La seule limite est la mmoire de votre ordinateur ! La valeur d'un rle nombre en linotte est un nombre dcimal. Attention utiliser le point et non la virgule comme sparateur dcimal.

- 19 -

Dcouvrir la programmation avec le langage Linotte

D.IMPRATIF OU PRSENT ?
Il est possible d'utiliser l'impratif au lien du prsent lors de la conjugaison d'un verbe. Ainsi, au lieu d'crire : Tu affiches le document, on peut crire : Affiche le document. A vous de choisir la forme qui vous convient le mieux ! Exemple :
livre : dmonstration paragraphe : question les rles : capitale est un texte vide rponse est un texte valant "Paris" les actions : Affiche "Quelle est la capitale de la France ?" Demande la capitale Si la capitale est gale la rponse alors va vers la bonne rponse Va vers la rponse fausse paragraphe : bonne rponse les actions : Joue le "Fa" "Bravo !" ! Termine paragraphe : rponse fausse les actions : "Faux !" ! Va vers la question

E.LES ARTICLES
Les articles sont une curiosit du langage Linotte car leur seule utilit est damliorer la lisibilit dune livre par un tre humain. Ainsi il est plus agrable de lire :
tu affiche le message

que

tu affiche message

Voici la liste des articles reconnus par le langage Linotte :

le, la, l', les, des, du, un, une, mon, ma, ton, ta, tes

- 20 -

Dcouvrir la programmation avec le langage Linotte

F.LES ACTIONS
Nous avons toutes les bases pour crire enfin de vrais programmes, maintenant, passons laction ! Voici un rsum de ce que nous avons dj appris sur la structure dun livre Linotte:
Livre : [le nom du livre] Paragraphe : [le nombre du paragraphe] {Les} rles : {article} Acteur est un nombre {article} Acteur est un nombre vide {article} Acteur est un nombre valant [valeur] {article} Acteur est un texte {article} Acteur est un texte vide {article} Acteur est un texte valant [valeur] {Les} actions : Tu [verbe] {article} [acteur] Tu [verbe]

[xxx] : obligatoire; {xxx} : facultatif crire une action dans un livre : cest donner un ordre l'interprte ; chaque phrase commence par tu et le verbe est au prsent de lindicatif. On peut crire autant daction les une la suite des autres mais noubliez pas que partitionner son livre en paragraphe amliore sa lisibilit ! Voici un exemple un peu plus long :
Livre : Pythagore Paragraphe : Pythagore Les rles : AB est un nombre vide BC est un nombre vide AC est un nombre vide Rponse est un texte valant "Le carr de l'hypotnuse vaut : " Les actions : Tu demandes AB Tu demandes BC AB vaut carr AB BC vaut carr BC Tu ajoutes AB dans AC Tu ajoutes BC dans AC Tu ajoutes AC dans la rponse Tu affiches la rponse Tu termines

Ce nest pas bien dur dcrire un livre Linotte ? Convaincu ? Alors, bravo ! Vous tes enfin prt pour crire vous mme vos propres programmes informatiques ! Il faut respecter la mise en forme du texte : une commande doit tre sur une ligne. Pour des raisons de lisibilit, on peut dcouper cette ligne en utilisant des points de suspension :
Livre : Bienvenue Paragraphe : Ol ! Rles : Prnom est un texte Actions : Efface le tableau Questionne le prnom sur ... "Bonjour ! Quel est ton prnom ?"

- 21 -

Dcouvrir la programmation avec le langage Linotte

Affiche "Bravo " + prnom + ... ", tu viens de lire ton premier livre Linotte !" Termine

- 22 -

Dcouvrir la programmation avec le langage Linotte

G.LES ACTEURS ANONYMES


Les acteurs anonymes permettent de simplifier lcriture dun livre. Leur existence est phmre car ils nexistent quau moment de lexcution dune action. Voici un exemple sans acteur anonyme :
Livre : Le pome Paragraphe : Dame souris trotte Les rles : Texte 1 est un texte valant "Dame souris trotte, " Texte 2 est un texte valant "Noire dans le gris du soir, " Texte 3 est un texte valant "Dame souris trotte, " Texte 4 est un texte valant "Grise dans le noir. " Texte 5 est un texte valant "On sonne la cloche : " Texte 6 est un texte valant "Dormez, les bons prisonniers, " Texte 7 est un texte valant "On sonne la cloche : " Texte 8 est un texte valant "Faut que vous dormiez. " Texte 9 est un texte valant "Un nuage passe, " Texte 10 est un texte valant "Il fait noir comme dans un four, " Texte 11 est un texte valant "Un nuage passe. " Texte 12 est un texte valant "Tiens le petit jour. " Texte 13 est un texte valant "Dame souris trotte, " Texte 14 est un texte valant "Rose dans les rayons bleus, " Texte 15 est un texte valant "Dame souris trotte, " Texte 16 est un texte valant "Debout, paresseux. " Texte 17 est un texte valant "Dame souris de Paul Verlaine. " Les actions : Tu affiches texte 1 Tu affiches texte 2 Tu affiches texte 3 Tu affiches texte 4 Tu affiches texte 5 Tu affiches texte 6 Tu affiches texte 7 Tu affiches texte 8 Tu affiches texte 9 Tu affiches texte 10 Tu affiches texte 11 Tu affiches texte 12 Tu affiches texte 13 Tu affiches texte 14 Tu affiches texte 15 Tu affiches texte 16 Tu affiches texte 17 Tu termines

Pour afficher ce pome, on constate au premier coup d'il que lon perd beaucoup de temps dans lcriture du livre : pour chaque ligne du pome, il faut crer un acteur (que lon va lire quune seule fois) et aprs crire une action pour afficher cet acteur ! Lutilisation des acteurs anonymes va nous permettre de nous affranchir de la cration dacteur dans la section rle :
Livre : Le pome Paragraphe : Dame souris trotte Les rles : Souris trotte est un texte valant "Dame souris trotte, " Les actions : Tu affiches la souris trotte Tu affiches "Noire dans le gris du soir, " Tu affiches la souris trotte Tu affiches "Grise dans le noir. " Tu affiches "On sonne la cloche : " Tu affiches "Dormez, les bons prisonniers, " Tu affiches "On sonne la cloche : " Tu affiches "Faut que vous dormiez. "

- 23 -

Dcouvrir la programmation avec le langage Linotte

Tu Tu Tu Tu Tu Tu Tu Tu Tu Tu

affiches affiches affiches affiches affiches affiches affiches affiches affiches termines

"Un nuage passe, " "Il fait noir comme dans un four, " "Un nuage passe. " "Tiens le petit jour. " la souris trotte "Rose dans les rayons bleus, " la souris trotte "Debout, paresseux. " "Dame souris de Paul Verlaine. "

Cest beaucoup plus simple et clair. Vous devez utiliser les guillemets pour indiquer l'interprte que lacteur a un rle texte. Pour crire un acteur anonyme qui a un rle nombre, vous devez crire le nombre directement dans la phrase sans les guillemets :
Livre : puissance Paragraphe : dmonstration Les rles : Valeur est un nombre valant 5 Les actions : valeur vaut valeur puiss 6 Tu affiches la valeur Tu termines

H.LES CASIERS
Nous avons vu dans les prcdents chapitres les rles textes et nombres, on va introduire maintenant le casier. Le casier est un rle qui permet de construire des listes d'acteurs :
langage est un casier de texte valant "java", "c++", "logo", "linotte"

On peut construire galement une liste de nombre :


notes est un casier de nombre valant 15, 18, 12

Nous verrons dans le chapitre sur les boucles le moyen de parcourir un casier.

I.LES ACTEURS PARTICULIERS


Vous avez votre disposition des acteurs qui proposent des valeurs dynamiques ou statiques que vous ne pouvez que lire. Cest l'interprte qui se charge daffecter une valeur ces acteurs: on les appelle les acteurs particuliers. Voici la liste des acteurs particuliers reconnus par Linotte : anne : contient l'anne en cours mois : contient le numro du mois en cours jour : contient le numro du jour en cours heure : contient l'heure en cours (sur 24 heures) minute : contient la minute en cours seconde : contient la seconde en cours version : contient la version de l'interprte Linotte que vous utilisez joker : voir le chapitre sur les boucles - 24 -

Dcouvrir la programmation avec le langage Linotte

auteur : contient l'auteur de l'interprte Linotte spcification : contient la version des spcifications de l'interprte Linotte polices : casier qui contient la liste des polices disponibles sur le systme. sourisx : position horizontale de la souris sourisy : position verticale de la souris touche : tampon des touches. cration : contient le dernier acteur cr avec le verbe crer ecranv : taille verticale de votre cran ecranh : taille horizontale de votre cran couleurs : contient la liste des couleurs reconnues par Linotte livre : nom du livre en cours d'utilisation Cet exemple affiche l'heure toutes les secondes en utilisant les acteurs particuliers :
Livre : l'horloge Paragraphe : l'affichage Les rles : horloge est un texte vide Les actions : Tu concatnes "Il est " , l'heure , " heures, " dans l'horloge Tu concatnes horloge , la minute , " minutes et " dans l'horloge Tu concatnes horloge , la seconde , " secondes" dans l'horloge Tu affiches l'horloge Tu attends 1 seconde Tu vas vers l'affichage

J.LES GRANDS RLES


Les grands permettent d'amliorer la lisibilit d'un livre car dfinir un grand rle c'est dfinir un acteur visible dans tout le livre, ainsi, il ne sera plus utile de le dclarer devant chaque paragraphe. Les grands rles se dfinissent ds le dbut d'un livre :
Livre : mon livre Les grands rles : ....

La syntaxe est la mme que pour la section les rles. Voici un exemple :
Livre : nombre Fibonacci Les grands rles : Entier1 est un nombre valant 1 Entier2 est un nombre vide Paragraphe : on demande un nombre les rles : Boucle est un nombre les actions : "Nombre calculer ?" ! Boucle ? De 2 boucle , tu parcours la somme Tu affiches "Le rsultat est :" Tu affiches l'entier1 Tu termines Paragraphe : somme les rles : Entier est un nombre vide les actions :

- 25 -

Dcouvrir la programmation avec le langage Linotte

Tu Tu Tu Tu Tu

ajoutes entier1 dans entier ajoutes entier2 dans entier copies entier1 dans entier2 copies entier dans entier1 reviens

Les grands rles vont l'encontre de la philosophie du langage car ils n'aident pas la lecture d'un livre pour un programmeur : pour connatre la valeur ou le rle d'un acteur, il doit revenir au dbut du livre pour dcouvrir ses caractristiques. Mme s'il n'est pas recommand d'utiliser les grands rles pour les dbutants, ils offrent un avantage important. Le fait de devoir dfinir un acteur une fois pour toute dans un livre permet d'optimiser la vitesse d'excution du livre : l'interprte perd moins de temps la cration (instanciation) des acteurs en mmoire.

K.LES COMMENTAIRES
Les commentaires apportent deux fonctionnalits. La premire est comme le mot le sousentend est de pouvoir annoter son livre. On peut ainsi prciser l'action que l'on veut faire avant d'crire un livre, indiquer une date, un auteur, etc. :
Livre : Exemple 4 ("Voici un livre juste pour vous") ("ce livre a t crit en dcembre 2006") Paragraphe : Les actions : ("Je vais afficher le texte bonjour l'aide d'un acteur anonyme") Tu affiches "Bonjour" ("Je quitte le programme") Tu termines

On peut galement utiliser les commentaires pour dsactiver temporairement une partie d'un livre :
Livre : les commentaires Paragraphe : la dmonstration Les actions : (" Tu affiches "Bonsoir !" Tu affiches "Il est tard, je vais me coucher !" ") Tu affiches "Bonjour" Tu affiches "Une bonne journe s'annonce !" Tu termines

Si vous essayez ce livre, il affichera sur le tableau :


>Bonjour >Une bonne journe s'annonce !

- 26 -

Dcouvrir la programmation avec le langage Linotte

L.LES CONDITIONS
Maintenant, nous allons rendre notre livre plus dynamique ! Suivant les valeurs que peuvent prendre les acteurs, on peut ragir diffremment. Nous avons dj vu un exemple o on demande un utilisateur le nom dune ville. Suivant la rponse de l'utilisateur, on va analyser et afficher un message adquat. Pour cela, on utilise les conditions. Les conditions sont des phrases qui commencent par si, sont suivi dun test puis d'une action. Voici les conditions que vous pouvez utiliser en Linotte : si {article} [acteur] est vide alors [action] si {article} [acteur] est non vide alors [action] si {article} [acteur] est plus grand que {article} [acteur] alors [action] si {article} [acteur] est plus petit que {article} [acteur] alors [action] si {article} [acteur] est plus grand ou gal {article} [acteur] alors [action] si {article} [acteur] est plus petit ou gal {article} [acteur] alors [action] si {article} [acteur] est moins grand que {article} [acteur] alors [action] si {article} [acteur] est moins petit que {article} [acteur] alors [action] si {article} [acteur] est gal {article} [acteur] alors [action] si {article} [acteur] est diffrent de {article} [acteur] alors [action] si {article} [acteur] contient {article} [acteur] alors [action] si {article} [espce graphique] est en collision avec {article} [espce graphique] alors [action]

On peut utiliser indiffremment grand/grande, petit/petite, diffrent/diffrente Un exemple utilisant les conditions :
Livre : teste anne linotte Paragraphe : question les rles : question est un texte valant "En quelle anne le langage Linotte a t invent ? " anne est un nombre vide les actions : tu affiches la question tu demandes l'anne tu vas vers vrification Paragraphe : vrification les rles : anne est un nombre rponse est un nombre valant 2005 les actions : si anne est gale a rponse alors tu vas vers rponse bonne si anne est plus grande que rponse alors tu vas vers avant si anne est moins grande que rponse alors tu vas vers aprs Paragraphe : rponse bonne les rles : libelle est un texte valant "Bravo, tu es trop fort ! " les actions : tu affiches le libelle tu termines

Paragraphe : avant

- 27 -

Dcouvrir la programmation avec le langage Linotte

les rles : libelle est un texte valant "Non non... c'est avant ! " les actions : tu affiches le libelle tu vas vers la question Paragraphe : aprs les rles : libelle est un texte valant "Il est plus jeune ! " les actions : tu affiches le libelle tu vas vers la question

On peut utiliser la conjonction sinon en dbut d' une phrase :


Si [condition] alors [actionA] Sinon, [actionB]

ou alors :
Si [condition1] alors [actionA] Sinon, si [condition2] alors [actionB]

Plusieurs sinon peuvent utiliser les un la suite des autres :


Si [condition1] alors [actionA] Sinon, si [condition2] alors [actionB] Sinon, si [condition3] alors [actionC]

...

Sinon, [actionZ]

Exemple :
si anne est gale a rponse alors tu vas vers rponse bonne sinon, si anne est plus grande que rponse alors tu vas vers avant sinon, tu vas vers aprs

Il possible d'utiliser les sous-paragraphes avec les conditions (les sous-paragraphes vous seront expliqus un peu plus loin ). Voici juste un exemple mais ne tardez pas dessus ! Vous avez d'autres choses plus importantes apprendre avant !
Livre : condition Paragraphe : sous-paragraphe Rles : a est un nombre valant 20 b est un nombre valant 10 Actions : Si a est plus grand que b alors lis Affiche "a est plus grand !" Affiche "Voici la valeur de a : " + a Ferme Sinon, lis Affiche "b est plus grand !" Affiche "Voici la valeur de b : " + a Ferme Termine

- 28 -

Dcouvrir la programmation avec le langage Linotte

M.LES BOUCLES ET LE JOKER


1.Pour chaque...
Maintenant, il est temps de s'amuser ! Jusqu' ce chapitre, nous avons vu comment effectuer des actions diffrentes les unes la suite des autres, mais de temps en temps nous avons besoins de rpter un certain nombre fois un mme traitement. Par exemple, on veut afficher trois fois un mme message :
Livre : sans boucle Paragraphe : dmonstration Les actions : Tu affiches "Action excute la folie !" Tu affiches "Action excute la folie !" Tu affiches "Action excute la folie !" Tu termines

Pour simplifier l'criture de ce livre vous pouvez utiliser une boucle :


Pour chaque {article} [acteur] , [action]

Voici le mme exemple mais avec la boucle :


Livre : une boucle Paragraphe : dmonstration Les rles : Compteur est un nombre valant 3 Les actions : Pour chaque compteur , tu affiches "Action excute la folie !" Tu termines

L'interprte va excuter autant de fois l'action afficher que la valeur de la variable compteur. On commence bien s'amuser mais on en veut encore plus ! Maintenant, nous allons apprendre compter avec Linotte toujours en utilisant une boucle. Pour cela, nous allons utiliser un acteur particulier : le joker. Lors d'une boucle, l'interprte va affecter au joker une valeur correspondante au numro de passage dans la boucle. Cette valeur va dpendre du rle de l'acteur. Dans notre exemple, compteur a un rle nombre : l'interprte, au premier passage va affecter la valeur 0 au joker, au deuxime, la valeur 1, et ainsi de suite jusqu' la fin de la boucle. Voici un exemple avec le joker :
Livre : une boucle Paragraphe : dmonstration Les rles : Compteur est un nombre valant 3 Les actions : Pour chaque compteur , tu affiches le joker Tu termines

Le tableau de l'Atelier affiche :


>0 >1 >2

Le joker est un acteur particulier. Vous ne pouvez pas le modifier et son rle va dpendre de lacteur que vous utilisez dans la boucle. - 29 -

Dcouvrir la programmation avec le langage Linotte

Justement, essayons ce mme exemple mais avec un acteur dont le rle est texte :
Livre : une boucle avec un texte Paragraphe : dmonstration Les rles : Compteur est un texte valant "Bonjour !" Les actions : Pour chaque compteur , tu affiches le joker Tu termines

Le rsultat de la lecture donne :


< < < < < < < B o n j o u r

Le rle du joker est devenu texte et l'interprte a dcompos les lettres de l'acteur compteur. Maintenant, nous allons parcourir un casier avec une boucle :
Livre : une boucle avec un casier Paragraphe : dmonstration Les rles : Compteur est un casier de texte valant "Bonjour ?", "vous", "allez", "bien ?" Les actions : Pour chaque compteur , tu affiches le joker Tu termines

Vous obtiendrez sur le tableau de lAtelier :


< < < < Bonjour ? vous allez bien ?

Mais allons encore plus loin ! Lutilisation d'une boucle offre un mcanisme supplmentaire : la possibilit daller dans un paragraphe pour faire notre traitement et de revenir au niveau de la boucle :
Livre : une boucle avec un casier Paragraphe : dmonstration Les rles : Compteur est un casier de texte valant Bonjour ?, vous, allez, bien ? Les actions : Pour chaque compteur , tu parcours afficher Tu termines Paragraphe : pour afficher Les actions : Tu affiches le joker Tu reviens

On obtient le mme affichage :


< < < < Bonjour ? vous allez bien ?

Lors de lutilisation du verbe aller dans une boucle, l'interprte va garder en mmoire le lieu de lappel sur une pile. Ds quil rencontre le verbe revenir, il va rcuprer sur la pile le dernier lieu dappel enregistr pour excuter laction qui suit immdiatement la boucle.

- 30 -

Dcouvrir la programmation avec le langage Linotte

2.De... A...
Voici une autre boucle mais qui ne fonctionne qu'avec des nombres :
De A B, tu affiches le joker

Si A est infrieur B, elle s'arrte ds que A est plus grand que B. Le fonctionnement du joker est identique la boucle Pour chaque. Voici un exemple :
Livre : boucle Paragraphe : premier Les rles : valeur est un nombre valant 5 Les actions : De 1 la valeur, tu affiches le joker Tu termines

On obtient la lecture de ce livre :


< < < < < 1 2 3 4 5

Par contre, Si A est suprieur B, alors, la valeur du joker va tre dcroissante et s'arrtera quand B sera plus grand que A :
Livre : boucle inverse Paragraphe : premier Les rles : valeur est un nombre valant 5 Les actions : De la valeur 1, tu affiches le joker Tu termines

On obtient cette fois-ci dans le tableau de l'atelier :


< < < < < 5 4 3 2 1

- 31 -

Dcouvrir la programmation avec le langage Linotte

3. Pour de
Si on prfre choisir le nom de l'acteur utilis dans la boucle, on utilisera l'instruction Pour qui est l'quivalent de la boucle FOR classique :
Livre : boucle classique Paragraphe : premier Les rles : i est un nombre Les actions : Pour i de 1 5, tu affiches i Tu termines

Ce livre affiche nouveau les nombres de 1 5, le rle du joker tant ici rempli par l'acteur i. Un intrt de l'instruction Pour est qu'elle permet de fixer un pas diffrent de 1, autrement dit de faire en sorte que l'acteur augmente d'une autre quantit que 1 chaque passage dans la boucle. Voici un premier exemple :
Livre : nombres impairs Paragraphe : premier Les rles : i est un nombre Les actions : Pour i de 1 9 suivant i+2, tu affiches i Tu termines

L'instruction suivant i+2 signifie ici que l'acteur i augmente de 2 en 2. Ainsi, on obtient la lecture de ce livre :
< < < < < 1 3 5 7 9

Notons que le pas peut lui-mme tre un acteur, ce qui permet d'obtenir une boucle avec un pas variable. Voici un exemple utilisant les sous-paragraphes (qui seront dvelopps plus loin) :
Livre : nombres triangulaires Paragraphe : premier Les rles : i est un nombre pas est un nombre valant 1 Les actions : Pour i de 1 20 suivant i+pas, lis Tu affiches i pas vaut pas+1 ferme Tu termines

Prcisons que suivant la structure en sous-paragraphes, les instructions rptes au cours de la boucle sont celles qui sont contenues entre les verbes lis et ferme. De la sorte, le pas de l'acteur i vaut successivement 1, 2, 3, etc, autrement dit i augmente successivement de 1, puis de 2, puis de 3, etc, et s'arrte au moment o il va dpasser 20. Ce qui donne donc :
< < < < < 1 3 6 10 15

- 32 -

Dcouvrir la programmation avec le langage Linotte

4.Tant que....
Cette boucle ne s'arrte que si une condition est vrifie. La syntaxe est :
Tant que [condition] , [action]

Voici un exemple :
Livre : Capitale de la France Paragraphe : question les rles : capitale est un texte vide les actions : tu affiches "Quelle est la capitale de la France ?" tant que capitale est diffrent de "Paris", tu demandes la capitale tu affiches "Bravo, tu es trop fort !" tu termines

5.Supprimer un acteur d'un casier


Lors du parcours d'un casier avec une boucle, on peut supprimer un lment du casier en utilisant le verbe ter de et l'acteur particulier joker.
Livre : Suppression d'un acteur d'un casier Paragraphe : Suppression Les rles : liste est un casier de texte valant "Java", "Linotte" , "dotNet" Les actions : Pour chaque liste , tu parcours l'action Pour chaque liste , tu affiches le joker Tu termines Paragraphe : Action Les rles : liste est un casier de texte Les actions : Si le joker contient "net" alors tu tes le joker de la liste Tu reviens

- 33 -

Dcouvrir la programmation avec le langage Linotte

N. LES SOUFFLEURS
Dans une pice de thtre, un souffleur intervient si un acteur a besoin d'aide. C'est ce mme concept qui existe dans Linotte. On cre au dbut d'un paragraphe un souffleur et on lui indique quel moment il doit "se rveiller" pour aider notre acteur. Pour crer un souffleur, il faut ajouter au dbut d'un paragraphe la section suivante:
Les souffleurs : Ds que mon nombre est gal 0 , tu vas vers la suite

La syntaxe gnrale d'un souffleur :


Ds que [condition] , [action]

Vous pouvez utiliser n'importe quelle action sauf les boucles. Voici un exemple d'un programme qui tournerait l'infini s'il n'y avait de souffleur :
Livre : le souffleur Les grands rles : Nombre est un nombre valant 0 Paragraphe : boucle Les souffleurs : Ds que le nombre est plus grand que 10, tu termines Les actions : nombre vaut nombre + 1 Tu affiches le nombre Tu vas vers la boucle

Il faut ajouter le bloc souffleur aprs celui des acteurs. Les souffleurs se dclenchent lorsque l'action a dj t ralise.

O. LES ESPCES
La notion d'espce dans Linotte va vous permettre de mettre un petit pied dans la "programmation par objet". Souvenez-vous de cette expression pour vos prochaines lectures si vous voulez progresser en programmation, mais partir de maintenant je n'en parlerai plus : en Linotte, on utilisera le terme espce. Une espce est un regroupement partageant des caractristiques communes. Un chat est une espce. Les chats peuvent avoir les caractristiques suivantes : une couleur, un ge, une taille. Par exemple, on peut avoir "Garfield" qui appartient notre espce chat ; Garfield est orange, il a 15 mois et il mesure 40 cm. On pourrait lister une infinit de chats avec des caractristiques diffrentes et mme identiques. Une espce peut reprsenter des concepts plus abstraits comme par exemple : l'espce contact. Un contact est constitu d'un nom, d'un numro de tlphone, d'une adresse et d'un ge. Voici la mme phrase pour dfinir une espce contact mais en langage Linotte :
l' espce contact contient un nom, un numro, une adresse, des annes

Nous avons cr une espce ! Mais il manque quelques informations pour que cette phrase - 34 -

Dcouvrir la programmation avec le langage Linotte

soit valide syntaxiquement pour l'interprte Linotte. Vous n'avez pas oubli que Linotte est un langage fortement typ ? Il faut donc dclarer les rles des acteurs (caractristiques): nom, numro et adresse. Pour dclarer une espce, vous devez ajouter le bloc "les espces :" au dbut du livre :
Livre : l'agenda Les espces : nom est un texte vide numro est un texte vide adresse est un texte valant "adresse inconnue" annes est un nombre l' espce contact contient un nom, un numro, une adresse, des annes

Voici la syntaxe gnrale :


l' espce [nom de l'espce] contient {article} [acteur] , .........

A partir de l, nous avons cr un nouveau rle : l'espce contact. Ajoutons notre livre le paragraphe suivant avec une section les rles :
paragraphe : mes contacts Les rles : Robert est un contact , le nom vaut "Bidoche", le numro vaut "06 00 00 00", il a 40 annes Germaine est un contact, le nom vaut "Dupond" , le numro vaut "06 00 00 01"

Nous avons crs des acteurs avec le rle contact et nous avons affects des valeurs des caractristiques.
[nom de l'acteur] est un [nom de l'espce] , {article} [acteur] vaut [valeur], .........

Il est seulement possible d'utiliser l'expression d'un acteur dont le rle est une espce.

il a <valeur> <acteur>

lors de la cration

Il est maintenant facile d'appeler notre nouveau rle partir d'actions :


Les actions : Tu affiches le nom de Robert Tu affiches l'adresse de Robert Tu affiches le numro de Germaine Tu termines

Il est important de dire l'interprteur ce que l'on veut afficher, par exemple : tu affiches Robert ne peut pas fonctionner car le verbe 'afficher' ne fonctionne qu'avec les rles texte et nombre. En crivant nom de robert, on rcupre la caractristique nom du contact Robert qui a le rle texte ici. Voici l'exemple complet :
Livre : l'agenda Les espces : nom est un texte vide numro est un texte vide adresse est un texte valant "adresse inconnue" annes est un nombre l' espce contact contient un nom, un numro, une adresse, des annes paragraphe : mes contacts Les rles : Robert est un contact,le nom vaut "Dochon",le numro vaut "06 00 00 00",il a 40 an-

- 35 -

Dcouvrir la programmation avec le langage Linotte

nes Germaine est un contact, le nom vaut "Dupond" , le numro vaut "06 00 00 01" Les actions : Tu affiches le nom de Robert Tu affiches l'adresse de Robert Tu affiches le numro de Germaine Tu termines

On obtient dans l'Atelier Linotte :


>bidoche >adresse inconnue >06 00 00 01

Il est possible de dfinir une valeur initiale pour une caractristique de l'espce :
est un texte valant "adresse inconnue"

adresse

Et maintenant, un exemple un peu plus compliqu car nous allons construire un casier de contact :
Livre : l'agenda Les espces : nom est un texte vide numro est un texte valant "numro inconnu" adresse est un texte valant "adresse inconnue" annes est un nombre l' espce contact contient un nom, un numro, une adresse, des annes paragraphe : mes contacts Les rles : Robert est un contact , le nom vaut "Bidoche", le numro vaut "06 00 00 00 01" Germaine est un contact, le nom vaut "Dupond" Agenda est un casier de contact valant Robert, germaine Les actions : Pour chaque agenda, tu parcours vers afficher Tu termines paragraphe : afficher Les actions : Tu affiches le numro de joker Tu reviens

On peut construire un casier de contact et ensuite le parcourir avec une boucle. Essayez de prvoir ce que l'interprte va afficher sur le tableau et ensuite excutez ce livre.

- 36 -

Dcouvrir la programmation avec le langage Linotte

P. LES ACTEURS PERSISTANTS ( OU FICHIERS )


Pour lire ou modifier un fichier dans Linotte, il faut indiquer un acteur la localisation du fichier sur le disque dur avec lequel il va tre li. La valeur de l'acteur n'est plus stocke dans la mmoire de l'ordinateur mais directement sur le disque dur. Les acteurs qui peuvent tre persistants sont ceux qui ont les rles suivants : texte nombre casier de textes casier de nombres espce casier d'espce Au moment de la dclaration de l'acteur, il faut ajouter "depuis" puis le chemin du fichier :
donnes est un texte depuis "/linotte/mes_donnes"

Si le fichier n'existe pas : - A la lecture il va renvoyer une chane vide. - Si vous affectez une valeur, Linotte va crer un fichier avec la valeur sur le disque dur. Exemple 1 :
Livre : Mon message Paragraphe : modification du message Les rles : Message est un texte depuis "/linotte/mon_message" Les actions : Tu affiches "Voici l'ancien message" Tu affiches le message Tu affiches "Quel est le nouveau message ?" Tu demandes le message Tu termines

Exemple 2 :
Livre : les fichiers casiers Paragraphe : dmonstration Les rles : document est un casier de texte depuis "/linotte/fichier_texte_casier.txt" valeur est un texte Les actions : "Donnez une valeur" ! la valeur ? Tu ajoutes la valeur dans le document Tu termines

Si vous tes sous MS Windows, le chemin aura la forme suivante : "c:\linotte\mon_message.txt" Vrifiez bien que vos rpertoires existent car Linotte ne sait pas les crer !

- 37 -

Dcouvrir la programmation avec le langage Linotte

Q. CHARGER UN FICHIER DEPUIS INTERNET Il est possible de charger des donnes depuis des fichiers stocks sur un site internet. Pour cela, le nom du fichier doit commencer par http:// Exemple :
Livre : Url depuis internet Paragraphe : Url Rles : Dernire version est un texte depuis "http://langagelinotte.free.fr/bonjour.txt" Actions : Affiche la dernire version Termine

Les images sont galement tlchargeables depuis Internet (cf. chapitre sur le graphisme) :
Livre : Image depuis internet Grands rles : d est un graphique, image vaut "http://www.linux.org/info/images/officialpenguin.gif", x vaut 170, y vaut 156 e est une toile, couleur vaut "bleu" angle est un nombre valant 0 Paragraphe : dbut Actions : efface la toile projette d projette e tant que 1 est diffrent de 2, lis angle de d vaut angle attends 0.01 seconde angle vaut angle + 1 ferme

- 38 -

Dcouvrir la programmation avec le langage Linotte

IV.PROGRAMMATION AVANCE
A.INTRODUCTION
La force de l'interprteur Linotte est de savoir lire le franais mais c'est galement sa faiblesse ! Et oui, parfois, pour programmer des choses simples, il faut beaucoup de mot pour dcrire des actions. Ainsi, ce chapitre va prsenter les raccourcis que l'on peut utiliser.

B.LES MATHMATIQUES
Voici les raccourcis que vous pouvez utiliser pour effectuer facilement des calculs en Linotte:
a vaut b

Permet d'affecter la valeur b dans la valeur a, Ce raccourci est particulier car il fonctionne galement avec les acteurs qui ne sont pas des nombres.
a vaut b+c

Permet de calculer la somme de b et de c et de stocker la valeur dans a. On peut faire de mme avec b-c, b*c ou b/c.
a vaut carr b

Permet de calculer le carr de b et de stocker la valeur dans a.


a vaut cube b

Permet de calculer le cube de b et de stocker la valeur dans a.


a vaut b puiss c

Permet de calculer b puissance c et de stocker la valeur dans a.


a vaut racine b

Permet de calculer la racine carre de b et de stocker la valeur dans a.


a vaut abs b

Permet de calculer la valeur absolue de b et de stocker la valeur dans a.


a vaut arrondi b

Permet de calculer l'arrondi de b et de stocker la valeur dans a.


a vaut entier b

Permet de calculer la partie entire de b et de stocker la valeur dans a.


a vaut dcimal b

Permet de calculer la partie dcimale de b et de stocker la valeur dans a.


a vaut b mod c

Permet de calculer le reste de b dans la division par c et de stocker la valeur dans a.


a vaut exp b

Permet de calculer la fonction exponentielle de b et de stocker la valeur dans a.


a vaut log b

Permet de calculer le logarithme dcimal de b et de stocker la valeur dans a.


a vaut logn b

- 39 -

Dcouvrir la programmation avec le langage Linotte

Permet de calculer le logarithme naturel de b et de stocker la valeur dans a.


a vaut sin b

Permet de calculer le sinus de b et de stocker la valeur dans a.


a vaut cos b

Permet de calculer le cosinus de b et de stocker la valeur dans a.


a vaut asin b

Permet de calculer l'arc sinus de b et de stocker la valeur dans a.


a vaut acos b

Permet de calculer l'arc cosinus de b et de stocker la valeur dans a.


a vaut atan b

Permet de calculer l'arc tangente de b et de stocker la valeur dans a. Pour effectuer des calculs boolens :
a a a a vaut vaut vaut vaut b et c b ou c b xou c non a

Et voici maintenant l'exemple, dj prsent, du thorme de Pythagore mais en utilisant cette fois-ci les raccourcis :
Livre : Pythagore Paragraphe : Pythagore Les rles : AB est un nombre BC est un nombre Les actions : AB ? BC ? racine (carr AB + carr BC ) ! Termine

C.LES POINTEURS DE CASIERS


Pour rcuprer une valeur dans un casier, il possible d'utiliser les accolades pour pointer directement vers un lment de celui-ci. Bref, passons un exemple qui sera d'une plus clart qu'une longue phrase ! Nous avons ce casier :
Le tableau est un casier de texte valant "janvier", "fvrier" , "mars", "avril", "mai", "juin", "juillet" ,"aot", "septembre", "octobre", "novembre", "dcembre"

Pour rcuprer le troisime mois, il faut normalement soit extraire la valeur ou alors utiliser une boucle. Maintenant, il est possible d'utiliser cette syntaxe bien plus simple :
tu affiches tableau{2}

Attention ! L'lment 0 correspond toujours au premier lment du casier !

- 40 -

Dcouvrir la programmation avec le langage Linotte

Voici un deuxime exemple o la valeur entre les accolades est un acteur :


Livre : Les mois Paragraphe : Le recueil Les rles : Tableau est un casier de texte valant "janvier", "fvrier" , "mars", "avril", "mai", "juin", "juillet" ,"aot", "septembre", "octobre", "novembre", "dcembre" Les actions : De 0 11, tu affiches le tableau {joker} Tu termines

Les pointeurs fonctionnent galement avec les casiers de casiers. On utilise un couple de pointeurs :
Livre : les lettres Paragraphe : la liste les rles : tab1 est un casier de texte valant "X" , "D" , "G" tab2 est un casier de texte valant "B" , "E" , "H" tab3 est un casier de texte valant "C" , "F" , "I" lettre est un casier de casier valant tab1 , tab2, tab3 les actions : lettre { 0 , 0 } vaut "A" pour chaque 3, tu affiches lettre { joker , 0 } tu termines

Vous pouvez galement utiliser un pointeur avec une chaine :


Livre : Pointeur Paragraphe : Dmonstration Les rles : Message est un texte valant "Bonjour !" Les actions : Tu affiches message {3} Tu termines

D.CRATION DYNAMIQUE DES ACTEURS


Il est possible avec Linotte de crer des acteurs sans tre oblig de les dclarer dans la section "Les rles". Pour cela, il faut utiliser le verbe "crer". Il existe 5 formes du verbe crer :

tu cres a un acteur texte tu cres a un acteur nombre tu cres c un casier de nombre tu cres c un casier de espce tu cres a un acteur espce

Voici un exemple simple :


Livre : Exemple de cration simple Paragraphe : cration Les actions : Tu cres "nuage" un acteur texte Nuage vaut "Cumulus" Tu affiches le nuage

Cet exemple, excessivement basique, affichera "Cumulus" sur l'cran. Je dis "excessivement" car vous remarquerez que l'utilit d'utiliser le verbe crer ici n'est pas justifi !

- 41 -

Dcouvrir la programmation avec le langage Linotte

Pour comprendre l'intrt de ce verbe, nous allons nous tourner vers les boucles et le graphisme (peut-tre devriez-vous lire le chapitre sur le graphisme avant ?). Par exemple, vous voulez afficher un champ de fleurs qui peut en contenir une centaine... Avec vos connaissances actuelles en Linotte, vous devriez dfinir dans la section "les rles" 100 acteurs pour nos 100 fleurs ! Voici la solution pour contourner ce problme avec le verbe crer :
Livre : Les fleurs Grands rles : champs est une toile, couleur vaut "jaune mimosa" Paragraphe : Dcor Actions : efface la toile projette le champs pour chaque 100, parcours planter termine Paragraphe : planter Rles : xx est un nombre valant 600 yy est un nombre valant 600 nom est un texte valant "fleur_" Actions : tu concatnes nom , joker dans nom cr nom un acteur point mlange xx mlange yy dplace cration vers xx et yy couleur de cration vaut "noir" taille de cration vaut 10 projette cration reviens

Vous comprenez l'intrt maintenant ? Vous pouvez regarder l'exemple fleurs_des_champs.liv qui utilise un casier pour manipuler les fleurs gnres. L'acteur particulier cration contient le dernier acteur cr dynamiquement.

E.CHARGEMENT DYNAMIQUE DES ACTEURS


Il se peut que vous vouliez manipuler un acteur dont vous connaissez le nom, non pas l'criture du programme mais son excution. Dans l'exemple suivant, nous allons crs avec le verbe "crer un texte" un acteur nomm "fleur", ensuite, nous allons lire sa valeur. La premire possibilit est de stocker l'acteur cr dans un tableau. Ensuite, avec une boucle, on peut rcuprer notre acteur par l'intermdiaire du joker. La seconde possibilit est d'utiliser le chargement dynamique. Le principe est simple, on donne non pas l'acteur une action mais le nom de l'acteur !

Un petit exemple :
Livre : chargement dynamique des acteurs Paragraphe : cration Les rles : fleur est un texte valant "rose"

- 42 -

Dcouvrir la programmation avec le langage Linotte

Les actions : Tu cres "rose" un acteur texte Tu cres "tulipe" un acteur texte Tu copies "rouge" dans <fleur> Tu copies "tulipe" dans fleur Tu copies "blanc" dans <fleur> Tu affiches Rose Tu affiches Tulipe Tu termines

Voici le rsultat sur le tableau : Rouge Blanc En utilisant les signes < et > autour d'un acteur texte A comme ceci : <A>, Linotte va charger non pas l'acteur A mais l'acteur nomm par la valeur de A.

F.AFFICHAGE DYNAMIQUE DU NOM D'UN ACTEUR


Ce que nous allons voir est l'inverse du chargement dynamique vu dans le prcdent paragraphe. Pour identifier un acteur pendant la lecture d'un livre, il faut utiliser les crochets autour de cet acteur. Voici un dmonstration dans un exemple simple :
Livre : introspection Paragraphe : t'es qui ? Les rles : Robert est un texte valant "Absent" Les actions : Tu affiches Robert Tu affiches [Robert]

Voici l'affichage sur le tableau : Absent Robert Cet exemple est trivial mais vous trouverez un cas plus complet dans le livre : fleurs_des_champs.liv

- 43 -

Dcouvrir la programmation avec le langage Linotte

G.HRITAGE
Ce chapitre introduit la notion d'hritage qui offre la possibilit de crer une nouvelle espce partir d'une espce dj existante. Partons d'un exemple simple pour comprendre l'utilit de cette nouvelle notion ! Nous allons crer un jeu avec des personnages. Un personnage doit tre reprsent sur la toile par une image. On va lui associer un nom, une exprience et enfin un ge. Avec nos connaissances actuelles en Linotte, nous aurions cr une espce graphique image pour grer l'affichage sur la toile et ensuite cr une autre espce pour contenir les autres informations sur ce personnage. Cette mthode devient rapidement complique s'il faille grer une dizaine de personnages... Pour rsoudre notre problmatique , nous allons crer une espce personnage qui hrite de l'espce image (image est une espce graphique). Voici cette nouvelle syntaxe :
Livre : Jeu de rles Les espces : nom est un texte ge est un nombre exprience est un nombre l'espce personnage hrite de image et contient un nom, un ge

Ainsi, vous pouvez associer une personne une image et lui attribuer son nom, son exprience et son ge et aussi l'afficher sur la toile ! L'espce personnage peut tre utilise avec les verbes lis l'affichage comme : projeter, dplacer, etc. : personnage hrite de toutes les proprits de image. Vous trouverez dans les exemples de Linotte des livres utilisant la notion d'hritage, fleurs_des_champs_et_heritage.liv, gravite.liv et course.liv

- 44 -

Dcouvrir la programmation avec le langage Linotte

H.LES SOUS-PARAGRAPHES
Jusqu' maintenant, pour structurer notre livre, nous avons utilis les paragraphes. Par exemple pour faire une boucle simple :
Livre : exemple Paragraphe : 1 Actions : Pour chaque 3, tu parcours la boucle Termine Paragraphe : boucle Actions : Affiche "Voici la valeur :" Affiche joker Reviens

Cette structure trs simple comprendre se rvle difficile lire et structurer dans des livres plus importants contenant des centaines de boucles ! Pour simplifier cette syntaxe, Linotte propose les sous-paragraphes :
Livre : exemple Paragraphe : 1 Actions : Pour chaque 3, lis Affiche "Voici la valeur :" Affiche joker Ferme

On ouvre un sous-paragraphe avec le verbe Lire et on le termine avec le verbe Fermer. Vous voyez que c'est plus facile lire pour l'il ! Vous pouvez encapsuler un sous-paragraphe dans un autre autant de fois que vous voulez
Livre : exemple Paragraphe : 1 Actions : Pour chaque 10, lis Affiche "Voici la valeur : " + joker Si la valeur est gale 9, lis Affiche "c'est la dernire valeur !" Affiche "Le boucle est termine" Ferme Ferme

Les sous-paragraphes peuvent tre utiliss soit avec les boucles, soit avec les conditions. Pensez les utiliser dans vos livres : ils gagneront en lisibilit ! Leurs utilisations permettent galement de mettre en uvre plus facilement des algorithmes mathmatiques. Lisez le livre gravite.liv : il simule la chute des plusieurs boules sur le sol. Ce livre tient en un seul paragraphe !

- 45 -

Dcouvrir la programmation avec le langage Linotte

I.LES ACTEURS LOCAUX


Nous avons vu qu'en langage Linotte, les acteurs crs taient stocks dans la mmoire globale de l'interprte. Cette mmoire est accessible depuis n'importe quel paragraphe. Un acteur "a" a la mme valeur que l'on soit dans un paragraphe P1 ou dans un paragraphe P2. Regardez ce livre (sans l'excuter dans l'Atelier !):
Livre : Sans acteurs locaux Paragraphe : premier Rles : liste est un casier de nombre vide Actions : Parcours ajout Parcours ajout Parcours ajout Affiche liste Termine Paragraphe : ajout Rles : a est un nombre valant 1000 liste est un casier de nombre Actions : Mlange a Ajoute a dans liste Reviens

Petit exercice ( il faut bien travailler un petit peu ! ) : Essayez de prvoir le comportement de ce livre. D'aprs vous, que va-t-il afficher sur le tableau ? Vous avez devinez ? La rponse est : 3 nombres identiques. Bravo ! Lors de chaque appel au paragraphe "ajout", Linotte ajoute l'acteur "a" dans le casier "liste". Au bout de trois appels, il a ajout trois fois l'acteur "a". Si on imagine la mmoire interne de l'interprte, on a quelque chose qui ressemble a : liste : [a, a, a ] "a" contient la dernire valeur qui lui a t affecte ! Si c'est la valeur 35, on a dans la mmoire globale : liste : [a=35, a=35, a=35 ] Nous avons donc un problme rsoudre : comment ajouter trois nombres alatoirement dans un casier en utilisant le verbe parcourir ? C'est l que nous allons faire appel notre acteur local. Un acteur local n'est pas stock dans la mmoire globale de l'interprte. Il n'existe qu'au moment de l'excution du paragraphe (on peut l'appeler : le contexte paragraphe). Un acteur est dfini comme "local" au paragraphe lorsque l'on prfixe sa dfinition dans la section les rles par le symbole . - 46 -

Dcouvrir la programmation avec le langage Linotte

Voici l'exemple prcdent utilisant un acteur local :


Livre : Avec acteurs locaux Paragraphe : premier Rles : liste est un casier de nombre vide Actions : Parcours ajout Parcours ajout Parcours ajout Affiche liste Termine Paragraphe : ajout Rles : alatoire est un nombre valant 1000 liste est un casier de nombre Actions : Mlange alatoire Ajoute alatoire dans liste Reviens

On obtient bien sur le tableau : 844 99 967 Et voil, nous avons rsolu notre problme ! L'acteur local est accessible tant que vous tre dans le paragraphe. Voici le mme exemple mais avec un pige :
Livre : Avec acteurs locaux Paragraphe : premier Rles : liste est un casier de nombre vide Actions : Parcours ajout Parcours ajout Parcours ajout Affiche liste Termine Paragraphe : ajout Rles : alatoire est un nombre valant 1000 liste est un casier de nombre Actions : Mlange alatoire Parcours message Ajoute alatoire dans liste Reviens Paragraphe : message alatoire est un nombre Actions : Affiche "Valeur de l'acteur alatoire : " + alatoire Reviens

D'aprs vous, que va afficher ce livre ?

- 47 -

Dcouvrir la programmation avec le langage Linotte

Rponse : Valeur de alatoire 0 Valeur de alatoire 0 Valeur de alatoire 0 819 827 76 Dans le paragraphe "message", nous crons un deuxime acteur local "alatoire" mais comme nous ne sommes pas dans le mme contexte paragraphe, on vrifie bien que les deux acteurs sont bien distincts ! Ouf ! L'honneur est sauf... Vous avez le droit de prendre une pause avant de passer au chapitre suivant !

- 48 -

Dcouvrir la programmation avec le langage Linotte

J.LES DOUBLURES
D'aprs le wiktionnaire, une doublure est par dfinition : (Thtre) Acteurs et actrices qui remplacent les chefs demplois dans leurs rles. En Linotte, une doublure a le mme sens. Elle permet ainsi de rendre un paragraphe indpendant des acteurs qu'il utilisera. Nous allons mettre en pratique cette nouvelle notion en crivant un livre. Dans le livre que nous allons rdiger, nous allons diviser deux nombres, mais avant d'effectuer cette division, nous allons vrifier si le diviseur n'est pas gal zro. Commenons par crire l'entte de ce paragraphe :
Paragraphe : divise Rles : *a est un nombre *b est un nombre *c est un nombre

Pour indiquer Linotte que l'acteur sera une doublure, nous le prfixons par un astrisque (*). Il est interdit d'affecter une valeur une doublure dans la section les rles : il est l'image d'un acteur, ainsi, vous ne pouvez pas crire : *a est un nombre valant 10 (interdit !) Voici maintenant le livre complet :
Livre : divisons simplement ! Paragraphe : calcul Rles : n1 est un nombre vide n2 est un nombre vide n3 est un nombre vide Actions : parcours divise avec 10, 2, n1 affiche n1 parcours divise avec 45, 5, n2 affiche n2 parcours divise avec 13, 0, n3 affiche n3 termine Paragraphe : divise Rles : *a est un nombre *b est un nombre *c est un nombre Actions : Si b est gale 0 alors lis Affiche "Impossible de diviser un " + a + " par zro ! " Termine Ferme Sinon, c vaut a / b Reviens

Au premier appel du paragraphe divise, Linotte affecte aux acteurs locaux : a vaut 10

- 49 -

Dcouvrir la programmation avec le langage Linotte

b vaut 2 c vaut n1 Au deuxime appel : a vaut 45 b vaut 5 c vaut n2 Et enfin, au troisime : a vaut 13 b vaut 0 c vaut n3 Avez-vous remarquez que l'Atelier Linotte affiche dans la vue sommaire : divise(a,b,c). Ainsi, d'un seul coup d'il, vous pouvez voir les doublures utilises par un paragraphe. Une doublure ne peut remplacer qu'un acteur ayant le mme rle ! Respectez l'ordre d'numration des acteurs lors de l'utilisation du verbe parcourir! L'ordre est exactement le mme que dans la section les rles du paragraphe appel. Pensez utiliser des doublures pour mieux organiser votre livre: vous allez rduire sa taille car tous les traitements identiques seront regroups dans un mme endroit !

- 50 -

Dcouvrir la programmation avec le langage Linotte

K.LE CLONAGE D'ACTEUR


Non, vous n'tes pas entrain de lire un livre Aldous Huxley mais bel et bien un manuel d' informatique! Le clonage est un outil puissant qui permet de dupliquer des acteurs trs simplement... Pour cloner un acteur, il faut le prfixer par un croisillon : #. Pour comprendre, nous allons partir d'un exemple simple et arriver un exemple plus complexe mais au combien plus intressant ! Considrez ce livre :
Livre : Clonage 1 Paragraphe : simplement Rles : a est un c est un Actions : ajoute a ajoute a ajoute a a vaut 2 c ! termine

nombre valant 1 casier de nombre vide dans c dans c dans c

Si vous excutez ce livre, trois chiffres '2' vont s'afficher sur le tableau. C'est normal car l'acteur a se trouve trois fois dans le casier. Essayez cet autre livre :
Livre : Clonage 2 Paragraphe : simplement Rles : a est un nombre valant 1 c est un casier de nombre vide Actions : ajoute a dans c ajoute #a dans c ajoute #a dans c a vaut 2 c ! termine

Cette fois-ci, le tableau va afficher : 2 , 1 , 1 ! Les deux derniers acteurs du tableau ne sont plus 'a' mais des clones de 'a' ! Regardons cet exemple o nous voulons insrer dix nombres dans un casier :
Livre : Clonage 3 Paragraphe : simplement Rles : n est un nombre valant 1 c est un casier de nombre vide Actions : pour chaque 10, lis parcours ajouter avec #n, c n vaut n+1 ferme c ! termine

- 51 -

Dcouvrir la programmation avec le langage Linotte

Paragraphe : ajouter *t est un nombre *c est un casier de nombre Actions : ajoute t dans c reviens

Amusez-vous supprimer le croisillon et regardez le nouveau comportement du livre. Lors de l'utilisation de doublures, Linotte fait passer les paramtres par adresse. L'utilisation du clonage permet de faire passer des paramtres par copie. Pour conclure ce chapitre ,voici un dernier exemple utilisant une espce graphique :
Livre : Clonage d'un rond Paragraphe : Magie ! Rles : rond est un cercle, couleur vaut "rose", plein vaut "oui", ... rayon vaut 30, x vaut 289, y vaut 290 groupe est un casier de cercle vide Actions : efface la toile projette rond ajoute #rond dans groupe ajoute #rond dans groupe ajoute #rond dans groupe de 1 100, lis dplace groupe{0} vers le haut de 1 dplace groupe{1} vers le bas de 1 dplace groupe{2} vers la droite de 1 dplace rond vers la gauche de 1 attends 20 millisecondes ferme termine

Sympa ?

- 52 -

Dcouvrir la programmation avec le langage Linotte

L.LA LECTURE PARALLLE


La paralllisation des traitements est un mcanisme qui autorise le programmeur excuter plusieurs paragraphes en mme temps. Pour cela, il faut utiliser le verbe appeler. Jetons un coup d'il sur cet exemple :
Livre : Traitements en parallle ! Paragraphe : Dmonstration Actions : tu appelles traitement tu affiches "On attend 3 secondes" tu attends 3 secondes tu affiches "Fin des 3 secondes" tu termines Paragraphe : traitement Actions : tu attends 1 seconde tu affiches "....moi, je ne veux pas attendre !" tu reviens

Sur le tableau nous avons : > On attend 3 secondes > ....moi, je ne veux pas attendre ! > Fin des 3 secondes Le paragraphe traitement a t excut en mme temps que dmonstration ! Le verbe observer attend la fin d'un traitement parallle. L'exemple suivant simule une course de voitures. Chaque voiture est gre par un traitement parallle. Voici ce petit jeu tout simple (disponible dans les exemples livrs avec l'Atelier)
Livre : course de voitures Espces : vitesse est un nombre modle est un texte l'espce voiture hrite de rectangle et contient une vitesse, un modle Grands rles : v1 est une voiture, modle vaut "Renault", x vaut 50, y vaut 35, plein vaut "oui",... couleur vaut "rouge", hauteur vaut 7, largeur vaut 15 v2 est une voiture, modle vaut "Peugeot", x vaut 50, y vaut 65, plein vaut "oui",... couleur vaut "vert", hauteur vaut 7, largeur vaut 15 v3 est une voiture, modle vaut "BMW", x vaut 50, y vaut 95, plein vaut "oui",... couleur vaut "bleu", hauteur vaut 7, largeur vaut 15 piste est une toile, couleur vaut "blanc" arrive est une ligne, couleur vaut "noir", transparence vaut 80, x1 vaut 560, x2 vaut 560, y1 vaut 30, y2 vaut 120 max est un nombre valant 5 tempo est un nombre valant 20 limite est un nombre valant 545 classement est un casier de voiture vide rsultat1 est un graffiti, x vaut 210, y vaut 175 rsultat2 est un graffiti, x vaut 210, y vaut 200 rsultat3 est un graffiti, x vaut 210, y vaut 225

- 53 -

Dcouvrir la programmation avec le langage Linotte

Paragraphe : en piste ! Actions : efface la toile projette piste projette v1 projette v2 projette v3 projette arrive appelle course1 appelle course2 appelle course3 observe course1 observe course2 observe course3 texte de rsultat1 vaut "la voiture " + modle de (classement{0}) + ... " est la premire !" texte de rsultat2 vaut "la voiture " + modle de (classement{1}) + ... " est la deuxime !" texte de rsultat3 vaut "la voiture " + modle de (classement{2}) + ... " est la dernire !" couleur de rsultat1 vaut couleur de (classement{0}) couleur de rsultat2 vaut couleur de (classement{1}) couleur de rsultat3 vaut couleur de (classement{2}) projette rsultat1 projette rsultat2 projette rsultat3 termine Paragraphe : course1 Actions : tant que x de v1 est plus petit que limite, lis vitesse de v1 vaut max mlange vitesse de v1 dplace v1 vers la droite de vitesse de v1 attends tempo millisecondes ferme ajoute v1 dans classement reviens Paragraphe : course2 Actions : tant que x de v2 est plus petit que limite, lis vitesse de v2 vaut max mlange vitesse de v2 dplace v2 vers la droite de vitesse de v2 attends tempo millisecondes ferme ajoute v2 dans classement reviens Paragraphe : course3 Actions : tant que x de v3 est plus petit que limite, lis vitesse de v3 vaut max mlange vitesse de v3 dplace v3 vers la droite de vitesse de v3 attends tempo millisecondes ferme ajoute v3 dans classement reviens

- 54 -

Dcouvrir la programmation avec le langage Linotte

M.LES GREFFONS
Nous allons aborder que succinctement la notion de greffons dans ce document. Le mcanisme de greffons a pour but d'enrichir Linotte partir de programmes externes cris en langage Java par d'autres dveloppeurs. Pour installer un greffon, il faut copier dans le rpertoire greffons un fichier XML (descripteur de greffon) et un (des ) fichier(s) ZIP ou JAR contenant les classes Java du greffon. Voici les diffrents types de greffons disponibles :

Greffon graphique :

Ce type de greffon permet de crer de nouvelles espces graphiques.

Greffon tube :

Schmatiquement, un tube peut tre reprsent comme ceci :

On peut charger un tube de donnes, ensuite dans un deuxime temps dcharger ces donnes. Un fichier fonctionne comme un tube. On crit (charge) des donnes dans un fichier pour plus tard lire (dcharger) les mmes donnes. Le tube est une espce abstraite en Linotte : il n'est pas possible d'utiliser directement cette espce. Il faut un greffon de type tube. Vous allez trouver dans les exemples de Linotte des exemples de greffons fichiers et graphiques (le bouton et le patron).
Livre : Tube fichier Les espces : Nom est un texte vide Prnom est un texte vide L'espce contact contient un nom, un prnom Paragraphe : criture Rles : Connecteur est un fichier c est un casier de contact Actions : Tu ouvres connecteur avec "lecture" depuis "c:/temp/teste_tube.txt" Tu dcharges c depuis connecteur Tu fermes connecteur Tu affiches c Tu termines

- 55 -

Dcouvrir la programmation avec le langage Linotte

V.LE GRAPHISME
A.LES ESPCES GRAPHIQUES
1.Les talents d'artiste de l'interprte
Avant de lire ce chapitre, vous devez avoir assimil la notion d'espce. Aprs tant d'effort d'apprentissage, voici le rconfort : amusons-nous maintenant voir nos acteurs se trmousser sur une toile... comme au cinma ! La toile5 permet de voir les acteurs, mais pour afficher un acteur sur celle-ci, il faut certaines informations obligatoires. La premire est la caractristique visible . Notre acteur doit-il tre visible sur la toile ou doit-il tre cach ? La deuxime est les coordonnes : notre acteur doit savoir o se positionner sur la toile, gauche, droite, au centre ? La toile utilise le systme cartsien : un acteur a une position x et une position y. Voil, nous avons tous les lments qui nous permettent de positionner un acteur sur notre toile ! Les espces qui ont ces caractristiques sont les espces graphiques . Vous n'avez pas besoin de les crer, elles sont dj dfinies dans l'interprte. Voici la premire : l'espce graphique graffiti . Le graffiti permet de projeter un texte sur la toile. J'utilise le verbe projeter car c'est le mme que l'on utilisera avec l'interprte pour afficher notre acteur. La caractristique visible est par dfaut non . Le verbe projeter va lui affecter la valeur oui . Voici le premier exemple :
Livre : Le Graffiti Paragraphe : Affichage Les rles : message est un graffiti, texte vaut "Bonjour !", Les actions : Tu projettes le message Tu termines

x vaut 250, y vaut 260

A la lecture de ce livre dans l'interprte, vous pouvez constater que Bonjour ! s'affiche au milieu de la toile. Dessiner reste simple en Linotte ? Convaincu ? Alors, continuons ! Vous ne trouvez pas que l'affichage reste triste ? Nous allons ajouter un peu plus de couleur notre toile.
5

Merci Christophe_bal pour le vocabulaire : la toile et le verbe projeter.

- 56 -

Dcouvrir la programmation avec le langage Linotte

Voici le deuxime exemple :


Livre : Le Graffiti Paragraphe : Affichage Les rles : message est un graffiti, texte vaut "Bonjour !", x vaut 250, y vaut 260, couleur vaut "jaune" Les actions : Tu projettes le message Tu termines

Aprs lecture de ce livre... Vous constatez avec horreur que notre texte est devenu illisible ! Nous aurions pu choisir d'autres couleurs car l'interprte peut reconnaitre une centaine de couleurs ! Par exemple : blanc, gris, noir, rouge,rose,orange,jaune,vert,bleu,cyan,magenta. Pour dcouvrir les autres couleurs, parcourez le casier de textes systme : couleurs (voir l'exemple couleurs.liv) ou alors visitez le lien suivant : http://fr.wikipedia.org/wiki/Liste_de_couleurs Si vous avez besoin de personnaliser votre couleur, vous pouvez toujours la dfinir d'aprs les 3 composantes Rouge, Vert, Bleu : couleur vaut "230 126 48" Pour corriger ce dtail esthtique, changeons la couleur de la toile :
Livre : Le Graffiti Paragraphe : Affichage Les rles : message est un graffiti, texte vaut "Bonjour !",x vaut 250,y vaut 260, couleur vaut "jaune" le fond est une toile, couleur vaut "bleu" Les actions : Tu projettes le fond Tu projettes le message Tu termines

Avec cet exemple, nous dcouvrons une deuxime espce graphique : la toile. La toile ne contient que quatre caractristiques qui sont couleur , image , longueur et largeur . Vous pouvez aussi changer la forme du curseur avec la caractristique pointeur : pointeur
vaut "main"

Les autres valeurs possibles sont : flche, texte ou normal. Image permet d'afficher une image sur le fond de la toile. Les valeurs largeur et hauteur permettent de modifier la taille de la surface de la toile. Maintenant que notre texte est enfin lisible sur notre toile... nous allons le personnaliser encore un peu plus :
Livre : Le Graffiti Paragraphe : Affichage Les rles : message est un graffiti, taille vaut 10, police vaut "Liberation Mono" le fond est une toile, couleur vaut "bleu" Les actions : Tu projettes le fond Tu projettes le message Tu termines

Pas mal pour un premier dessin ? Le choix des polices va dpendre de votre systme. Pour connaitre les polices disponibles, vous pouvez utiliser l'acteur particulier polices :

- 57 -

Dcouvrir la programmation avec le langage Linotte

Livre : Les polices Paragraphe : Afficher les polices Les actions : Pour chaque polices , joker ! Termine

Voil, l'introduction est termine. En deux pages, nous avons russi afficher un texte sur la toile et modifi son apparence. Dcouvrons maintenant comment, avec interprte, nous pouvons dessiner des formes gomtriques.

- 58 -

Dcouvrir la programmation avec le langage Linotte

2.Les figures gomtriques


Voici les nouvelles espces que nous allons maintenant dcouvrir :

Le point, La ligne, Le cercle, Le rectangle Le graphique.

Essayons de dessiner un point sur la toile :


Livre : Un petit point Paragraphe : Dessinons ! Les rles : spot est un point, Les actions : Projette le spot Termine

x vaut 251, y vaut 171, couleur vaut "rouge"

Tiens, le texte des exemples prcdents reste sur la toile ! C'est normal, les acteurs sont dans la mmoire avec la caractristique visible oui. Pour cacher ces acteurs, nous allons utiliser la phrase suivante qui va affecter visible non toutes les acteurs de la toile :
Tu effaces la toile.

Voici notre nouveau livre :


Livre : Un petit point Paragraphe : Dessinons ! Les rles : spot est un point, x vaut 251, y vaut 171, couleur vaut "rouge" Les actions : Efface la toile Projette le spot Termine

Ouf, notre toile a bien t nettoye ! Par contre, le point parait bien petit... Agrandissons-le !
Livre : Un grand point Paragraphe : Dessinons ! Les rles : spot est un point, x vaut 251, y vaut 171, couleur vaut "rouge", taille vaut 10 Les actions : Efface la toile Projette le spot Termine

Petite astuce : si vous double-cliquez sur la toile (si aucun livre n'est en cours d'excution), les coordonnes vont s'ajouter dans le cahier !

Maintenant, dessinons un cercle :


Livre : Un grand point Paragraphe : Dessinons ! Les rles : spot est un point, x vaut 251, y vaut 171, couleur vaut "rouge", taille vaut 10 rond est un cercle, x vaut 251, y vaut 171, couleur vaut "vert", rayon vaut 50 Les actions : Efface la toile Projette le spot

- 59 -

Dcouvrir la programmation avec le langage Linotte

Projette le rond Termine

Le principe reste le mme que le point, il faut juste dfinir le rayon en plus. Il est possible de modifier galement l'paisseur du cercle en utilisant la caractristique taille. Pour le prochain exemple, nous allons utiliser le verbe effacer pour alterner l'affichage entre le point et le cercle :
Livre : Un grand point et un cercle Paragraphe : Dessinons ! Les rles : spot est un point, x vaut 251, y vaut 171, couleur vaut "rouge", taille vaut 10 rond est un cercle, x vaut 251, y vaut 171, couleur vaut "vert", rayon vaut 50 Les actions : Efface la toile Projette le spot Attend 3 secondes Efface le spot Projette le rond Termine

Attention, le verbe effacer ne supprime pas de la mmoire notre acteur mais va seulement affecter la valeur non la caractristique visible . Pour rafficher notre acteur, nous avons deux possibilits : soit utiliser le verbe projeter ou alors de copier la valeur oui dans visible.
Livre : Un grand point et un cercle Paragraphe : Dessinons ! Les rles : spot est un point, x vaut 251, y vaut 171, couleur vaut "rouge", taille vaut 10 rond est un cercle, x vaut 251, y vaut 171, couleur vaut "vert", rayon vaut 50 Les actions : Efface la toile Projette le spot Attend 3 secondes Efface le spot Projette le rond Attend 3 secondes Visible de spot vaut "oui" Termine

Le cercle, le rectangle ont une caractristique supplmentaire qui est plein. Si c'est valeur est oui, alors Linotte va remplir la forme de sa couleur. Afficher une ligne ou une image reste identique et aussi simple, je vous laisse essayer en vous aidant bien sr du prochain chapitre... Vous trouverez plus exemples dans le rpertoire : exemples/c_multimedia

- 60 -

Dcouvrir la programmation avec le langage Linotte

3.Transformation !
Rajoutons un peu de folie dans notre animation ! Nous pouvons modifier l'angle d'inclinaison des espces graphique suivantes : graffiti, scribe, patron, image, ligne et rectangle. Pour cela, rien de plus simple, vous n'avez qu' modifier la caractristique angle de votre espce:
Livre : Rotation Grands rles : d est un graphique, image vaut "images/tux_graduate.png",x vaut 230, y vaut 322, transparence vaut 90, taille vaut 20 e est une toile, couleur vaut "bleu", image vaut "images/dn_house2.png" angle est un nombre valant 0 Paragraphe : dbut Actions : efface la toile projette d projette e va vers boucle Paragraphe : boucle Actions : angle de d vaut angle attends 0.01 seconde angle vaut angle + 1 va vers boucle

L'unit de l'angle est le dgre. Vous pouvez galement zoomer ou dzoomer une image en modifiant sa taille. Essayer de mettre en pratique en ralisant un livre qui doit grossir une image... vous trouverez un exemple dans le livre : tux_court.liv.

- 61 -

Dcouvrir la programmation avec le langage Linotte

4.Les scribes
Le scribe est une espce graphique interactive : il est capable d'intercepter les touches tapes sur le clavier et de les afficher aussitt sur la toile. Il permet la saisie de texte directement depuis la toile. Regardons de plus prs son comportement dans un exemple que nous allons construire en plusieurs tapes :
Livre : Scribe Paragraphe : Test 1 Rles : Crayon est un scribe, Actions : Tu effaces la toile Projette le crayon Temporise Termine

x est 196, y est 253, couleur est "noir"

Si vous essayez ce livre dans l'Atelier, vous allez remarquer que rien ne se passe... Ne vous inquitez pas, c'est normal ! Le scribe est bien affich mais il ne ragit ! Notre scribe dort, il faut le stimuler pour le rveiller ! Compltons notre exemple en ajoutant le verbe stimuler :
Livre : Scribe Paragraphe : Test 2 Rles : Crayon est un scribe, x est 196, y est 253, couleur est "noir" Actions : Tu effaces la toile Projette le crayon Stimule le crayon Temporise Affiche le texte de crayon Termine

Maintenant, si vous tapez 'a' sur le clavier, le 'a' va s'afficher sur la toile; si vous tapez 'b', 'ab' va s'afficher sur la toile, etc. Vous remarquerez galement que le livre est bloqu sur le verbe temporiser : le scribe intercepte toutes les touches et empche ainsi le verbe temporiser de se dbloquer. Pour rendormir notre scribe, il faut appuyer sur la touche [entre] du clavier : il n'intercepte plus les touches, le verbe temporiser se dbloque. Un clique avec la souris sur bouton droit sur la toile le mme effet que la touche [entre] du clavier. Il est possible d'afficher plusieurs scribes sur la toile, mais un seul ne peut tre actif. En appelant le verbe stimuler, celui-ci endort tous les scribes et rveille celui que vous souhaitez.

Essayez cet exemple plus complexe :

- 62 -

Dcouvrir la programmation avec le langage Linotte

Livre : Prsentation des scribes Grands rles : Information est un graffiti, x vaut 170, y vaut 220, texte vaut "Utilise la touche Entre" Message A est un graffiti, x vaut 200, y vaut 320, couleur vaut "rouge", texte vaut "A :" Rponse A est un scribe, x vaut 230, y vaut 320, couleur vaut "noir", texte vaut "" Message B est un graffiti, x vaut 200, y vaut 350, couleur vaut "rouge", texte vaut "B :" Rponse B est un scribe, x vaut 230, y vaut 350, couleur vaut "noir", texte vaut "" Message C est un graffiti, x vaut 200, y vaut 380, couleur vaut "rouge", texte vaut "C :" Rponse C est un scribe, x vaut 230, y vaut 380, couleur vaut "noir", texte vaut "" Mur est une toile, couleur vaut "gris" Paragraphe : Affichage Actions : Efface toile Projette mur Projette information Projette message A Projette rponse A Projette message B Projette rponse B Projette message C Projette rponse C Va vers action Paragraphe : Action Actions : Stimule rponse A Temporise Stimule rponse B Temporise Stimule rponse C Temporise Va vers action

Le scribe limite la saisie d'un texte 30 caractres. Pour modifier cette limite, changez la caractristique "taquet" :
Livre : Scribe Paragraphe : Test 1 Rles : Crayon est un scribe, x vaut 196, y vaut 253, couleur vaut Actions : Tu effaces la toile Projette le crayon texte de crayon vaut "" Stimule le crayon Temporise Affiche le texte de crayon Termine

"noir", taquet vaut 5

Le scribe a les mme caractristiques que le graffiti : vous pouvez modifier par exemple, sa couleur, sa police, son angle.

- 63 -

Dcouvrir la programmation avec le langage Linotte

5.Tableau des caractristiques des espces graphiques


Ce tableau est un aide-mmoire de toutes les caractristiques disponibles pour toutes les espces graphiques. Espce graphique Caractristique Rle Commentaire
toile toile toile toile toile toile toile toile toile toile toile toile graphique graphique graphique graphique graphique graphique graphique graphique graffiti graffiti graffiti graffiti graffiti graffiti graffiti graffiti graffiti graffiti point point point point point point point cercle cercle cercle cercle couleur visible image transparence audessus bordure hauteur largeur x x curseur tampon image visible transparence x y position angle taille x y texte police taille visible transparence couleur position angle x y taille visible transparence couleur position x y taille rayon nombre texte texte nombre texte texte nombre nombre nombre nombre texte texte texte texte nombre nombre nombre nombre nombre nombre nombre nombre texte texte nombre texte nombre texte nombre nombre nombre nombre nombre texte nombre texte nombre nombre nombre nombre nombre Couleur du fond le la toile Non implmente Chemin vers une image. Ex : images/fond.png Valeur entre 0 et 100. Valeur 'oui' pour que la toile soit au dessus des autres fentres Valeur 'oui' pour que la toile soit sans bordure Largeur de la toile Longueur de la toile Coordonne x sur l'cran Coordonne y sur l'cran Change le curseur Valeur 'oui' pour activer le rafraichissement automatiquement Chemin vers une image. Ex : images/tux.png Valeur 'oui' pour afficher l'acteur sinon 'non'. Valeur entre 0 et 100. Coordonne x sur la toile Coordonne y sur la toile Ordre d'affichage sur la toile Angle d'affichage en degr Valeur 0 par dfaut. Coordonne x sur la toile Coordonne y sur la toile Texte afficher Nom de la police Hauteur des caractres Valeur 'oui' pour afficher l'acteur sinon 'non'. Valeur entre 0 et 100. Couleur du point Ordre d'affichage sur la toile Angle d'affichage en degr Coordonne x sur la toile Coordonne y sur la toile paisseur du point Valeur 'oui' pour afficher l'acteur sinon 'non'. Valeur entre 0 et 100. Couleur du point Ordre d'affichage sur la toile Coordonne x sur la toile Coordonne y sur la toile paisseur du cercle Rayon du cercle

- 64 -

Dcouvrir la programmation avec le langage Linotte

cercle cercle cercle cercle cercle ligne ligne ligne ligne ligne ligne ligne ligne ligne ligne rectangle rectangle rectangle rectangle rectangle rectangle rectangle rectangle rectangle rectangle rectangle scribe scribe scribe scribe scribe scribe scribe scribe scribe scribe scribe crayon crayon crayon crayon crayon crayon crayon crayon crayon crayon crayon

transparence couleur plein position visible x1 x2 y1 y2 taille transparence couleur position visible angle x y taille hauteur largeur transparence couleur plein position visible angle x y texte taquet police taille visible transparence couleur position angle x y baisser pointe collision taille visible transparence couleur position angle

nombre texte texte nombre texte nombre nombre nombre nombre nombre nombre texte nombre texte nombre nombre nombre nombre nombre nombre nombre texte texte nombre texte nombre nombre nombre texte texte texte nombre texte nombre texte nombre nombre nombre nombre texte texte texte nombre texte nombre texte nombre nombre

Valeur entre 0 et 100. Couleur du cercle Valeur 'oui' pour peindre l'acteur sinon 'non'. Ordre d'affichage sur la toile Valeur 'oui' pour afficher l'acteur sinon 'non'. Coordonne x1 sur la toile Coordonne x2 sur la toile Coordonne y1 sur la toile Coordonne y2 sur la toile paisseur de la ligne Valeur entre 0 et 100. Couleur de la ligne Ordre d'affichage sur la toile Valeur 'oui' pour afficher l'acteur sinon 'non'. Angle d'affichage en degr Coordonne x sur la toile Coordonne y sur la toile paisseur du cercle Hauteur du rectangle sur la toile Largeur de rectangle sur la toile Valeur entre 0 et 100. Couleur du cercle Valeur 'oui' pour peindre l'acteur sinon 'non'. Ordre d'affichage sur la toile Valeur 'oui' pour afficher l'acteur sinon 'non'. Angle d'affichage en degr Coordonne x sur la toile Coordonne y sur la toile Texte afficher Taille maximum du texte Nom de la police Hauteur des caractres Valeur 'oui' pour afficher l'acteur sinon 'non'. Valeur entre 0 et 100. Couleur du point Ordre d'affichage sur la toile Angle d'affichage en degr Coordonne x sur la toile Coordonne y sur la toile Trace sur la toile si la valeur est 'oui' Affiche la pointe du stylo Valeur 'non' par dfaut Hauteur des caractres Valeur 'oui' pour afficher l'acteur sinon 'non'. Valeur entre 0 et 100. Couleur du point Ordre d'affichage sur la toile Angle d'affichage en degr

- 65 -

Dcouvrir la programmation avec le langage Linotte

parchemin parchemin parchemin parchemin parchemin parchemin parchemin parchemin parchemin parchemin

x y texte police taille visible transparence couleur position largeur

nombre nombre texte texte nombre texte nombre texte nombre nombre

Coordonne x sur la toile Coordonne y sur la toile Texte afficher Nom de la police Hauteur des caractres Valeur 'oui' pour afficher l'acteur sinon 'non'. Valeur entre 0 et 100. Couleur du point Ordre d'affichage sur la toile Largeur du parchemin

- 66 -

Dcouvrir la programmation avec le langage Linotte

B.ANIMATION DES ACTEURS


Linotte est un langage puissant. Je vais vous en donner la preuve car il est capable de pouvoir rivaliser avec les outils d'animation des studios Pixar6. A partir de maintenant, je vais vous expliquer comment faire la suite de Toy Story. Premirement, nous allons crer notre personnage Buzz L'clair :
buzz est un cercle, x vaut 57, y vaut 287, rayon vaut 10, taille vaut 20, couleur vaut "vert"

J'ai oubli de prciser que cette version demandera beaucoup d'imagination aux enfants... Maintenant, dposons Buzz dans son environnement :
Livre : Le voyage Paragraphe : Vers l'infini.... Les rles : buzz est un cercle, x vaut 57, y vaut 287, rayon vaut 10,taille vaut 20,couleur vaut "vert" espace est une toile, couleur vaut "noir" Les actions : tu effaces la toile tu projettes l'espace tu projettes buzz tu termines

Nous avons notre premire maquette ! Faisons voyager notre personnage dans l'espace pour ajouter un peu de piment notre histoire. Pour cela, nous allons utiliser le verbe dplacer. Ce verbe peut tre utilis de plusieurs faons. Voici la forme la plus simple :
Livre : Le voyage Paragraphe : Vers l'infini.... Les rles : buzz est un cercle,x vaut 57,y vaut 287, rayon vaut 10, taille vaut 20, couleur vaut "vert" espace est une toile, couleur vaut "noir" Les actions : tu effaces la toile tu projettes l'espace tu projettes buzz Pour chaque 250, tu dplaces buzz vers la droite de 2 tu termines

A chaque appel du verbe dplacer, notre personnage glisse vers la droite de deux pixels. Mais l'excution de ce livre, vous remarquez que Buzz a plutt fait une sorte de tltransportation qu'un glissement vers la droite ! Ceci est d la vitesse de lecture de l'interprte et aussi de la puissance de votre ordinateur. Pour ralentir son dplacement, nous allons insrer une pause aprs chaque action :

Je sais que ce n'est pas vrai, mais j'ai l'espoir que les responsables de Pixar lisent ces deux lignes et me proposent pour quelques millions de dollars de racheter Linotte... mme si le code source est libre ;-) J'ai bien le droit rver !

- 67 -

Dcouvrir la programmation avec le langage Linotte

Livre : Le voyage Paragraphe : Vers l'infini.... Les rles : buzz est un cercle,x vaut 57,y vaut 287, rayon vaut 10, taille vaut 20, couleur vaut "vert" espace est une toile, couleur vaut "noir" Les actions : tu effaces la toile tu projettes l'espace tu projettes buzz Pour chaque 250, tu parcours animation tu termines Paragraphe : animation Les rles : Buzz est un cercle Les actions : tu dplaces buzz vers la droite de 2 tu attends 10 millisecondes tu reviens

Nous avons termin Toy Story 4 ! Voici d'autres formes du verbe dplacer :
Tu dplaces Buzz vers la droite de x Tu dplaces Buzz vers le haut de x Tu dplaces Buzz vers le bas de x

La valeur x peut tre positive ou ngative. Nous avons galement une forme plus volue :
Tu dplaces Buzz de x et y

Voici notre animation modifie qui va permettre notre personnage de glisser sur l'axe horizontal et vertical.
Livre : Le voyage Paragraphe : Vers l'infini.... Les rles : buzz est un cercle,x vaut 57,y vaut 287, rayon vaut 10, taille vaut 20, couleur vaut "vert" espace est une toile, couleur vaut "noir" Les actions : tu effaces la toile tu projettes l'espace tu projettes buzz Pour chaque 250, tu parcours animation tu termines Paragraphe : animation Les rles : buzz est un cercle Les actions : tu dplaces buzz de 2 et -0.5 tu attends 10 millisecondes tu reviens

Voyons la dernire forme du verbe dplacer qui permet de positionner notre acteur vers une position prcise : Tu dplaces Buzz vers x et y
Livre : La danse de Buzz Paragraphe : Vers l'infini.... Les rles : buzz est un cercle,x vaut 57,y vaut 287, rayon vaut 10, taille vaut 20, couleur vaut "vert" espace est une toile, couleur est "noir" Les actions : tu effaces la toile tu projettes l'espace tu projettes buzz Pour chaque 250, tu parcours animation

- 68 -

Dcouvrir la programmation avec le langage Linotte

tu termines Paragraphe : animation Les rles : buzz est un cercle x est un nombre valant 600 y est un nombre valant 600 Les actions : tu mlanges x tu mlanges y tu dplaces buzz vers x et y tu attends 10 millisecondes tu reviens

Il est possible de dtecter si deux espces graphiques sont en collision. Pour cela, il faut utiliser la condition "est en collision". Cette condition va dtecter si les deux objets ont des pixels en commun. Attention, une image ou graffiti sont dtects comme des rectangles de la taille de l'image ou du graffiti ! Voici un exemple :
Livre : Collision Grands rles : centre est un cercle,x vaut 311,y vaut 285,couleur vaut "rouge",plein vaut "oui",rayon vaut 50 boule est un rectangle,largeur vaut 40, hauteur vaut 20, couleur vaut "noir", plein vaut "oui" Salle est une toile, couleur vaut "blanc" Paragraphe : Dcor Actions : Efface la toile Projette la salle Projette centre Projette boule Va vers action Paragraphe : action Actions : temporise dplace boule vers sourisx et sourisy si boule est en collision avec centre alors va vers touch couleur de centre vaut "rouge" va vers action Paragraphe : touch Actions : couleur de centre vaut "jaune" va vers action

Nous avons fait le tour de l'animation. Le prochain chapitre introduira l'interaction entre l'utilisateur et la toile. Vous m'avez compris... Business is business : aprs le film, il faut crer le jeu ! Au fait, si par le plus grand des hasards , un responsable de Pixar est entrain de lire ces lignes, vous pouvez toujours me contacter par mail...

- 69 -

Dcouvrir la programmation avec le langage Linotte

C.INTERAGIR AVEC L'UTILISATEUR


Nous allons maintenant nous intresser l'interaction entre l'interprte et un utilisateur (probablement vous !). Nous avons dj utiliser le verbe demander qui permet d'obtenir une information de l'utilisateur au format texte ou nombre. Avec la toile, nous allons augmenter d'un niveau l'interaction. Cette interaction est plus complique mais bien plus puissante. Nous allons intercepter maintenant les vnements lis la souris et au clavier. Le modle de Linotte a t conu pour tre le plus simple possible : il se fait en seulement deux tapes ! Premire tape, attendre qu'un vnement arrive :
Tu temporises

A la lecture de ce verbe, l'interprte s'arrte et attend qu'une touche soit enfonce ou alors que la souris bouge sur la toile. La deuxime tape consiste traiter l'vnement. Si la souris a t utilise alors nous avons deux acteurs particuliers notre disposition qui permettent de connatre la nouvelle position du pointeur : sourisx et sourisy. Passons un exemple pour mettre en pratique nos dcouvertes :
Livre : Position de la souris Paragraphe : Dcor Les rles : infox est un graffiti, infoy est un graffiti, Les actions : tu effaces la toile tu projettes infox tu projettes infoy tu vas vers affichage

x vaut 130, y vaut 260 x vaut vaut, y vaut 260

Paragraphe : Affichage Les rles : infox est un graffiti infoy est un graffiti Les actions : tu temporises texte de infox vaut sourisx texte de infoy vaut sourisy tu vas vers affichage

Nous savons exactement pister notre souris maintenant ! La gestion du clavier est identique celle de la souris. Nous utilisons le verbe temporiser et ensuite nous analysons l'vnement l'aide d'un autre acteur particulier : touche. touche retourne au format texte la dernire touche utilise.

- 70 -

Dcouvrir la programmation avec le langage Linotte

Attention, touche est l'coute de la toile en permanence lors de la lecture d'une livre. Il faut ainsi penser vider les touches mmorises dans le tampon. Le tampon est une partie de la mmoire de l'interprte qui contient toutes les touches actives et non traites. Appliquons la gestion des touches :
Livre : Gestion des touches en Linotte Paragraphe : Dcor Les rles : information est un graffiti, Les actions : tu effaces la toile tu projettes information tu vides les touches tu vas vers affichage

x vaut 211, y vaut 261

Paragraphe : Affichage Les rles : information est un graffiti action est un texte Les actions : tu temporises action vaut touche si action est vide alors tu vas vers affichage texte de l'information vaut action tu vas vers affichage

Vous trouverez la fin de ce recueil un exemple un peu plus difficile nomm Pong.liv. Il vous prouve que crer des jeux avec Linotte est tout fait possible et facile !

- 71 -

Dcouvrir la programmation avec le langage Linotte

D.PROGRAMMER EN LOGO
Avec Linotte, on peut s'amuser programmer en langage LOGO : en logo, nous avons une tortue, en Linotte, nous avons un crayon ! Une dizaine de verbes permettent de dessiner comme en LOGO : Tourner droite (TD) Tourner gauche (TG) Avancer (AV) Reculer (RE) Voici un exemple :
Livre : La maison Paragraphe : Dcor Les rles : ciel est une toile, couleur vaut "blanc", pointeur vaut "main" c1 est un crayon, couleur vaut "brique", x vaut 295, y vaut 225, ... taille vaut 2,pointe vaut "oui", pos vaut "oui" Les actions : Tu effaces la toile Tu projettes le ciel Tu projettes c1 Tu dplaces c1 vers la gauche de 50 Tu dplaces c1 vers le bas de 50 Tu dplaces c1 vers la droite de 50 Tu dplaces c1 vers le haut de 50 Couleur de c1 vaut "ardoise" Taille de c1 vaut 3 Tu dplaces c1 de -25 et -25 Tu dplaces c1 de -25 et 25 Pos de c1 vaut "non" Tu dplaces c1 de 20 et 50 Couleur de c1 vaut "noir" Taille de c1 vaut 1 Pos de c1 vaut "oui" Tu dplaces c1 de 0 et -20 Tu dplaces c1 de 10 et 0 Tu dplaces c1 de 0 et 20 Pointe de c1 vaut "non" Tu termines

L'avantage de programmer du logo en Linotte est de disposer de tous les autres verbes Linotte: dplacer vers, dplacer vers la gauche, etc. et aussi de pouvoir afficher sur la toile autant de crayons que l'on souhaite ! Regarder l'exemple suivant qui dessine 3 flocons de Van Koch en mme temps !
Livre : Les flocons de Van Koch ("http://xlogo.tuxfamily.org/fr/examples-fr.html") Grands c1 est c2 est c3 est rles : un crayon, couleur vaut "rouge", x vaut 350, y vaut 230, taille vaut 4, angle vaut 90 un crayon, couleur vaut "noir", x vaut 350, y vaut 230, taille vaut 3, angle vaut 90 un crayon, couleur vaut "vert", x vaut 350, y vaut 230, taille vaut 1, angle vaut 90

Paragraphe : Dbut Actions : efface la toile appelle D1 attends 1 seconde appelle D2 attends 1 seconde appelle D3 observe D1

- 72 -

Dcouvrir la programmation avec le langage Linotte

observe D2 observe D3 termine Paragraphe : D1 Actions : parcours commencer avec c1, 6 Reviens Paragraphe : D2 Actions : parcours commencer avec c2, 6 Reviens Paragraphe : D3 Actions : parcours commencer avec c3, 6 Reviens Paragraphe : Commencer Rles : *tortue est un crayon *pas est un nombre Actions : projette la tortue parcours flocon avec tortue, 200, pas pointe de tortue vaut "non" reviens Paragraphe : Flocon Rles : *tortue est un crayon *longueur est un nombre *pas est un nombre Actions : pour chaque 3, lis parcours ligne avec tortue, longueur , pas tourne droite tortue de 120 ferme reviens Paragraphe : Ligne Rles : *tortue est un crayon *longueur est un nombre *pas est un nombre Actions : si pas est gal 0 alors avance tortue de longueur sinon, lis parcours ligne avec tortue, longueur / 3, pas - 1 tourne gauche tortue de 60 parcours ligne avec tortue, longueur / 3, pas - 1 tourne droite tortue de 120

ferme reviens

parcours ligne avec tortue, longueur / 3, pas - 1 tourne gauche tortue de 60 parcours ligne avec tortue, longueur / 3, pas - 1

- 73 -

Dcouvrir la programmation avec le langage Linotte

VI.LE VERBIER
Le verbier est une liste prsentant tous les verbes interprtables dans le langage Linotte. Maintenant, libre vous de le parcourir et d'essayer les exemples proposs pour dcouvrir toutes les richesses du langage ! N'oubliez pas de venir sur le forum du Langage Linotte pour proposer vos crations ! C'est ici : http://langagelinotte.free.fr/punbb/viewforum.php?id=9

- 74 -

Dcouvrir la programmation avec le langage Linotte

Afficher

SYNOPSIS :
TODO Tu affiches <article> <acteur> acteur : nombre, texte, espce

SYNONYME :
<article> <acteur> !

DESCRIPTION :
Affiche sur l'cran la valeur de acteur

EXEMPLE :
Livre : exemple d'utilisation du verbe afficher Paragraphe: exemple Les rles : Message est un texte valant "Bravo, " Message2 est un texte valant "a fonctionne !" Les actions : Tu affiches le message Message2 ! Tu termines

VOIR AUSSI :
Demander, Questionner

- 75 -

Dcouvrir la programmation avec le langage Linotte

Demander

SYNOPSIS :
Tu demandes <article> <acteur> acteur : nombre, texte

SYNONYME :
<article> <acteur> ?

DESCRIPTION :
Demande une valeur et l'affecte acteur

EXEMPLE :
Livre : exemple d'utilisation du verbe demander Paragraphe: exemple Les rles : ge est un nombre vide Les actions : "Quel est ton ge ? " ! Tu demandes l' ge "Tu fais bien jeune avec tes" ! Tu affiches l' ge Tu termines

VOIR AUSSI :
Afficher, Questionner

- 76 -

Dcouvrir la programmation avec le langage Linotte

Questionner

SYNOPSIS :
Tu questionnes <article1> <acteur1> sur <article2> <acteur2> acteur1 : nombre, texte acteur2 : nombre, texte

SYNONYME : DESCRIPTION :
Affiche le texte acteur2 et demande une valeur et l'affecte acteur1

EXEMPLE :
Livre : exemple d'utilisation du verbe questionner Paragraphe: exemple Les rles : ge est un nombre vide Les actions : Tu questionnes l' ge sur "Quel est ton ge ? " Tu affiches "Tu fais bien jeune avec tes " + ge Tu termines

VOIR AUSSI :
Afficher, Demander

- 77 -

Dcouvrir la programmation avec le langage Linotte

Aller

SYNOPSIS :
Tu vas vers <article> <paragraphe>

SYNONYME : DESCRIPTION :
Demande l'interprte de se positionner sur le paragraphe indiqu.

EXEMPLE :
Livre : exemple d'utilisation du verbe aller Paragraphe: exemple Les rles : Message est un texte valant "Pas de piti pour les" Les actions : tu affiches le message Tu vas vers la suite Paragraphe: suite Les rles : Message est un texte valant "croissants !" Les actions : Tu affiches le message Tu termines

VOIR AUSSI :
Revenir, Appeler, Parcourir

- 78 -

Dcouvrir la programmation avec le langage Linotte

Copier

SYNOPSIS :
Tu copies <article> <acteur1> dans <article> <acteur2> acteur1 : nombre, texte, casier acteur2 : nombre, texte, casier

SYNONYME : DESCRIPTION :
Transfre une valeur d'un acteur un autre. Acteur1 et acteur2 doivent avoir le mme rle.

EXEMPLE :
Livre : exemple d'utilisation du verbe copier Paragraphe: exemple Les rles : Message est un texte valant "Quel est ton nom ?" Nom est un texte vide Valeur copie est un texte vide Les actions : Tu affiches le message Tu demandes le nom Tu copies le nom dans la valeur copie Tu affiches la valeur copie Tu termines

VOIR AUSSI :
Valoir

- 79 -

Dcouvrir la programmation avec le langage Linotte

Mesurer

SYNOPSIS :
Tu mesures <article> <acteur1> dans <article> <acteur2> acteur1 : texte, casier acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet de comptabiliser le nombre d'lments dans acteur1 et affecte ce nombre dans acteur2. Si acteur1 est un texte, acteur2 contiendra le nombre de caractres. Si acteur1 est un casier, acteur2 contiendra le nombre d'acteurs dans le casier.

EXEMPLE :
Livre : exemple d'utilisation du verbe mesurer Paragraphe : exemple Les rles : Message est un texte valant "Voici mon message!" Compteur est un nombre vide Les actions : Tu mesures le message dans le compteur Tu affiches le compteur Tu termines

VOIR AUSSI :

- 80 -

Dcouvrir la programmation avec le langage Linotte

Vider

SYNOPSIS :
Tu vides <article> <acteur> acteur : nombre, texte, casier

SYNONYME : DESCRIPTION :
Si acteur est un nombre, il affecte 0 acteur. Si acteur est un texte, il affecte le texte vide acteur. Si acteur est un casier, il vide le casier.

EXEMPLE :
Livre : exemple d'utilisation du verbe vider Paragraphe: exemple Les rles : Message est un texte valant "Voici mon message normalement !" Les actions : Tu vides le message Tu affiches le message Tu termines

VOIR AUSSI :

- 81 -

Dcouvrir la programmation avec le langage Linotte

Ajouter

SYNOPSIS :
Tu ajoutes <article> <acteur1> dans <article> <acteur2> acteur1 : nombre, texte, casier acteur2 : nombre, texte, casier

SYNONYME : DESCRIPTION :
Si acteur1 est un nombre, acteur2 peut tre un nombre ou un casier. Si acteur1 est un texte, acteur2 peut tre un texte ou un casier. Si acteur1 est un casier, acteur2 doit tre un casier.

EXEMPLE :
Livre : exemple d'utilisation du verbe ajouter Paragraphe: exemple Les rles : Tab1 est un casier de texte valant "e" , "f" , "g" Tab2 est un casier de texte valant "a" , "b" , "c" Les actions : Tu ajoutes tab1 dans tab2 Pour chaque tab2 , tu affiches le 'joker' Tu termines

VOIR AUSSI :
Concatner

- 82 -

Dcouvrir la programmation avec le langage Linotte

Concatner

SYNOPSIS :
Tu concatnes <article1> <acteur1> , ... , <articleN> <acteurN> dans <article> <acteurCible> acteur1 acteurN : nombre, texte acteurCible: texte

SYNONYME : DESCRIPTION :
Permet de concatner des chanes et des nombres dans une unique chane. La liste des acteurs concatner est infinie.

EXEMPLE :
Livre : exemple d'utilisation du verbe concatner Paragraphe: exemple Les actions : De 1 5, tu vas vers l'affichage Tu termines Paragraphe : l'affichage Les rles : message est un texte Les actions : Tu concatnes "Je passe " , le joker , " fois !" dans message Tu affiches le message Tu concatnes le joker , " fois de trop !" dans message Tu affiches le message Tu reviens

VOIR AUSSI :
Ajouter

- 83 -

Dcouvrir la programmation avec le langage Linotte

Revenir

SYNOPSIS :
Tu reviens

SYNONYME : DESCRIPTION :
Permet de revenir au point de dpart aprs l'utilisation du verbe appeler ou parcourir

EXEMPLE :
Livre : exemple d'utilisation du verbe revenir Paragraphe: exemple Les rles : Compteur est un nombre valant 10 Les actions : Pour chaque compteur, tu parcours la suite Tu termines Paragraphe: suite Les actions : Tu affiches le 'joker' Tu reviens

VOIR AUSSI :
Parcourir, Appeler

- 84 -

Dcouvrir la programmation avec le langage Linotte

Terminer

SYNOPSIS :
Tu termines

SYNONYME : DESCRIPTION :
Permet d'arrter la lecture d'un livre

EXEMPLE :
Livre : exemple d'utilisation du verbe terminer Paragraphe: exemple Les rles : N est nombre valant 10 Les actions : Pour chaque N, tu lis Tu termines Tu fermes

VOIR AUSSI :

- 85 -

Dcouvrir la programmation avec le langage Linotte

Mlanger

SYNOPSIS :
Tu mlanges <article> <acteur> acteur : nombre, texte, casier

SYNONYME : DESCRIPTION :
Si acteur est un nombre, le verbe renvoie un nombre alatoire entre 0 et la valeur de l'acteur. Si acteur est un texte, le verbe mlange les lettres du texte. Si acteur est un casier, le verbe mlange les lments du casier.

EXEMPLE :
Livre : exemple d'utilisation du verbe mlanger Paragraphe: exemple Les rles : Nom est un texte vide Les actions : Tu affiches "Quel est ton nom ?" Tu demandes le nom Tu mlanges le nom Tu affiches "Bonjour, " Tu affiches le nom Tu termines

VOIR AUSSI :

- 86 -

Dcouvrir la programmation avec le langage Linotte

Inverser

SYNOPSIS :
Tu inverses <article> <acteur> acteur : texte, casier

SYNONYME : DESCRIPTION :
Si acteur est un texte, inverse les lettres du texte. Si acteur est un casier, inverse les lments du tableau

EXEMPLE :
Livre : exemple d'utilisation du verbe inverser Paragraphe: exemple Les rles : Nom est un texte vide Les actions : Tu affiches "Quel est ton nom ?" Tu demandes le nom Tu inverses le nom Tu affiches "Bonjour, " Tu affiches le nom Tu termines

VOIR AUSSI :

- 87 -

Dcouvrir la programmation avec le langage Linotte

Insrer

SYNOPSIS :
Tu insres <article1> <acteur1> partir de <article2> <acteur2> dans <article3> <acteur3> acteur1 : texte, nombre acteur2 : nombre acteur3 : casier de texte, texte, casier de nombre

SYNONYME : DESCRIPTION :
Permet d'insrer un lment acteur1 dans partir de la position acteur2 dans acteur3.

EXEMPLE :
Livre : exemple d'utilisation du verbe insrer Les grands rles : Texte est un texte avec un texte de dmonstration Tableau est un casier de nombre valant 1 , 2 , 5, 7, 9 Rsultat est un texte valant "Voici " Tableau rsultat est un casier de nombre valant 10 , 15, 20 Paragraphe : exemple Les actions : Tu insres rsultat partir de 1 dans le texte Tu insres tableau rsultat partir de 2 dans le tableau Tu affiches le texte Pour chaque tableau, tu affiches le 'joker' Tu termines

VOIR AUSSI :

- 88 -

Dcouvrir la programmation avec le langage Linotte

Extraire

SYNOPSIS :
Tu extrais de <article1> <acteur1> partir de <article2> <acteur2> <article3> <acteur3> dans <article4> <acteur4> article1 : texte, casier article2 : nombre article3 : nombre article4 : texte, casier

SYNONYME : DESCRIPTION :
Permet d'extraire des lments d'un casier ou d'une texte

EXEMPLE :
Livre : exemple d'utilisation du verbe extraire Les grands rles : Texte est un texte valant "Voici un texte de dmonstration" Tableau est un casier de nombre valant 1 , 2 , 5, 7, 9 Rsultat est un texte vide Tableau rsultat est un casier de nombre vide Paragraphe : exemple Les actions : Tu extrais de texte partir de 1 7 dans le rsultat Tu extrais de tableau partir de 2 4 dans le tableau rsultat Tu affiches le rsultat Pour chaque tableau rsultat, tu affiches le 'joker' Tu termines

VOIR AUSSI :

- 89 -

Dcouvrir la programmation avec le langage Linotte

Chercher

SYNOPSIS :
Tu cherches <article1> <acteur1> , la position de <article2> <acteur2> dans <article3> <acteur3> acteur1 : nombre acteur2 : texte, nombre acteur3 : texte, casier

SYNONYME : DESCRIPTION :
Permet de rechercher la position d'un lment dans un texte ou un casier, le rsultat de la recherche est stock dans acteur1

EXEMPLE :
Livre : exemple d'utilisation du verbe rechercher Les grands rles : Texte est un texte valant "Voici un texte de dmonstration" Tableau est un casier de texte valant toto, titi, texte, txt lment est un texte valant "texte" Rsultat est un nombre vide Tableau nombre est un casier de nombre valant 45, 44, 98, 1 lment nombre est un nombre valant 98 Paragraphe : exemple Les actions : (texte avec texte) Tu cherches le rsultat, la position de l' lment dans le texte Tu affiches le rsultat (texte avec un casier de texte) Tu cherches le rsultat, la position de l' lment dans le tableau Tu affiches le rsultat (nombre avec un casier de nombre) Tu cherches le rsultat, la position de l' lment nombre dans le tableau nombre Tu affiches le rsultat Tu termines

VOIR AUSSI :

- 90 -

Dcouvrir la programmation avec le langage Linotte

Trier

SYNOPSIS :
Tu tries <article> <acteur> acteur : casier

SYNONYME : DESCRIPTION :
Permet de trier un casier : Si acteur est un casier de texte : dans l'ordre croissant alphabtique. Si acteur est un casier de nombre : dans l'ordre croissant numrique.

EXEMPLE :
Livre : exemple d'utilisation du verbe trier Paragraphe: exemple Les rles : Tableau est un casier de texte valant "Bruno" , "Arnaud" , "Ronan", "Alban" Les actions : Tu tries le tableau Pour chaque tableau, tu affiches le 'joker' Tu termines

VOIR AUSSI :

- 91 -

Dcouvrir la programmation avec le langage Linotte

Attendre

SYNOPSIS :
Tu attends <article> <acteur> secondes ou Tu attends <article> <acteur> millisecondes

SYNONYME : DESCRIPTION :
Permet d'attendre le dlais fix en secondes ou en millisecondes.

EXEMPLE :
Livre : exemple d'utilisation du verbe attendre Paragraphe : exemple Les actions : "On va attendre 5 secondes" ! tu attends 5 secondes "On va attendre 2 secondes" ! Tu attends 2000 millisecondes "ok" ! Tu termines

VOIR AUSSI :

- 92 -

Dcouvrir la programmation avec le langage Linotte

Diviser

SYNOPSIS :
Tu divises <article1> <acteur1> par <article2> <acteur2> acteur1 : nombre acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet de diviser acteur1 par acteur2 et affecte le rsultat dans acteur1

EXEMPLE :
Livre : exemple d'utilisation du verbe diviser Paragraphe: exemple Les rles : Valeur est un nombre valant 100 Les actions : Tu divises la valeur par 2 Tu affiches la valeur Tu termines

VOIR AUSSI :

- 93 -

Dcouvrir la programmation avec le langage Linotte

Multiplier

SYNOPSIS :
Tu multiplies <article1> <acteur1> par <article2> <acteur2> acteur1 : nombre acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet de multiplier acteur1 par acteur2 est affecte la valeur dans acteur1.

EXEMPLE :
Livre : exemple d'utilisation du verbe multiplier Paragraphe: exemple Les rles : Valeur est un nombre valant 100 Les actions : Tu multiplies la valeur par 2 Tu affiches la valeur Tu termines

VOIR AUSSI :

- 94 -

Dcouvrir la programmation avec le langage Linotte

Soustraire

SYNOPSIS :
Tu soustrais <article1> <acteur1> dans <article2> <acteur2> acteur1 : nombre acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet de soustraire acteur1 dans acteur2 et affecte la valeur dans acteur2

EXEMPLE :
Livre : exemple d'utilisation du verbe soustraire Paragraphe: exemple Les rles : Valeur est un nombre valant 100 Les actions : Tu soustrais 60 dans la valeur Tu affiches la valeur Tu termines

VOIR AUSSI :

- 95 -

Dcouvrir la programmation avec le langage Linotte

Jouer

SYNOPSIS :
tu joues le <article1> <acteur1> acteur1 : texte ou casier

SYNONYME : DESCRIPTION :
Permet de jouer un son. Valeurs possibles pour acteur1 : "Do", "Re", "Mi", "Fa", "Sol", "La", "Si" Permet galement de jouer un son wav, ogg.

EXEMPLE :
Livre : exemple d'utilisation du verbe jouer Paragraphe: exemple Les actions : Tu joues le "do" Tu joues le "sons/cloche.wav" Tu termines

VOIR AUSSI :

- 96 -

Dcouvrir la programmation avec le langage Linotte

Projeter

SYNOPSIS :
tu projettes <article> <acteur> acteur : espce graphique

SYNONYME : DESCRIPTION :
Permet d'afficher un acteur sur la toile et affecte la valeur oui sa caractristique visible.

EXEMPLE :
Livre : exemple d'utilisation du verbe projeter Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu termines

VOIR AUSSI :

- 97 -

Dcouvrir la programmation avec le langage Linotte

Dplacer vers la gauche

SYNOPSIS :
tu dplaces <article1> <acteur1> vers la gauche de <article2> <acteur2> acteur1 : espce graphique acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet de dplacer vers la gauche une espce graphique

EXEMPLE :
Livre : exemple d'utilisation dplacer vers la gauche Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu attends 1 seconde Tu dplaces le point vers la gauche de 10 Tu termines

VOIR AUSSI :

- 98 -

Dcouvrir la programmation avec le langage Linotte

Dplacer vers la droite

SYNOPSIS :
tu dplaces <article1> <acteur1> vers la droite de <article2> <acteur2> acteur1 : espce graphique acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet de dplacer vers la droite une espce graphique

EXEMPLE :
Livre : exemple d'utilisation dplacer vers la droite Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu attends 1 seconde Tu dplaces le droite vers la gauche de 10 Tu termines

VOIR AUSSI :

- 99 -

Dcouvrir la programmation avec le langage Linotte

Dplacer vers le bas

SYNOPSIS :
tu dplaces <article1> <acteur1> vers le bas de <article2> <acteur2> acteur1 : espce graphique acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet de dplacer vers le bas une espce graphique

EXEMPLE :
Livre : exemple d'utilisation dplacer vers le bas Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu attends 1 seconde Tu dplaces le point vers le bas de 10 Tu termines

VOIR AUSSI :

- 100 -

Dcouvrir la programmation avec le langage Linotte

Dplacer vers le haut

SYNOPSIS :
tu dplaces <article1> <acteur1> vers le haut de <article2> <acteur2> acteur1 : espce graphique acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet de dplacer vers le haut une espce graphique

EXEMPLE :
Livre : exemple d'utilisation dplacer vers le haut Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu attends 1 seconde Tu dplaces le point vers le haut de 10 Tu termines

VOIR AUSSI :

- 101 -

Dcouvrir la programmation avec le langage Linotte

Dplacer de

SYNOPSIS :
tu dplaces <article1> <acteur1> de <article2> <acteur2> et <article3> <acteur3> acteur1 : espce graphique acteur2 : nombre acteur3 : nombre

SYNONYME : DESCRIPTION :
Permet une translation de acteur1 de acteur2 et acteur3

EXEMPLE :
Livre : exemple d'utilisation dplacer de Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu attends 1 seconde Tu dplaces le point de 20 et -20 Tu termines

VOIR AUSSI :

- 102 -

Dcouvrir la programmation avec le langage Linotte

Dplacer vers

SYNOPSIS :
tu dplaces <article1> <acteur1> vers <article2> <acteur2> et <article3> <acteur3> acteur1 : espce graphique acteur2 : nombre acteur3 : nombre

SYNONYME : DESCRIPTION :
Permet de dplacer acteur1 vers les coordonnes article2 et article3

EXEMPLE :
Livre : exemple d'utilisation dplacer vers Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu attends 1 seconde Tu dplaces le point vers 300 et 260 Tu termines

VOIR AUSSI :

- 103 -

Dcouvrir la programmation avec le langage Linotte

Tourner gauche

SYNOPSIS :
tu tournes gauche <article1> <acteur1> de <article2> <acteur2> acteur1 : espce graphique acteur2 : nombre

SYNONYME : DESCRIPTION :
Change l'angle d'une espce graphique contenant la caractristique 'angle'.

EXEMPLE :
Livre : exemple d'utilisation tourner gauche Paragraphe : dbut Rles : t est un graffiti, x vaut 130, y vaut 223, texte vaut "J'ai mal la tte !" Actions : efface la toile projette t tant que 1 est diffrent de 2, lis tourne gauche t de 1 attends 0.01 seconde ferme

VOIR AUSSI :

- 104 -

Dcouvrir la programmation avec le langage Linotte

Tourner droite

SYNOPSIS :
tu tournes droite <article1> <acteur1> de <article2> <acteur2> acteur1 : espce graphique acteur2 : nombre

SYNONYME : DESCRIPTION :
Change l'angle d'une espce graphique contenant la caractristique 'angle'.

EXEMPLE :
Livre : exemple d'utilisation tourner droite Paragraphe : dbut Rles : t est un graffiti, x vaut 130, y vaut 223, texte vaut "J'ai mal la tte !" Actions : efface la toile projette t tant que 1 est diffrent de 2, lis tourne droite t de 1 attends 0.01 seconde ferme

VOIR AUSSI :

- 105 -

Dcouvrir la programmation avec le langage Linotte

Avancer

SYNOPSIS :
tu avances <article1> <acteur1> de <article2> <acteur2> acteur1 : espce graphique acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet la translation de 'acteur1' suivant la caractristique 'angle' de 'acteur2' pixels

EXEMPLE :
Livre : exemple d'utilisation avancer de Paragraphe: exemple Les rles : point est un crayon, angle vaut 45, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu attends 1 seconde Tu avances le point de 50 Tu termines

VOIR AUSSI :

- 106 -

Dcouvrir la programmation avec le langage Linotte

Reculer

SYNOPSIS :
tu recules <article1> <acteur1> de <article2> <acteur2> acteur1 : espce graphique acteur2 : nombre

SYNONYME : DESCRIPTION :
Permet la translation de 'acteur1' suivant la caractristique - 'angle' de 'acteur2' pixels

EXEMPLE :
Livre : exemple d'utilisation reculer de Paragraphe: exemple Les rles : point est un crayon, angle vaut 45, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu attends 1 seconde Tu recules le point de 50 Tu termines

VOIR AUSSI :

- 107 -

Dcouvrir la programmation avec le langage Linotte

Temporiser

SYNOPSIS :
tu temporises

SYNONYME : DESCRIPTION :
Attend un vnement sur la toile : mouvement de la souris ou activation d'une touche.

EXEMPLE :
Livre : exemple d'utilisation du verbe temporiser Paragraphe: exemple Les actions : Tu temporises Tu affiches "Il ne fallait pas bouger !" Tu termines

VOIR AUSSI :

- 108 -

Dcouvrir la programmation avec le langage Linotte

Temporiser n secondes

SYNOPSIS :
tu temporises <article1> <acteur1> secondes acteur1 : nombre

SYNONYME : DESCRIPTION :
Attend un vnement sur la toile : mouvement de la souris ou activation d'une touche.

EXEMPLE :
Livre : exemple d'utilisation du verbe temporiser n secondes Paragraphe: exemple Les actions : Tu temporises 4 secondes Tu affiches "Il ne fallait pas bouger !" Tu termines

VOIR AUSSI :

- 109 -

Dcouvrir la programmation avec le langage Linotte

Effacer

SYNOPSIS :
tu effaces <article> <acteur> acteur : espce graphique

SYNONYME : DESCRIPTION :
Permet d'effacer un acteur de la toile. L'acteur n'est pas supprim de la mmoire, sa caractristique visible est affecte non.

EXEMPLE :
Livre : exemple d'utilisation dplacer verbe effacer Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 Les actions : Tu projettes le point Tu attends 1 seconde Tu effaces le point Tu termines

VOIR AUSSI :

- 110 -

Dcouvrir la programmation avec le langage Linotte

Effacer la toile

SYNOPSIS :
tu effaces <article> toile

SYNONYME : DESCRIPTION :
Permet d'effacer tous les acteurs de la toile. Les acteurs ne sont pas supprims de la mmoire, leur caractristique visible est affecte non.

EXEMPLE :
Livre : exemple d'utilisation du verbe effacer la toile Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 cercle est un cercle, x vaut 237, y vaut 239, rayon vaut 20 Les actions : Tu projettes le point Tu projettes le cercle Tu attends 1 seconde Tu effaces la toile Tu termines

VOIR AUSSI :

- 111 -

Dcouvrir la programmation avec le langage Linotte

Effacer le tableau

SYNOPSIS :
tu effaces <article> tableau

SYNONYME : DESCRIPTION :
Permet de nettoyer le tableau.

EXEMPLE :
Livre : exemple d'utilisation du verbe effacer le tableau Paragraphe: exemple Les actions : Tu affiches "Coucou ! " Tu attends 1 seconde Tu effaces le tableau Tu termines

VOIR AUSSI :

- 112 -

Dcouvrir la programmation avec le langage Linotte

Rafrachir

SYNOPSIS :
tu rafrachis

SYNONYME : DESCRIPTION :
Si le buffer automatique est dsactiv, ce verbe demande la toile de mettre jour l'affichage des acteurs.

EXEMPLE : VOIR AUSSI :

- 113 -

Dcouvrir la programmation avec le langage Linotte

Modifier

SYNOPSIS :
tu modifies <article1> <acteur1> par <article2> <acteur2> dans <article3> <acteur3> De <article4> <acteur4> acteur1 : espce tube acteur2 : texte acteur3 : texte acteur4 : texte

SYNONYME : DESCRIPTION :
Ce verbe permet de modifier un greffon graphique.

EXEMPLE : VOIR AUSSI :

- 114 -

Dcouvrir la programmation avec le langage Linotte

Photographier dans

SYNOPSIS :
tu photographies dans <article> <acteur> acteur : texte

SYNONYME : DESCRIPTION :
Permet d'enregistrer une copie de la toile dans fichier image sur votre disque dur. Acteur reprsente le nom du fichier. Linotte ajoute automatiquement la fin du fichier l'extension " .png "

EXEMPLE :
Livre : exemple d'utilisation du verbe photographier dans Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 cercle est un cercle, x vaut 237, y vaut 239, rayon vaut 20 Les actions : Tu projettes le point Tu projettes le cercle Tu photographies dans "ma toile" Tu termines

VOIR AUSSI :

- 115 -

Dcouvrir la programmation avec le langage Linotte

Vider les touches

SYNOPSIS :
tu vides <article> touches

SYNONYME : DESCRIPTION :
Permet de vider le tampon des touches.

EXEMPLE :
Livre : exemple d'utilisation du verbe vider les touches Paragraphe: exemple Les rles : point est un point, x vaut 237, y vaut 239, taille vaut 10 cercle est un cercle, x vaut 237, y vaut 239, rayon vaut 20 Les actions : Tu affiches "Appuyez sur un maximum de touches en 1 seconde !" Tu attends 2 secondes Tu vides les touches Tu affiches touche Tu termines

VOIR AUSSI :

- 116 -

Dcouvrir la programmation avec le langage Linotte

Crer

SYNOPSIS :
tu cres <article1> <texte1> un texte tu cres <article1> <texte1> un nombre tu cres <article1> <texte1> un acteur <article2> <texte2> tu cres <article1> <texte1> un casier de texte tu cres <article1> <texte1> un casier de nombre tu cres <article1> <texte1> un casier de <article2> <texte2> acteur1 : texte acteur2 : texte

SYNONYME : DESCRIPTION :
Permet de crer des acteurs dynamiquement. Acteur1 est le nom de l'acteur et acteur2 et le nom de l'espce.

EXEMPLE :
Voir le chapitre sur la cration des acteurs dynamiquement.

VOIR AUSSI :

- 117 -

Dcouvrir la programmation avec le langage Linotte

Convertir

SYNOPSIS :
tu convertis <article1> <texte1> en <article2> <texte2> acteur1 : texte, nombre acteur2 : texte, texte

SYNONYME : DESCRIPTION :
Permet de convertir la valeur d'un acteur vers un autre rle.

EXEMPLE :
Livre : exemple d'utilisation du verbe convertir Paragraphe: exemple Les rles : nombre 1 est un texte valant "53" nombre 2 est un nombre vide Les actions : Tu convertis nombre 1 en nombre 2 Tu affiches nombre 2 - 3 Tu termines

VOIR AUSSI :

- 118 -

Dcouvrir la programmation avec le langage Linotte

Parcourir

SYNOPSIS :
tu parcours <article1> <texte1> texte1 : paragraphe

SYNONYME : DESCRIPTION :
Ce verbe permet d'aller dans un paragraphe en mmorisant le point de dpart. Ce verbe s'utilise conjointement avec le verbe Revenir.

EXEMPLE :
Livre : exemple d'utilisation du verbe parcourir Paragraphe: exemple Les actions : Tu parcours label Tu affiches "Non, je suis l !" Tu termines Paragraphe : Label Les actions : Tu affiches "Je suis ici !" Tu reviens

VOIR AUSSI :
Revenir, Aller, Appeler

- 119 -

Dcouvrir la programmation avec le langage Linotte

Parcourir avec

SYNOPSIS :
tu parcours <article1> <texte1> avec <article2> <acteur2> , . , <articleN> <acteurN> texte1 : paragraphe acteur2 acteurN: texte, nombre, casier, espce

SYNONYME : DESCRIPTION :
Ce verbe permet d'aller dans un paragraphe en mmorisant le point de dpart. Ce verbe s'utilise conjointement avec le verbe Revenir.

EXEMPLE :
Livre : exemple d'utilisation du verbe parcourir avec Paragraphe: exemple Les actions : Tu parcours label avec "Je suis ici !" Tu affiches "Non, je suis l !" Tu termines Paragraphe : Label Les rles : *valeur est un texte Les actions : Tu affiches valeur Tu reviens

VOIR AUSSI :
Revenir, Aller, Appeler

- 120 -

Dcouvrir la programmation avec le langage Linotte

Explorer

SYNOPSIS :
tu explores <texte>

SYNONYME : DESCRIPTION :
Communique des messages vers le systme d'exploitation, Les messages possibles sont : Pour ouvrir le navigateur internet : internet http://... Pour ouvrir le client mail avec une adresse particulire : courrier mail@mail.com Pour ouvrir un fichier avec le logiciel adquate : ouvrir c:/... Pour imprimer un fichier : imprimer c:/... Pour ouvrir un fichier en mode dition : editer c:/...

EXEMPLE :
Livre : exemple d'utilisation du verbe explorer Paragraphe : exemple Actions : Tu explores "internet http://www.javasoft.com" Tu termines

VOIR AUSSI :

- 121 -

Dcouvrir la programmation avec le langage Linotte

ter de

SYNOPSIS :
tu tes <article1> <acteur1> de <article2> <acteur2> acteur1 : texte,nombre,espce acteur2 : casier

SYNONYME : DESCRIPTION :
Permet de supprimer un acteur d'un casier.

EXEMPLE :
Livre : exemple d'utilisation du verbe ter de Paragraphe : exemple Rles : langage est un casier de texte valant "java", "c++", "basic" Actions : Pour chaque langage, lis Si joker est gal "basic" alors tu tes joker de langage Ferme Tu affiches langage Tu termines

VOIR AUSSI :

- 122 -

Dcouvrir la programmation avec le langage Linotte

Valoir

SYNOPSIS :
<article> <acteur1> vaut <article> <acteur2> acteur1 : nombre, texte acteur2 : nombre, texte

SYNONYME : DESCRIPTION :
Transfre une valeur d'un acteur un autre. Acteur1 et acteur2 doivent avoir le mme rle. On peut galement l'utiliser pour effectuer des calculs simples.

EXEMPLE :
Livre : exemple d'utilisation du verbe valoir Paragraphe: exemple Les rles : Valeur1 est un texte valant "Je suis l !" Valeur2 est un texte vide Valeur3 est un nombre vide Les actions : Tu affiches "Valeur de valeur1 : " + valeur1 Valeur1 vaut valeur2 Tu affiches "Nouvelle valeur de valeur1 : " + valeur1 Valeur3 = 45 + 5 3 / 2 Tu affiches "Valeur de valeur3 : " + valeur3 Tu termines

VOIR AUSSI :

- 123 -

Dcouvrir la programmation avec le langage Linotte

Stimuler

SYNOPSIS :
tu stimules <article> <acteur1> acteur1 : espce graphique scribe

SYNONYME : DESCRIPTION :
Ce verbe permet de rveiller un scribe.

EXEMPLE :
Livre : exemple d'utilisation du verbe stimuler Paragraphe : exemple Les rles : Crayon est un scribe, x est 196, y est 253, couleur est "noir" Les actions : Tu effaces la toile Tu projettes le crayon Tu stimules le crayon Tu temporises Tu affiches le texte de crayon Tu termines

VOIR AUSSI :

- 124 -

Dcouvrir la programmation avec le langage Linotte

Lire

SYNOPSIS :
tu lis

SYNONYME : DESCRIPTION :
Ouvre un sous paragraphe. Il s'utilise conjointement avec le verbe Fermer.

EXEMPLE :
Livre : exemple d'utilisation du verbe lire Paragraphe : exemple Les actions : Pour chaque 10, tu lis Tu affiches le joker + 1 Tu fermes Tu termines

VOIR AUSSI :
Fermer

- 125 -

Dcouvrir la programmation avec le langage Linotte

Fermer

SYNOPSIS :
tu fermes

SYNONYME : DESCRIPTION :
Ferme un sous paragraphe. Il s'utilise conjointement avec le verbe Ouvrir.

EXEMPLE :
Livre : exemple d'utilisation du verbe lire Paragraphe : exemple Les actions : Pour chaque 10, tu lis Tu affiches le joker + 1 Tu fermes Tu termines

VOIR AUSSI :
Ouvrir

- 126 -

Dcouvrir la programmation avec le langage Linotte

valuer

SYNOPSIS :
Tu values <article> <acteur1> acteur1 : texte

SYNONYME : DESCRIPTION :
Ce verbe permet d'valuer une chane mathmatique compatible avec la syntaxe Linotte.

EXEMPLE :
Livre : exemple d'utilisation du verbe valuer Paragraphe : exemple Les rles : valeur est un texte valant "carr (5 + cos 6)" Les actions : Tu affiches "avant : " + valeur Tu values la valeur Tu affiches "aprs : " + la valeur Tu termines

VOIR AUSSI :
Convertir

- 127 -

Dcouvrir la programmation avec le langage Linotte

Appeler

SYNOPSIS :
Tu appelles <article> <texte1> texte1 : paragraphe

SYNONYME : DESCRIPTION :
Ce livre permet de lire un paragraphe en parallle sans quitter le paragraphe en cours.

EXEMPLE :
Livre : exemple d'utilisation du verbe appeler Paragraphe : exemple Les actions : Tu appelles suite De 0 10, tu lis Tu affiches le joker Tu attends 1 seconde Tu fermes Tu termines Paragraphe : suite Actions : De 10 0, tu lis Tu affiches le joker Tu attends 1 seconde Tu fermes Tu reviens

VOIR AUSSI :
Observer

- 128 -

Dcouvrir la programmation avec le langage Linotte

Observer

SYNOPSIS :
Tu observes <article> <texte1> texte1 : paragraphe

SYNONYME : DESCRIPTION :
Ce verbe permet d'attendre la fin d'une lecture parallle.

EXEMPLE :
Livre : exemple d'utilisation du verbe observer Paragraphe : exemple Les actions : Tu appelles la suite De 0 10, tu lis Tu affiches le joker Tu attends .5 seconde Tu fermes Tu observes la suite Tu termines Paragraphe : suite Actions : De 10 0, tu lis Tu affiches le joker Tu attends 1 seconde Tu fermes Tu reviens

VOIR AUSSI :
Appeler

- 129 -

Dcouvrir la programmation avec le langage Linotte

Ouvrir un tube

SYNOPSIS :
Tu ouvres <article> <acteur1> avec <article> <acteur2> depuis <article> <acteur3> acteur1 : espce tube acteur2 : texte acteur3 : texte

SYNONYME : DESCRIPTION :
Ce verbe permet d'ouvrir un tube. (cf. chapitre sur les greffons)

EXEMPLE : VOIR AUSSI :

- 130 -

Dcouvrir la programmation avec le langage Linotte

Fermer un tube

SYNOPSIS :
Tu fermes <article> <acteur1> acteur1 : espce tube

SYNONYME : DESCRIPTION :
Ce verbe permet de fermer un tube. (cf. chapitre sur les greffons)

EXEMPLE : VOIR AUSSI :

- 131 -

Dcouvrir la programmation avec le langage Linotte

Charger un tube

SYNOPSIS :
tu charges <article> <acteur1> dans <article> <acteur2> acteur1 : texte, nombre, casier, espce acteur2 : espce tube

SYNONYME : DESCRIPTION :
Ce verbe permet de charger un acteur dans un tube. (cf. chapitre sur les greffons)

EXEMPLE : VOIR AUSSI :

- 132 -

Dcouvrir la programmation avec le langage Linotte

Dcharger un tube

SYNOPSIS :
tu dcharges <article> <acteur1> dans <article> <acteur2> acteur1 : espce tube acteur2 : texte, nombre, casier, espce

SYNONYME : DESCRIPTION :
Ce verbe permet de dcharger un acteur d'un tube. (cf. chapitre sur les greffons)

EXEMPLE : VOIR AUSSI :

- 133 -

Dcouvrir la programmation avec le langage Linotte

Configurer un tube

SYNOPSIS :
tu configures <article> <acteur1> avec <article> <acteur2> acteur1 : espce tube acteur2 : texte

SYNONYME : DESCRIPTION :
Ce verbe permet de configurer un tube. (cf. chapitre sur les greffons)

EXEMPLE : VOIR AUSSI :

- 134 -

Dcouvrir la programmation avec le langage Linotte

VII.ANNEXES
A.ET POUR QUELQUES LIVRES DE PLUS...
1.Trouver le nombre
Pour se dtendre, voici un jeu ! Vous devez trouver un nombre entre 0 et 500 en un minimum d'essais.
Livre : Trouver un nombre Les grands rles : Secret est un nombre valant 500 Boucle est un nombre valant 0 Paragraphe : Gnration du nombre Les actions : Mlange le secret Affiche "Tu dois trouver un nombre entre 0 et 500." Va vers la question Paragraphe : Question Les rles : Rponse est un nombre Message est un texte vide Les actions : Ajoute 1 dans la boucle Affiche "Propose un nombre" Demande la rponse Si la rponse est plus grande que le secret alors affiche "Ce nombre est trop grand !" Si la rponse est plus petite que le secret alors affiche "Ce nombre est trop petit !" Si la rponse est diffrente de secret alors va vers la question Concatne "Flicitation, c'tait " , le secret , " et tu as russi en " , la boucle , " coups !" dans le message Affiche le message Termine

- 135 -

Dcouvrir la programmation avec le langage Linotte

2.Mmoire des chiffres


Ce deuxime jeu permet d'entrainer votre mmoire. Les rgles sont simples : vous devez retenir une suite de nombres. Tant que vous n'chouez pas, votre score est incrment de un point. Conseil : dans l'atelier Linotte, cachez le tableau et activez l'option affiche le message
Livre : Mmoire des chiffres Les grands rles : score est un nombre valant 0 nombre1 est un nombre nombre2 est un nombre nombre3 est un nombre Paragraphe : Prsentation Les rles : rponse1 est un nombre rponse2 est un nombre rponse3 est un nombre Les actions : "Je vais afficher 3 nombres et tu vas devoir les tu copies 500 dans nombre1 tu copies 500 dans nombre2 tu copies 500 dans nombre3 tu mlanges nombre1 tu mlanges nombre2 tu mlanges nombre3 "Voici les nombres :" ! tu affiches le nombre1 tu affiches le nombre2 tu affiches le nombre3 "Je vais attendre 5 secondes"! tu attends 5 secondes "Premier nombre ?" ! rponse1 ? rponse2 ? rponse3 ? si la rponse1 est diffrent de nombre1 alors tu si la rponse2 est diffrent de nombre2 alors tu si la rponse3 est diffrent de nombre3 alors tu Tu ajoutes 1 dans score "Bravo !" ! Tu vas vers la prsentation

retrouver !" !

vas vers la rponse fausse vas vers la rponse fausse vas vers la rponse fausse

Paragraphe : rponse fausse Les rles : message est un texte Les actions : Tu concatnes "La rponse est fausse. Le jeu se termine, ton score est de ", score dans message message ! "Je pense que tu peux mieux faire..." ! Tu termines

- 136 -

Dcouvrir la programmation avec le langage Linotte

3.Mmoire des chiffres 2


Ce jeu est le mme que le prcdent mais cette version ajoute la possibilit de choisir le nombre de nombres mmoriser.
Livre : Mmoire des chiffres 2 Les grands rles : score est un nombre valant 0 Niveau est un nombre valant 1 Nombres est un casier de nombre vide Paragraphe : Niveau Les actions : "Quel est ton niveau (entre 1 et 20) ?" ! Niveau ? Tu vas vers la question Paragraphe : Question Les rles : Message est un texte Les actions : Tu vides les nombres De 1 niveau, tu vas vers ajouter Tu concatnes "Je vais afficher " , niveau , " nombres et tu vas devoir les retrouver ! L'ordre n'a pas importance." dans message Message ! "Voici les nombres :" ! Pour chaque nombres , tu affiches le joker "Je vais attendre 5 secondes"! Tu attends 5 secondes "Quels sont les nombres ?" ! De 1 niveau , tu vas vers vrification Tu ajoutes 1 dans score "Bravo !" ! Tu vas vers la question Paragraphe : rponse fausse Les rles : Message est un texte Les actions : Tu concatnes "La rponse est fausse. Le jeu se termine. Ton score est de ", score dans message Message ! "Je pense que tu peux mieux faire..." ! Tu termines Paragraphe : Ajouter Les rles : Nombre est un nombre valant 500 Les actions : Tu mlanges le nombre Tu ajoutes le nombre dans les nombres Tu reviens Paragraphe : Vrification Les rles : Test est un nombre valant 1 Rponse est un nombre Les souffleurs : Ds que le test est gal 0 , tu vas vers la rponse fausse (Si test est gal zro, a veut dire que le nombre n'a pas t trouv.) Les actions : Tu demandes la rponse Tu cherches le test, la position de la rponse dans les nombres Tu reviens

- 137 -

Dcouvrir la programmation avec le langage Linotte

4.99 Bottles of Beer


C'est une musique de geeks chanter le soir aprs une longue soire de programmation...
Livre : 99 Bottles of Beer ("99 Bottles of Beer Version 1.1 Date : 27 Juillet 2007") Paragraphe : Dbut Les actions : De 99 1, va vers boucle "No more bottles of beer on the wall, no more bottles of beer." ! "Go to the store, buy some more, 99 bottles of beer on the wall." ! Termine Paragraphe : Boucle Les rles : Ligne est un texte vide Bouteille est un nombre Les actions : Si joker est plus grand que 1 alors copie "s" dans ligne Concatne joker, " bottle" , ligne , " of beer on the wall, " , joker , " bottle" , ligne, " of beer." dans ligne Ligne ! Copie joker dans bouteille Soustrais 1 dans bouteille Si bouteille est plus grande que 1 alors concatne bouteille , " bottles" dans ligne Si bouteille est gale 1 alors copie "1 bottle" dans ligne Si bouteille est gale 0 alors copie "no more bottles" dans ligne Concatne "Take one down, pass it around, " , ligne , " of beer on the wall." dans ligne Ligne ! Reviens

- 138 -

Dcouvrir la programmation avec le langage Linotte

5.L'agenda texte
Ce livre bien utile vous permet de stocker dans un fichier tous vos contacts ! Il stocke le nom, le prnom, l'adresse, la ville. Son interface simple mais efficace vous permettra de rechercher ou de supprimer une personne.
Livre : Agenda texte Les espces : Nom est un texte vide Prnom est un texte vide Tlphone est un texte vide Adresse est un texte vide Code postal est un nombre vide Ville est un texte vide L'espce contact contient un nom, un prnom, un tlphone, une adresse, un code postal, une ville Les grands rles : Agenda est un casier de contact depuis "d:\ronan\agenda.base2donnees" Traitement est un nombre valant 0 (permet de savoir si les recherches sont fructueuses ou pas) Paragraphe : Menu Les rles : Choix est un nombre Les actions : "Menu :" ! "1 : Ajouter un contact" ! "2 : Chercher un contact" ! "3 : Supprimer un contact" ! "4 : Quitter" ! "Quelle option choisissez-vous Choix ? Si le choix est gal 1 alors Si le choix est gal 2 alors Si le choix est gal 3 alors "A bientt" ! Termine

?" ! va vers ajouter va vers chercher va vers supprimer

Paragraphe : Ajouter Les rles : Nouveau est un contact Message est un texte vide Les actions : "Quel est le nom ?" ! Le nom de nouveau ? "Quel est le prnom ?" ! Le prnom de nouveau ? "Quel est son tlphone ?" ! Le tlphone de nouveau ? "Quelle est son adresse ?" ! L'adresse de nouveau ? "Quel est son code postal ?" ! Le code postal de nouveau ? "Quelle est sa ville ?" ! La ville de nouveau ? Ajoute le nouveau dans l'agenda Concatne le nom de nouveau , " est ajout(e) !" dans message Message ! Va vers le menu Paragraphe : Chercher Les rles : Temporaire est un texte vide Les actions : "Quel est le nom du contact que vous voulez rechercher ?" ! Temporaire ? Copie 0 dans le traitement Pour chaque agenda, parcours analyse recherche Si le traitement est gale 0 alors affiche "Ce contact n'a pas t trouv !" Va vers le menu

- 139 -

Dcouvrir la programmation avec le langage Linotte

Paragraphe : Analyse recherche Les rles : Temporaire est un texte Message est un texte vide Les actions : Si le nom de joker est diffrent de temporaire alors reviens Copie 1 dans le traitement Concatne nom de joker, " a t trouv :" dans message Message ! Nom de joker ! Prnom de joker ! Tlphone de joker ! Adresse de joker ! Code postal de joker ! Ville de joker ! Reviens Paragraphe : Supprimer Les rles : Temporaire est un texte vide Les actions : "Quel est le nom du contact que vous voulez supprimer ?" ! Temporaire ? Copie 0 dans le traitement Pour chaque agenda, parcours analyse suppression Si le traitement est gale 0 alors affiche "Ce contact n'a pas t trouv !" Va vers le menu Paragraphe : Analyse suppression Les rles : Temporaire est un texte Message est un texte vide Confirmation est un texte vide Les actions : Si le nom de joker est diffrent de temporaire alors reviens Copie 1 dans le traitement Concatne nom de joker, " va tre supprim :" dans message Message ! Prnom de joker ! Tlphone de joker ! Adresse de joker ! Code postal de joker ! Ville de joker ! "Vous confirmez ? ('oui')" ! Confirmation ? Si la confirmation est diffrente de "oui" alors tu reviens Vide le joker "Contact supprim !" ! Reviens

- 140 -

Dcouvrir la programmation avec le langage Linotte

6.Pong
Voici le premier jeu graphique de l'histoire de l'informatique... mais aussi de l'histoire de Linotte !
Livre : Pong Simple Les grands rles : raquette est une ligne, x1 vaut 41, y1 vaut 238, x2 vaut 41, y2 vaut 278, taille vaut 15,couleur vaut "rouge" plateau est un toile, couleur vaut "noir" palet est un cercle, x vaut 325, y vaut 530, rayon vaut 5, couleur vaut "vert", taille vaut 5 directionx est un nombre valant 1 directiony est un nombre valant 1 Paragraphe : Dcor Les actions : tu effaces la toile tu mlanges y de palet y de palet vaut y de palet + 30 tu projettes le plateau tu projettes la raquette tu projettes le palet tu vas vers action Paragraphe : action Les actions : tu attends 5 millisecondes tu vas vers analyse Paragraphe : analyse Les rles : y est un nombre y_min est un nombre y_max est un nombre Les actions : ("Gestion de la raquette") y vaut sourisy - 20 si y est plus grand que 523 alors y vaut 523 si y est plus petit que 40 alors y vaut 40 tu dplaces la raquette vers x1 de raquette et y ("Gestion du palet") si directiony est gale si directiony est gale si directionx est gale si directionx est gale 1 alors tu dplaces le palet vers le haut de 1.4 -1 alors tu dplaces le palet vers le bas de 1.5 1 alors tu dplaces le palet vers la gauche de 1 -1 alors tu dplaces le palet vers la droite de 1 palet") que 35 alors directiony vaut directiony * -1 que 570 alors directiony vaut directiony * -1 que 55 alors directionx vaut directionx * -1 que 585 alors directionx vaut directionx * -1

("Gestion de la direction du si y de palet est plus petit si y de palet est plus grand si x de palet est plus petit si x de palet est plus grand

si x de palet est plus grand que 55 alors tu vas vers action ("Perdu ?") y_min vaut y1 si y de palet y_max vaut y2 si y de palet de raquette - 15 est plus petit que y_min alors tu termines de raquette + 15 est plus grand que y_max alors tu termines

tu vas vers action

- 141 -

Das könnte Ihnen auch gefallen