Passer au contenu

La renaissance du Logo grâce à Microsoft Small Basic

Avec Small Basic, Microsoft veut renouer avec l’idée d’une programmation simple et amusante, ouverte à tous, exactement comme elle l’était dans les années 80. Dans ce troisième épisode, nous allons voir que Small Basic fait renaître le concept et les instructions d’un autre langage très populaire des années 80: le LOGO!

Etape 1/7 : Rappel des épisodes précédents

Small Basic est un langage conçu pour le fun, pour le simple plaisir de s’amuser en programmant. Il appartient à cette nouvelle initiative de Microsoft visant à encourager les plus jeunes (de 7 à 77 ans) à découvrir les joies de la programmation. Pour en savoir plus, cliquez ici .

Dans notre premier épisode (voir ici ) nous avons présenté l’environnement de développement, montré que le logiciel permettait non seulement de créer des petites applications rapides en mode-console (ici) mais aussi de véritables applications Windows connectées au Web et capables d’interroger des services Web comme Flickr (ici )

Dans le deuxième épisode ( voir ici ), nous avons étudié quelques concepts fondamentaux du langage comme les variables, les boucles et les tests. Nous les avons illustrés avec le Jeu du nombre mystérieux ( voir ici ).

Dans ce troisième épisode, nous allons découvrir que Small Basic s’est inspiré du langage LOGO pour offrir des instructions graphiques très amusantes et pédagogiques!
Le langage LOGO était très populaire dans les années 80. Il équipait en standard des ordinateurs comme le Thomson TO7. Même l’Atari ST était commercialisé avec une version Logo lors de son lancement.

Imaginé à la fin des années 60, le Logo était considéré comme un langage informatique à vocation pédagogique. Sa grande particularité résidait dans “Turtle Graphics”, un ensemble d’instructions qui permettait de dessiner à l’écran à l’aide de commandes qui contrôlaient une tortue virtuelle: on indique à la tortue d’avancer, de tourner à gauche, de tourner à droite, etc. Celle-ci laissant une trace graphique derrière elle lors de ses déplacements, on arrive à recréer des dessins géométriques de façon très amusante.

Small Basic possède lui aussi un ensemble d’instructions “Turtle Graphics” que nous allons découvrir…

Etape 2/5 : La Tortue

La programmation façon Logo/Turtle consiste donc à piloter le déplacement d’une tortue positionnée au départ au milieu de l’écran.

Le programme Turtle le plus simple en Turtle comporte une seule ligne de programmation:
Turtle.Show()

Ce simple programme ouvre une fenêtre Windows et affiche une tortue au milieu de l’écran, la tête dirigée vers le haut de l’écran.

La tortue répond à un petit nombre d’instructions:

* Turtle.Move(x) fait avancer la Tortue de x pixels à l’écran
* Turtle.TurnRight() fait pivoter la Tortue vers la droite de 90°
* Turtle.TurnLeft() fait pivoter la Tortue vers la gauche de 90°
* Turtle.Turn(x) fait pivoter la Tortue de x degrés (x est donc un angle de rotation de 0 à 360).

Essayez le programme suivant:
Turtle.Show()
Turtle.Move(50)
Turtle.TurnRight()
Turtle.Move(50)
Turtle.TurnLeft()
Turtle.Move(50)
Turtle.TurnLeft()
Turtle.Move(50)
Turtle.TurnRight()
Turtle.Move(50)

On obtient alors un serpentin… Un tel programme est très séquentiel mais permet de bien comprendre le principe de fonctionnement de la Tortue de Small Basic.

Passons à quelque chose de plus original dans l’étape suivante…

Etape 3/5: Programmer la tortue

Au lieu d’écrire une longue séquence d’instructions répétitives, nous pouvons appliquer les concepts de programmation vus dans notre Episode 2 pour réaliser des choses un peu plus sophistiquées…

Le programme ci-dessous trace un carré coloré (on fait tourner la tortue 4 fois de suite dans la même direction de sorte qu’elle revienne à son point de départ, on obtient bien un carré mais on change de couleur de dessin à chaque changement de direction).

Turtle.Show()
For i = 1 To 4
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
Turtle.TurnRight()
Turtle.Move(100)
EndFor

Essayez maintenant la variant suivante qui dessine une sorte de labyrinthe:

Turtle.Show()
For i = 1 To 16
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
Turtle.TurnRight()
Turtle.Move(10 * i)
EndFor

Attention:
En raison d’un bug dans la version actuelle de Small Basic, les instructions Turtle ne fonctionnent correctement que si vous redéfinissez le “Format Actuel” à “Anglais (Etats-Unis)” dans l’onglet Format des Options Régionales du système.

Etape 4/5: Autres instructions

A ce stade, nous avons les 4 instructions de base de gestion de la tortue. Mais il en existe d’autres:

* Turtle.Turn(a) fait pivoter la tortue selon un angle “a” variant de 0 à 360
* Turtle.PenUp() relève le stylo, ce qui permet de déplacer la tortue sans dessiner
* Turtle.PenDown() rabaisse le stylo pour reprendre le dessin
* Turtle.Speed(v) modifie la vitesse de déplacement, “v” varie de 1 à 10, 10 étant un déplacement instantanné.

Essayez le programme ci-dessous :

Turtle.Show()
Turtle.Speed = 9
Turtle.TurnLeft()

For i = 0 To 10

GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
Turtle.Move(150)
Turtle.PenUp()
Turtle.Turn(180)
Turtle.Move(150)
Turtle.Turn(180)
Turtle.PenDown()
Turtle.Turn(18)

EndFor

Etape 5/5: Autres exemples pour s’amuser

Et pour terminer ce troisième épisode, voici 4 exemples complémentaires pour vous distraire:

Exemple 1

sides = 50
length = 400 / sides
angle = 360 / sides
Turtle.Speed = 10
For j = 1 To 20
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
For i = 1 To sides
Turtle.Move(length)
Turtle.Turn(angle)
EndFor
Turtle.Turn(18)
EndFor

Exemple 2

Turtle.Show()
Turtle.Speed = 10
Cpt = 5
For i = 1 To 100
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
Turtle.Move(2 * Cpt)
Turtle.Turn(73)
Cpt = Cpt + 1
EndFor

Exemple 3

Turtle.Show()
Turtle.Speed = 10
Cpt = 1
For i = 1 To 720
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
Turtle.Move(cpt/100)
Turtle.Turn(5)
Cpt = Cpt + 1
EndFor

Exemple 4

Turtle.Show()
Turtle.Speed = 10
Turtle.PenUp()
Turtle.Turn(180)
Turtle.Move(150)
Turtle.Turn(180)
Turtle.PenDown()
For i = 1 To 100
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
Turtle.Move(300)
Turtle.Turn(50)
Turtle.Move(50)
Turtle.Turn(125)
EndFor

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Duval Loic