写一个简单的元胞自动机试试吧!

这篇今晚就写

import time
'''
元胞自动机
'''

##先跑一个简单的二维试试吧
def printre(arr,t=0.5):
    for i in arr:
        if i==0:
            print('-', end='')
        else:
            print('*', end='')
    print('')
    time.sleep(t)

class CELL:
    def __init__(self,num=31,w=63):
        self.a_now=[0 if i!=num else 1 for i in range(w)]
        self.a_next=[]
        self.size=w

    def role(self):
        for i in range(self.size):
            if i==0:
                if self.a_now[i+1]:
                    self.a_next.append(1)
                else:
                    self.a_next.append(0)
            elif i==self.size-1:
                if self.a_now[i-1]:
                    self.a_next.append(1)
                else:
                    self.a_next.append(0)
            else:
                if self.a_now[i-1] != self.a_now[i+1]:
                    self.a_next.append(1)
                else:
                    self.a_next.append(0)

    def todo(self):
        printre(self.a_now)
        for i in range(self.size):
            self.role()
            printre(self.a_next)
            self.a_now=self.a_next.copy()
            self.a_next=[]

C=CELL(num=31,w=63)
C.todo()

写一个简单的元胞自动机试试吧!_第1张图片

你可能感兴趣的:(写一个简单的元胞自动机试试吧!)