La règle 110 est un automate cellulaire avec des propriétés intéressantes. Votre objectif est de simuler une règle 110 avec le moins de caractères possible.
Pour ceux qui ne le savent pas, la règle 110 est simulée ligne par ligne dans une grille. Chaque carré d'une ligne de la grille examine les carrés au-dessus, au-dessus de la gauche et au-dessus de la droite pour déterminer quelle cellule il doit être.
current pattern 111 110 101 100 011 010 001 000
new cell 0 1 1 0 1 1 1 0
Entrée: nombres de 0 à 39 représentant la nième carré d'entrée de la ligne supérieure, dans n'importe quel format raisonnable (chaîne séparée par des virgules, liste, arguments de fonction). Pour prendre en charge les langues indexées 1, les nombres peuvent également être indexés 1 et vont donc de 1 à 40.
Exemple d'entrée:
38,39
Sortie: une grille 40 x 40 représentant les automates en cours d'exécution, y compris la première ligne. Vous devez laisser 0 vide et 1 tout caractère d'impression visible. Les espaces de fin sont autorisés, tant que la grille réelle peut être raisonnablement distinguée. Le bas de la grille peut avoir une nouvelle ligne mais il ne doit pas y avoir de lignes vides entre les lignes de la grille.
Exemple de sortie:
XX
XXX
XX X
XXXXX
XX X
XXX XX
XX X XXX
XXXXXXX X
XX XXX
XXX XX X
XX X XXXXX
XXXXX XX X
XX X XXX XX
XXX XXXX X XXX
etc.
Remarque: Une question similaire sur les automates cellulaires 1D a déjà été posée, mais j'espère qu'en utilisant une seule règle, des réponses plus courtes pourront être écrites.