jeu_vie_1d.py

Created by schraf

Created on October 15, 2021

465 Bytes

Un article sur cet automate : https://www.miximum.fr/blog/jouons-avec-les-automates-cellulaires-en-javascript/
Descriptions des règles suivant le numéro : http://atlas.wolfram.com/01/01/rulelist.html

Exemples de résultats :
>> life(30) (on part d’un seul point central et on applique la règle n°30)

>> life(90)

>> life(184,1) (on met “1” en second paramètre si on veut un tirage aléatoire pour la première ligne)


from random import *
from kandinsky import *

BL = (255,255,255)

def life(v, a=0):
  if a==0: set_pixel(160,0,(0,0,0))
  else:
    for c in range(320):
      if random()<.5 : set_pixel(c,0,(0,0,0))
  r =[BL]*8
  for i in range(8):
    r[i] *= 1 - (v>>i & 1)
  for l in range(240):
   for c in range(1,319): 
    g = get_pixel(c-1,l)
    m = get_pixel(c,l)
    d = get_pixel(c+1,l)
    s = 4*(g==0)+2*(m==0)+(d==0)
    set_pixel(c,l+1,r[s])