Bonjour,
me voici derrière mon ordinateur en train de lire ce message. J'aimerais bien que mon programme me surprenne et de la même façon surprenne ses utilisateurs.
Mon programme est une entité que je vais créer, que je vais dessiner dans mon esprit, puis réaliser à travers des lignes de codes. Je vais demander à l'ordinateur de me rendre des services. Mon programme va être l'outil de communication entre l'ordinateur et le programmeur que je suis.
L'ordinateur raconte souvent que, chez lui, point de surprise, point de mystère. Tout n'est que matière répondant à des lois physiques vérifiées et contrôlables. Il parle souvent de ce qu'il ressent quand on l'éteint, quand on l'allume, et quand on le redémarre. Il parle de son ressenti des gestes de son utilisateur, sa fréquence de clics, l'électricité qu'il génère dans les différents circuits.
L'ordinateur en vient rapidement à parler de son locataire principal, le système d'exploitation et les programmes-qui-tournent-avec. Ces programmes mettent l'utilisateur dans un certain état qui le pousse parfois à le "rebooter". L'ordinateur dirait plus volontiers "assommer", et raconte ses difficultés à reprendre ses esprit à force de scandisk et autres defrag. "Quelquefois c'est le 'format c:', et là je vous raconte même pas !" disait récemment un ami PC.
Le système d'exploitation raconte que lui n'est que suite de 0 et de 1 et qu'il n'a jamais vu de 0 se transformer en 1 par inadvertance. Ni l'inverse.
Donc dans l'ordinateur, point de mystère.
Si je regarde autour de l'ordinateur, je me vois et si j'ai la chance de ne pas me connaitre par coeur, il reste du mystère en moi. Si je nourris mon programme de ma part de mystère, qui passe à travers mes gestes, il va devenir aussi mystérieux pour moi que je le suis. Et ça marche pour chaque utilisateur.
=====
L'idée est la suivante :
- Utiliser un fournisseur de nombres (Random ...)
- Enregistrer des paramètres de l'utilisateur (position/mouvements du curseur, dates d'appui sur les touches ou les boutons de la souris, micro, webcam ...) et générer avec un nombre que vous ne vous expliquez pas, toute part de contrôle enlevant une part de mystère.
- Mélanger ce nombre avec un nombre fourni par un Random et utiliser ce nombre comme bon vous semble.
Vous obtenez au final un autre fournisseur de nombre qui dans l'objet a les même fonctionnalités qu'un autre fournisseur de nombres, mais dans le fonctionnement n'aura pas les défauts de cycles et d'improbabilités évitées.
Vous aurez toutes les difficultés du monde avec un fournisseur de nombres classique, à obtenir un tirage de n fois le même nombre, alors que la probabilité existe toujours. Ou pour obtenir une suite triée du premier coup.
Avec ce type de fournisseur de nombres, que vous pouvez créer très facilement, vous obtiendrez beaucoup plus de surprises.
Partager