# -*- coding: utf-8 -*- import numpy as np from GameOfLife_utils import readRLE, plotcells, get_history, makeMovie ''' Initial board ''' ## Random board 60x60 with 20% alive #B = np.random.choice(2,(60,60),p=[0.8,0.2]).astype(bool) ################################ def do_it(pattern,shapeY,pos,T,trim=False,rH=False, rV=False, tp=False): ''' Load a pattern from an RLE file, run evolution and make a movie Options : * pos = where to position the pattern on the board * rH, rV and tp to reverse horizontal, vertical or transpose the dimensions * trim : trim edges for nicer plot ''' # 16/9 ratio shape = (int(1.78*shapeY),shapeY) # Read RLE file in the rle folder B = readRLE("rle/"+pattern+".rle", shape, pos,rH=rH,rV=rV, tp=tp) history = get_history(B,T) plotcells(history[0,:,:],"output/"+pattern+"_init.png") plotcells(history[-1,:,:],"output/"+pattern+"_end.png") makeMovie(history,"output/"+pattern+".mp4",trim=trim) ################################ #pattern = "example1" #shapeY = 10 #pos = (6,4) #T = 15 #do_it(pattern,shapeY,pos,T) #pattern = "blinker" #shapeY = 9 #pos = (6,4) #T = 30 #do_it(pattern,shapeY,pos,T) #pattern = "four" #shapeY = 9 #pos = (6,4) #T = 10 #do_it(pattern,shapeY,pos,T) #pattern = "five" #shapeY = 18 #pos = (13,8) #T = 20 #do_it(pattern,shapeY,pos,T) #pattern = "example2" #shapeY = 10 #pos = (7,4) #T = 15 #do_it(pattern,shapeY,pos,T) #pattern = "stills" #shapeY = 24 #pos = (8,2) #T = 4 #do_it(pattern,shapeY,pos,T) #pattern = "oscillos" #shapeY = 16 #pos = (4,2) #T = 30 #do_it(pattern,shapeY,pos,T) #pattern = "beehiveplus" #shapeY = 20 #pos = (15,7) #T = 30 #do_it(pattern,shapeY,pos,T) #pattern = "stairs6" #shapeY = 28 #pos = (22,13) #T = 100 #do_it(pattern,shapeY,pos,T) pattern = "Rpento" shapeY = 100 pos = (70,55) T = 1500 do_it(pattern,shapeY,pos,T,trim=True) #pattern = "cthulhu" #shapeY = 17 #pos = (9,2) #T = 10 #do_it(pattern,shapeY,pos,T,rV=True) #pattern = "exploder" #shapeY = 20 #pos = (15,7) #T = 100 #do_it(pattern,shapeY,pos,T) #pattern = "ten" #shapeY = 15 #pos = (8,7) #T = 100 #do_it(pattern,shapeY,pos,T) #pattern = "104P177" #shapeY = 70 #pos = (40,12) #T = 1000 #do_it(pattern,shapeY,pos,T) #pattern = "spaceships" #shapeY = 40 #pos = (60,9) #T = 130 #do_it(pattern,shapeY,pos,T,rH=True) #pattern = "canadagoose" #shapeY = 50 #pos = (50,35) #T = 150 #do_it(pattern,shapeY,pos,T,rV=True,rH=True) #pattern = "60P5H2V0" #shapeY = 50 #pos = (3,16) #T = 200 #do_it(pattern,shapeY,pos,T,rV=True,rH=True, tp=True) #pattern = "puffer1" #shapeY = 150 #pos = (5,65) #T = 600 #do_it(pattern,shapeY,pos,T,rV=True,tp=True) #pattern = "backrake3" #shapeY = 200 #pos = (5,90) #T = 500 #do_it(pattern,shapeY,pos,T,rV=True,tp=True, trim=True) #pattern = "linepuffer" #shapeY = 300 #pos = (50,65) #T = 800 #do_it(pattern,shapeY,pos,T,rV=True,tp=True) #pattern = "gosperglidergun" #shapeY = 60 #pos = (5,5) #T = 200 #do_it(pattern,shapeY,pos,T) #pattern = "10cellinfinitegrowth" #shapeY = 360 #pos = (400,300) #T = 4000 #do_it(pattern,shapeY,pos,T,trim=True) #pattern = "breeder1" #shapeY = 1080 #pos = (10,400) #T = 2500 #do_it(pattern,shapeY,pos,T,rV=True, trim=True ) #pattern = "max" #shapeY = 720 #pos = (640,360) #T = 1000 # 1000 #do_it(pattern,shapeY,pos,T, trim=True) #pattern = "p41660p5h2v0gun" #shapeY = 1200 #pos = (500,100) #T = 5000 # 1000 #do_it(pattern,shapeY,pos,T, trim=True) #pattern = "otcametapixeloff" #shapeY = 2200 #pos = (800,50) #T = 1000 # 1000 #do_it(pattern,shapeY,pos,T) ## Random 20% alive #for s in range(100): # np.random.seed(s) # B = np.random.choice(2,(3*16,3*9),p=[0.85,0.15]).astype(bool) # T = 300 # history = get_history(B,T) # #plotcells(history[0,:,:],"output/random"+str(s)+"_init.png") # plotcells(history[-1,:,:],"output/random"+str(s)+"_end.png") # #makeMovie(history,"output/random"+str(s)+".mp4") #s = 1 #np.random.seed(s) #B = np.random.choice(2,(3*16,3*9),p=[0.85,0.15]).astype(bool) #T = 100 #history = get_history(B,T) #plotcells(history[0,:,:],"output/random"+str(s)+"_init.png") #plotcells(history[-1,:,:],"output/random"+str(s)+"_end.png") #makeMovie(history,"output/random"+str(s)+".mp4")

To learn more HTML/CSS, check out these tutorials!