Cette fic est écrite dans le cadre de la 121ème nuit écriture du FoF (Forum Francophone) pour le thème "Récursif". Le FoF est un forum regroupant tous les francophones de ffnet où l'on peut discuter, demander de l'aide ou s'amuser entre nous. Le lien se trouve dans mes favoris. Rejoignez-nous !

Note de l'auteur : Le thème était un appel à mon métier de développeuse, récursif étant un mot désignant un bout de code qui s'appelle lui-même en boucle jusqu'à avoir résolu le problème pour lequel il a été codé. Du coup, c'était un appel à la Kaïba Corp et... La fatigue aidant, je me suis retrouvée à coder le système des disques de duel. Oups ?


Makuba s'appuya dans son fauteuil à côté de Seto en esquissant un sourire.

- Les duels ont commencé dans tout BatailleVille maintenant ! Les disques de duels vont être un vrai succès !

- Ils ont tout pour l'être, approuva Seto. Ils apportent un réalisme sans précédent aux duels et ce côté est tout aussi intéressant que la mobilité et le fait de pouvoir livrer un duel n'importe où.

- C'est vrai que les hologrammes sont impressionnants. Comment tu as fait ? C'est quoi, la principale différence avec les arènes ?

- Les arènes ont été développées avec la technologie d'illusions de Pégasus. Et… Son domaine premier était l'image – juste l'image. Il avait sur un point surélevé de ses arènes des capteurs qui analysaient l'image de la carte et faisaient apparaître l'image la plus fidèle possible par rapport à ce qui était scanné.

- Ce n'est pas comme ça que fonctionnent les disques ?

- Sur le premier côté, si. A moins de changer toutes les cartes du jeu pour les équiper de puces électroniques, on ne peut pas se passer de scanner l'image. Mais à la différence des arènes, je ne me contente pas de l'afficher en 3D sur le terrain. Nos satellites stockent les informations des milliers de cartes qui existent. Quand une carte est posée sur l'interface et que l'image est scannée, le système d'hologrammes interroge le satellite pour avoir les informations de la carte correspondante. Et le satellite lui renvoie tout : Son nom, son effet, mais aussi son type, la moindre particularité physique trop insignifiante sur la carte mais qui mérite d'apparaître quand même, l'odeur et le cri les plus appropriés. Les projecteurs d'hologrammes n'ont plus qu'à appliquer les informations qu'ils reçoivent.

- Comment ça peut être aussi rapide ? Trouver la carte, interroger le satellite…

- Chaque bout de code a été optimisé au maximum. Les disques de duel contiennent en mémoire les images de toutes les cartes. Ce sont donc eux directement qui se chargent de trouver la carte correspondante. Au début, je voulais faire une recherche pixel par pixel, et carte par carte : Pour la carte scannée, le système compare le premier pixel à celui de la première carte dans sa base. Si ça correspond, il passe au pixel suivant, sinon, il passe à la carte suivante. Et ce jusqu'à trouver une carte dont chaque pixel correspond. Mais ça prenait beaucoup trop de temps. Même un système informatique, analyser des milliards de pixels sur des milliers de cartes, on arrivait facilement à plusieurs minutes de traitement.

- Alors comment tu as fait ?

- En inversant les calculs. Plutôt que de trouver la carte qui correspond parfaitement, il est beaucoup plus rapide de supprimer toutes celles qui n'y correspondent pas du tout. Du coup, pour le premier pixel de la carte, le système ne la compare pas avec la première de sa base de données, mais avec toutes. Il y a environ 4000 cartes du jeu, les systèmes informatiques permettent de faire 4000 calculs à une vitesse éclair. Toutes les cartes dont le pixel ne correspond pas sont supprimées. Supposons qu'à ce stade, il en reste donc 500. Le deuxième pixel est analysé et comparé aux 500 cartes restantes. On en supprime encore 400. Et ainsi de suite. La fonction est récursive, elle tient en quelques lignes et s'appelle elle-même tant qu'il ne reste pas qu'une seule carte. Au final elle atteint rarement les 5000 tours de boucle, ça reste faisable en quelques dizaines de millisecondes.

- Tu arrives à atteindre rapidement une seule carte ? s'étonna Makuba. Le fond des cartes se ressemble beaucoup, tu dois mettre des centaines de pixels à différencier toutes celles qui ont par exemple un ciel en fond derrière le monstre…

- C'est pour ça que je ne prends pas la ligne de pixel du haut mais celle en plein milieu de la carte. Celle où le monstre est rapidement dessiné. Je dépasse rarement les 10 pixels avant de n'avoir qu'une seule carte. Ensuite, il ne faut plus compter que les quelques secondes d'échanges avec le satellite pour avoir toutes les informations et les faire apparaître.

- Wahou, souffla Makuba. Comment tu fais pour penser à tout ça ? Envisager toutes les solutions pour trouver la meilleure ?

Seto réfléchit quelques secondes avant de hausser les épaules.

- Ça me paraît logique. Je suppose que je fais ça depuis toujours dans des parties d'échecs, trouver le moyen le plus sûr et fiable de gagner. C'est pareil ici. Je devais gagner du temps de traitement, j'ai envisagé toutes les solutions pour prendre celle qui en économisait le plus.

- Ça reste impressionnant.

- Tu n'aurais pas de mal à apprendre à coder si tu le voulais, nota Seto. Ce n'est que l'apprentissage d'une langue couplé à de la logique.

- Hmm… Pourquoi pas après la fin du tournoi ? Tu m'as nommé commissaire et je ne vais pas avoir le temps de tout faire, je dois retourner sur le terrain pour faire régner l'ordre.

Seto esquissa un sourire.

- Alors file. Et fais attention à toi.

- Tu me connais !

Makuba fila dans l'ascenseur de la Kaïba Corp. Apprendre à coder. Devenir aussi doué que son frère et rivaliser d'ingéniosité avec lui. Proposer autant que lui de nouveaux produits qui permettraient à la Kaïba Corp de révolutionner les jeux existants. L'idée était définitivement beaucoup trop tentante.


J'espère que ça vous a plu. Et que ça vous a donné envie de coder (Amenez-vous, on a des cookies !)

N'oubliez pas que seules les reviews permettent de savoir ce que vous en avez pensé !