Art and Scratch : Mosaïque ! épisode 1

Mots-clés

, , ,

37673671_10157128376114714_4018063233939144704_o

Je viens de passer quelques jours à Paris et je n’ai pu faire autrement que de visiter les expositions du Centre Pompidou, consacré à l’art contemporain. Un véritable bonheur et surtout une source infinie d’idées. En effet, de nombreuses oeuvres peuvent être résumées par un algorithme. Ce n’est pas de l’art facile car les oeuvres sont monumentales et une bonne partie d’entre elles ont été réalisées à une époque où l’accès aux ordinateurs n’était pas si évident. Comme un clin d’oeil, le musée accueille en ce moment l’exposition « Coder le monde » au sujet de l’art numérique et deux installations visuelles et sonores de Ryoji Ikeda. L’exposition sur l’UAM (Union des Artistes Modernes) permet de se confronter à l’art radical du début du XXème siècle, entre autres les oeuvres de Sonia Delaunay que j’affectionne tout particulièrement. Bref, un régal pour les yeux et les oreilles…

Lors de ma visite, je n’ai cessé de prendre des photos et de songer à la méthode que j’utiliserais pour « coder » telle ou telle oeuvre. Attendez-vous donc à avoir de nombreux posts sur le sujet.

Commençons comme la photo l’indique par une simple mosaïque au travers d’un générateur. Première étape, créer une fonction « ajouter blocs » qui va permettre de dessiner un rectangle plein de 30 pixels de large sur 20 pixels de haut. J’aurais pu faire cela plus simplement qu’en traçant ligne par ligne en jouant par exemple avec la taille du stylo mais j’aime faire les choses proprement et, avec cette méthode, il n’y aura pas un pixel de plus que nécessaire.

Screenshot_2018-07-27 Untitled-27 on Scratch(1)

On trace une ligne. On monte. On revient au point de départ et on monte de nouveau. Une sorte de tracé en S.

Venons-en maintenant à l’algorithme principal. La dimension de mes rectangles (30*20) me permet de créer 16 colonnes et 18 lignes, d’où l’utilisation de deux boucles supplémentaires. Je fais démarrer mon personnage en dehors de l’écran (-270) afin de simplifier mon code. Il aurait en effet fallu quelques commandes supplémentaires pour la première colonne.

Screenshot_2018-07-27 Untitled-27 on Scratch(2)

Et voilà le résultat !

Screenshot_2018-07-27 Untitled-27 on Scratch

Pour obtenir des rectangles creux, le code aurait été le suivant.

Screenshot_2018-07-27 Untitled-27 on Scratch(3)

Publicités

Android et smartphones : comment faire durer sa batterie

Charging battery

Affirmer que smartphone et batterie font bon ménage serait une véritable escroquerie. Cela reste le problème majeur des utilisateurs que je vois très souvent le câble à la main, cherchant la prise « miracle ». Si nos téléphones nous offrent de plus en plus de services, force est de constater que la longévité de la batterie ne suit pas et j’entends souvent dire que la batterie ne passe pas la journée.

J’ai pourtant arrêté de stresser avec cela depuis un moment. En effet, mon téléphone tient deux jours, voire plus sans aucun souci. La recette miracle ? Ne le solliciter que pour ce qui est vraiment utile et déconnecter tous les services qui ne nécessitent pas d’être constamment activés. Généralement l’opération « activation / désactivation » ne me prend pas plus de quelques secondes.

Commençons par le bluetooth. Gros consommateur et pourtant il n’est utile que pour des appels avec kit « mains libres », des casques sans fil ou le transfert de fichiers. En dehors, inutile de l’activer. Pour ce qui est de l’écoute, j’avoue rester fidèle au casque « à fil », ce qui fait que j’utilise le bluetooth très rarement.

Géolocalisation : à moins d’avoir une profession nécessitant d’être géolocalisé constamment, on peut s’en passer facilement et ne l’activer que lorsque l’on en a l’utilité.

Au démarrage de votre téléphone, une floppée d’applications ont tendance à se lancer. Cela peut être intéressant de le vérifier dans les paramètres et de supprimer le « lancement au démarrage » pour quelques-unes d’entre elles. Une application en fond consomme en effet de l’énergie.

Internet enfin : cela fait un moment que je désactive régulièrement l’accès à internet. Lorsque je travaille sur ordinateur, je n’ai pas besoin d’avoir une double notification, ma machine étant déjà connectée. En dehors, je me connecte régulièrement mais cela m’évite les notifications constantes et me permet d’avoir l’esprit un peu plus tranquille. Essayez et vous verrez au bout de quelques jours que rien ne presse et que vous gagnerez en sérénité. Imaginez le facteur qui viendrait vous apporter votre courrier au fur et à mesure. Beaucoup de dérangement pour pas grand-chose. Autant le recevoir en un seul paquet.

En dessous d’un certain pourcentage de batterie, votre téléphone se met en mode « économie d’énergie » et cela peut durer très longtemps. N’ayez donc pas peur de tomber en rade de batterie, d’autant que les batteries portables sont aujourd’hui à un tarif très accessible. Comptez cependant une trentaine d’euros pour un bon modèle et non une batterie qui fera trois charges avant de mourir.

Il vaut mieux charger en une seule fois plutôt que par à coups. On risque moins d’avoir des problèmes d’étalonnage, le système estimant la batterie à 100% alors qu’elle est réellement chargée à 70% par exemple.

Chargez votre téléphone en mode avion et sans y toucher pour gagner un peu de temps. Le téléphone n’étant pas sollicité, il n’y a pas de pertes d’énergie à déplorer et il met donc moins de temps à se charger.

Mais surtout, surtout, j’insiste… On n’oublie pas de débrancher son chargeur du mur. Inutile de le laisser fonctionner dans le vie. Merci !

Scratch : utiliser les boucles

Mots-clés

, ,

Indiana Jones et le temple du péril

Les boucles sont au code ce que l’huile d’olive est à la cuisine italienne : indispensables. On finit lors des ateliers et formations par s’en amuser, tellement je donne l’impression de me répéter (c’est le cas de la dire) lorsque j’évoque les boucles. Une par ci, une par là. Impossible de faire sans… Scratch n’en manque pas avec des particularités que l’on ne retrouve dans aucun autre langage. Petit passage en revue.

Répéter indéfiniment

La boucle la plus célèbre de Scratch et celle qui revient le plus souvent. Proche d’un des premiers codes que j’ai tapé en BASIC.


10 Print "Bonjour"
20 Goto 10

Ou comment rendre l’ordinateur fou en lui faisant sans cesse répéter la même chose sans moyen d’en sortir. Dans Scratch, la boucle « répéter indéfiniment » est essentiellement utilisée pour vérifier des états et des conditions. Ainsi, dans l’exemple ci-dessous (1er script), elle permet de suivre l’évolution du volume sonore et de déclencher un événement si celui-ci dépasse la valeur 70. La boucle est souvent oubliée et renvoie à une erreur classique. Le deuxième script en effet ne vérifie le volume sonore qu’une seule fois au déclenchement du programme en cliquant sur le drapeau vert.

Il est possible d’arrêter une telle boucle en utilisant l’instruction « stop ». Par exemple :

Répéter x fois

La boucle la plus simple à comprendre. À utiliser quand vous savez exactement de combien de répétitions vous avez besoin. Par exemple :

Cette boucle peut aussi s’utiliser avec des variables quand on ne connaît pas le nombre de répétitions à la base. Par exemple pour épeler un prénom :

C’est un peu dans ce cas l’équivalent d’une boucle « for … next » qui permet d’utiliser une boucle en faisant évoluer une ou plusieurs valeurs. Cela m’a toujours étonné que Scratch ne possède pas de boucle de ce type mais on peut la simuler avec la boucle « répéter jusqu’à ».

Répéter jusqu’à

Cette boucle est particulièrement utile car elle permet des choses que peu de langages offriraient aussi facilement. Par exemple :

Mais je l’utilise principalement pour les boucles « for … next ». Une boucle de ce type possède une condition de départ, une condition de fin et une variation de la valeur suivant un « pas ». Ainsi, par exemple, la variable x vaut 0 en condition de départ ; on arrête la boucle lorsque x vaut 250 en condition de fin et on la fait varier de 10 en 10.

En Basic, cela ressemblerait à ceci :


FOR x = 0 TO 250 STEP 10
PRINT x
NEXT

Et avec Scratch :

Ces boucles sont fort utiles notamment dans le traitement des chaînes de caractère ou dans la génération de graphismes.

Bon amusement !