Isix

Isix est un automate cellulaire, écrit en D pour Linux, et qui tourne probablement aussi sous OS X et *BSD.

J'ai commencé ça pour voir ce que donnait le D, pour l'instant, seuls deux modes d'affichage du monde sont disponibles : ncurses et stdout.

isix-0.000, et ncurses
Impressionant, hein ? ;) Bon... ce n'est qu'une 0.000

Au cas (improbable, soyons réalistes) où vous seriez intéressé par Isix, vous pouvez trouver la source ici. Pour le compiler, il vous faut DMD (et GCC). Vous pouvez probablement utiliser GDC au lieu de DMD, si vous arrivez à le faire fonctionner.

Pour l'instant, le monde fait la taille du terminal dans lequel isix est lancé avec ncurses, et 25×50 avec stdout (mais il faut recompiler pour choisir entre les deux). Chaque cellule peut avoir trois états différents, de 0 à 2. Dans la capture d'écran, les cellules sont représentées par rien à l'état 0, '*' à l'état 1 et '@' à l'état 2.

L'évolution d'une cellule est calculée en fonctione de la somme des états des cellules qui l'entourent (la bordure a toujours un état de 0) et de l'état de la cellule elle-même, à partir de trois tableaux. Par défaut les règles sont les suivantes :

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
État de la cellule 0 0 0 0 0 2 0 0 1 0 0 0 0 0 0 0 0 0
1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0
2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1
Prochain état de la cellule

Le futur

Je vous vois déjà dire "euh... mais ça a aucun intérêt son truc !" mais souvenez-vous que je fais surtout ça pour essayer un peu le D (qui me plaît beaucoup jusqu'à maintenant) et oublier le Java que je fais à l'IUT...

Maintenant, j'aime bien les automates cellulaires, d'ailleurs mon premier programme en C (ici) était un automate cellulaire qui utilisait ncurses et calculait l'évolution des cellules en fonction de la somme des cellules adjacentes... bon d'accord c'est la même chose qu'Isix. Mais Isix ira bien plus loin, si je n'en ai pas marre avant. En tout cas, ce que j'ai prévu de faire c'est une interface graphique, avec DUI, le seul GUI pour le D sous Linux de toute façon, et surtout plus de souplesse dans les évolutions des cellules :