Programmation et créativité
From OFSET Wiki
Contents |
[edit] De la créativité
Quand on parle de créativité, on a quelque fois tendance à la confondre avec la création, et à la considérer comme une recherche ayant pour objectif de trouver une solution originale à un problème donné. Mais le fait de trouver une solution même originale ne fait pas d'un individu un être créatif et ne veut pas dire qu'il aura forcément la possibilité d'être inventif dans d'autres circonstances. Pour être créatif il devra posséder la faculté d'aborder les problèmes avec un esprit d'investigation, sans a-priori, un esprit qui prend la mesure de ce qui se présente à lui, ne s'arrête pas à la première idée venue, et reprend sans cesse son bâton de pèlerin pour vérifier s'il n'y a pas d'autres voies possibles. C'est beaucoup plus un état d'esprit qu'une aptitude. Et, beaucoup plus important, cela s'éduque et se perfectionne par l'entraînement.
On a tendance aussi à considérer que c'est le domaine réservé des arts qui sont toujours en recherche d'expressions nouvelles.
Mais si on considère le problème avec attention, on voit bien que sans curiosité exploratoire, les sciences ne peuvent avancer, les techniques ne peuvent pas progresser, la vie quotidienne ne peut pas s'épanouir.
Quand on décide de travailler sur la CREATIVITE, il est nécessaire de rappeler qu'elle met en jeu des aptitudes multiples de l'esprit parallèles au raisonnement logique, à l'imagination et aux connaissances techniques :
- Flexibilité,
- Adaptabilité,
- Curiosité,
- Originalité,
- Esprit d'initiative, etc.
Ces aptitudes permettent à un individu, en l'incitant à remettre en cause des conduites traditionnelles, d'utiliser ses connaissances et ses techniques de façon nouvelle et décalée, et d'être capable de réagir de façon innovante à toutes sortes de situations.
Sur le plan de la démarche, un des procédés fréquemment utilisé par les chercheurs, que ce soit dans le domaine artistique, scientifique, technique, ou simplement pratique est celui de la RECHERCHE DIVERGENTE (opposé à la recherche CONVERGENTE qui consiste à trouver, souvent par élimination, la meilleure solution et la plus logique ou économique). Cela consiste, la plupart du temps, à rechercher systématiquement si un problème posé ne peut pas être envisagé sous des angles différents ou si plusieurs réponses auxquelles on n'aurait pas pensé au départ ne peuvent pas lui être apportées. Ceci permet d'accéder à des solutions souvent inattendues, auxquelles la pratique courante du raisonnement ne nous aurait pas conduite, et où le Hasard peut avoir un rôle à jouer.
Avec cependant une corollaire qui réintroduit la logique et le raisonnement dans le processus :
Considérer les résultats obtenus sous l'angle de la PERTINENCE, ce qui signifie retenir LA ou LES solutions en fonction de leur opportunité face au problème posé.
Pour essayer de savoir si la pratique de la programmation par scripts de Squeak se prête à l'exercice de la créativité, nous allons travailler sur un exemple concret :
Nous allons utiliser la démarche, en matière de programmation, proposée dans l'article sur LE JEU DU SERPENT, et chercher ensuite dans quelles directions différentes la même problématique peut nous entraîner.
[edit] Le jeu du serpent
(dont on trouvera le détail à la page Le jeu du serpent)
Il est indispensable, pour une bonne compréhension, d'avoir pris connaissance des procédés de programmation qui y sont exposés.
C'est une initiation à la programmation par SCRIPTS, qui se fait sous la forme de la création d'un jeu vidéo et dont l'outil fondamental est le script conditionnel.
C'est aussi la programmation d'une certaine forme de fonctionnement : Déplacer un objet en utilisant les touches fléchées droite et gauche du clavier.
- un objet A, (le serpent), se déplace et provoque, lorsqu'il les touche, la disparition de un ou plusieurs objets B placés en certains endroits de l'écran.
- La rencontre du serpent avec un troisième objet C fait réapparaître les objets disparus.
La caractéristique de cette programmation est que chaque catégorie d'objets est programmée différemment.
- l'objet A est l'objet qui touche les autres objets, mais sa programmation concerne uniquement son propre déplacement : il avance et utilise les touches du clavier pour tourner (nous laisserons de côté cet aspect de la programmation décrit par ailleurs).
- les objets B et C sont touchés. Les scripts disent ce qui se produit lors de la rencontre. Ici, il s'agit de disparitions ou de réapparitions.
Nous avons affaire à un jeu croisé d'actions et de réactions :
- L'action du serpent sur l'objet B produit la disparition de l'objet B,
- Mais l'action du serpent sur l'objet C produit la réapparition de l'objet B, soit un objet différent, ce qui ouvre la porte à beaucoup de possibilités.
L'examen de la structure de ce script montre que la phrase de test 'objet intercection avec serpent' constitue la base de l'opération et ne peut être changée, mais par contre, la ligne qui indique ce qui se produit si la rencontre a lieu, (oui, si vrai… ), elle, est la porte ouverte à de multiples possibilités.
Cette ligne du script conditionnel accepte des options venues de plusieurs catégories de commandes du visualiseur des objets, que nous allons aller visiter :
- Couleur et bordures pour des changements de couleurs pour les objets issus du catalogue des accessoires (cercles, rectangles, étoiles, etc.).
- Géométrie pour des changements de localisations, de Cap, ou de tailles.
- Divers pour une grande variétés de modifications parmi lesquelles on trouve CACHE et MONTRE.
Mais pour avoir une activité créative, nous n'allons pas nous cantonner uniquement dans ce jeu de substitution des options, et nous allons l'inscrire dans un cadre plus général dans lequel elle pourra s'exercer :
- On pourra rester dans le même contexte, celui des apparitions/disparitions, et chercher à donner d'autres Représentations aux éléments en présence .
- Ou bien, essayer de changer la nature des relations entre A, B et C, et avoir d'autres Fonctionnements.
- Ou bien rechercher une Idée, un Cadre, un Thème qui fédérera de façon logique ou inattendue les différents éléments du projet.
C'est le domaine le plus difficile, celui qui demande le plus gros effort, c'est aussi le plus pratiqué dans tous les secteurs d'activité qui partent à la découverte de l'inédit, en particulier dans ceux où la créativité améliore la productivité et les profits (séances de BRAINSTORMING - tempête de cerveaux - pour les créatifs qui, dans les entreprises, recherchent la nouveauté pour séduire des utilisateurs).
La caractéristique en est une exploration sans contrainte où l'on tente tout ce qui vient à l'esprit, sans interdits ou assujettissement à une quelconque logique. Ce qui signifie examiner aussi des solutions nées du HASARD et suppose que l'on aura un certain pourcentage de résultats stériles.
[edit] Nouvelles mises en forme du projet serpent
On peut commencer par un nouvel habillage donné au projet qui gardera les mêmes règles du jeu.
L'ESPACE DESSIN pourra être utilisé pour des créations plus personnelles, ou bien on pourra, comme ici, avoir recours aux images importées introduites grâce aux fichiers de la fonction MORPH, ou même combiner les 2.
Dans un projet qui aurait nom : LUCKY LUKE, on pourrait concevoir une action au schéma identique à celui du projet Serpent mais située dans un autre univers, celui de la BD. La scène sur laquelle se déroule l'action pourrait être intégrée à la page illustrée.
La recherche porte davantage sur la forme que sur le fond.
Elle peut être au service d'une idée ou uniquement de nature esthétique pour celui qui le désire.
[edit] Programmation et inovation, les scripts
Nous allons maintenant examiner, de façon schématique, quelques cas simples et proposer quelques projets s'appuyant sur des options prises dans les différentes catégories de commandes des visualiseurs des objets percutés.
Que peut-il se passer d'autre si le serpent A rencontre un ou plusieurs objets B ?
La rencontre avec C rétablissant automatiquement la situation antérieure.
[edit] Changement de place
Ou lorsque la rencontre produit des changements de place - avec la catégorie 'BASE ou GEOMETRIE'.
PROJET JEU-SERPENT SI un objet A (le serpent) rencontre successivement des formes B (les pastilles vertes), elles seront projetées ailleurs sur l'espace de la scène sans disparaître. La rencontre du serpent avec l'étoile (C) les ramènera à leur première place.
Ce sont donc des changements de positions qui remplaceront ici les apparitions et les disparitions du jeu initial.
La position d'un point étant repérée sur un écran par ses coordonnées x et y, c'est donc dans la catégorie ' BASE ou GEOMETRIE que nous irons chercher les commandes qui se substitueront à 'OBJET MONTRE et 'OBJET CACHE'.
- Pour le script des pastilles (PASTILLE PARS), il faudra disposer des coordonnées du point ou chacune d'elles sera envoyée après sa rencontre avec le serpent.
- Le script 'ETOILE REVIENS' aura, dans sa zone OUI, les coordonnées qui étaient celles de la position des 2 pastilles avant leur rencontre avec le serpent pour pouvoir les renvoyer à cet endroit lors de la rencontre de l'étoile avec le serpent.
[edit] Modification de forme
Ou lorsque la rencontre produit des modifications de la forme - avec la catégorie 'DIVERS'.
[edit] Le projet 'SERPENT CERCLE'
Dans ce cas de figure, il n'y a qu'une seule forme B sur la scène. Elle a été dupliquée 2 fois et ces 2 formes ont été placées à l'extérieur de la scène (pastille1 et pastille2) et l'une des 2 a été modifiée.
Dans la catégorie 'Divers' on prend l'option :
objet | ressemble à | dot
- Si le serpent rencontre l'objet celui-ci va prendre l'apparence de pastille2 (pastille change).
- Si le serpent rencontre l'étoile, l'objet va prendre l'apparence de pastille1 (étoile reviens).
Le projet, à télécharger et étudier :
[edit] Changement de taille
Ou lorsque la rencontre produit des changements de taille - catégorie 'GEOMETRIE'.
[edit] Projet SERPENT-DECOR
Nous restons dans la même logique et comme les objets qui subissent des modifications sont plus nombreux, la plage de test s'élargit pour les accueillir tous.
Deux scripts 'pastille grossit' et 'étoile maigrit' pour les changements de taille.
Le 3eme script 'bouge' est celui qui programme les déplacements du serpent et ses changements de direction avec les flèches gauche et droite du clavier.
Le projet, à télécharger et étudier :
[edit] Changement de couleurs
Ou lorsque la rencontre produit des changements de couleurs - catégorie 'Couleurs et Bordures'.
[edit] Projet RAYURES
Seules les surfaces issues du catalogue des accessoires auront la possibilité de changer de couleur par voie de programmation. Mais leur forme peut être modifiées à l'aide des poignées de leur halo. On peut aussi les superposer. Et le fond de la scène peut lui-même participer aux jeux des changements de couleurs. Le serpent du jeu 'Rayures ne se déplace que dans le sens vertical. Il n'est déplacé que par une seule flèche, celle de droite, qui le fait pivoter de 180°. Les changements de couleurs affectent le fond mais aussi l'étoile et les rayures et se font lors de la rencontre avec les bandes horizontales.
Le projet, à télécharger et étudier :
[edit] Les projets composites
On peut être moins systématique et, tout en restant dans la même optique, faire cohabiter plusieurs formules ou modifications, portant à la fois sur la forme et le fond. Mais l'effort principal consiste à s'appuyer sur la programmation pour trouver des comportements innovants.
Plus grande est la maîtrise de la programmation, plus importantes seront les possibilités d'accéder à des solutions inédites.
[edit] Les masques africains
Le projet reproduit le jeu des apparitions/disparitions du Serpent mais en plus compliqué. La flèche A joue avec plusieurs types de points B et fait apparaître ou disparaître non pas les points B mais des plans géométriques et des masques auxquels ils renvoient. Les tests peuvent utiliser les alternances Oui et Non, provoquant des clignotements dans les apparitions/disparitions.
Le projet, à télécharger et étudier :
[edit] La coccinelle et les goutes de pluie
Même schéma avec modification des trajectoires et autre environnement. Une seule goutte de pluie B inter agit avec la coccinelle A.
Le projet coccirosee, à télécharger et étudier :
Les options choisies ci-dessus sont loin d'avoir épuisées le sujet et on peut se lancer dans d'autres explorations dont les effets sont à découvrir.
[edit] En conclusion
La démarche présentée ici voudrait faire ressortir le fait qu'un sujet proposé peut souvent être interprété de multiples façons et que la programmation peut s'avérer être un excellent laboratoire pour l'exercice et le développement de la créativité.


