返校前夕的Python元胞自动机
浏览 193 | 评论 0
Andy
2020年04月27日
  • emm,不说废话,上源码,看。

    import time
    
    def print_seq(seq, speed=0.5):
        for item in seq:
            if item:
                print('*', end='')
            else:
                print('-', end='')
        print('')
        time.sleep(speed)
    
    
    class Cell:
        def __init__(self, deepth=31):
            self.ca = [0 if i != 31 else 1 for i in range(64)]
            self.ca_new = []
            self.deepth = deepth
    
        def process(self):
            print_seq(self.ca)
            for i in range(self.deepth):
                self._rule()
                print_seq(self.ca_new)
                self.ca = self.ca_new
                self.ca_new = []
    
        def _rule(self):
            for i in range(64):
                if 0 < i < 63:
                    if self.ca[i - 1] == self.ca[i + 1]:
                        self.ca_new.append(0)
                    else:
                        self.ca_new.append(1)
                elif i == 0:
                    if self.ca[1]:
                        self.ca_new.append(1)
                    else:
                        self.ca_new.append(0)
                else:
                    if self.ca[62]:
                        self.ca_new.append(1)
                    else:
                        self.ca_new.append(0)
    
    def main():
        cell = Cell()
        cell.process()
    
    
    if name == '__main__':
        main()
    
    本文作者:Andy
    本文链接:http://www.andyccr.com/e/index.php/archives/434/
    最后修改时间:2020-04-26 22:08:19
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论
    与本文无关评论请发留言板。请不要水评论,谢谢。
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    暂无评论