Cleaner living neighbour counter
Add presets : BLOOM and FROG
This commit is contained in:
		@@ -9,13 +9,13 @@ ON = (80, 80, 50)
 | 
			
		||||
 | 
			
		||||
# Some presets :
 | 
			
		||||
VOID = [[False, False, False, False, False, False, False, False],
 | 
			
		||||
          [False, False, False, False, False, False, False, False],
 | 
			
		||||
          [False, False, False, False, False, False, False, False],
 | 
			
		||||
          [False, False, False, False, False, False, False, False],
 | 
			
		||||
          [False, False, False, False, False, False, False, False],
 | 
			
		||||
          [False, False, False, False, False, False, False, False],
 | 
			
		||||
          [False, False, False, False, False, False, False, False],
 | 
			
		||||
          [False, False, False, False, False, False, False, False]]
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False]]
 | 
			
		||||
 | 
			
		||||
GLIDER = [[False, False, False, False, False, False, False, False],
 | 
			
		||||
          [False, False, False, False, True, False, False, False],
 | 
			
		||||
@@ -35,6 +35,25 @@ BEATING_HEART = [[False, False, False, False, False, False, False, False],
 | 
			
		||||
                 [False, False, False, False, False, False, False, False],
 | 
			
		||||
                 [False, False, False, False, False, False, False, False]]
 | 
			
		||||
 | 
			
		||||
BLOOM = [[False, False, False, False, False, False, False, False],
 | 
			
		||||
         [False, False, False, False, False, False, False, False],
 | 
			
		||||
         [False, False, True, True, True, False, False, False],
 | 
			
		||||
         [False, True, False, True, False, True, False, False],
 | 
			
		||||
         [False, False, True, True, True, False, False, False],
 | 
			
		||||
         [False, False, False, False, False, False, False, False],
 | 
			
		||||
         [False, False, False, False, False, False, False, False],
 | 
			
		||||
         [False, False, False, False, False, False, False, False]]
 | 
			
		||||
 | 
			
		||||
FROG = [[False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, True, True, True, False, False],
 | 
			
		||||
        [False, False, True, True, True, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False],
 | 
			
		||||
        [False, False, False, False, False, False, False, False]]
 | 
			
		||||
 | 
			
		||||
_EXT_UNIVERSE = [[False for x_ext in range(10)] for y_ext in range(10)]
 | 
			
		||||
 | 
			
		||||
def RANDOM_UNIVERSE(rate):
 | 
			
		||||
    return [[randrange(0,100) < rate for i in range(8) ] for j in range(8)]
 | 
			
		||||
@@ -52,7 +71,7 @@ def draw_universe(trellis, universe):
 | 
			
		||||
 | 
			
		||||
def extend_universe(universe):
 | 
			
		||||
    """Extend an 8x8 universe to 10x10 with first and last columns and rows as in an donut-shaped universe"""
 | 
			
		||||
    ext_universe = [[False for x_ext in range(10)] for y_ext in range(10)]
 | 
			
		||||
    ext_universe = _EXT_UNIVERSE.copy()
 | 
			
		||||
 | 
			
		||||
    # Copy universe in an extended donut-shaped universe
 | 
			
		||||
    for x_ext in range(10):
 | 
			
		||||
@@ -77,15 +96,9 @@ def extend_universe(universe):
 | 
			
		||||
def living_neighbour_count(xcoord, ycoord, ext_universe):
 | 
			
		||||
    """Count living cells around xcoord, ycoord"""
 | 
			
		||||
 | 
			
		||||
    living_neighbours = []
 | 
			
		||||
    living_neighbours.append(ext_universe[xcoord][ycoord])
 | 
			
		||||
    living_neighbours.append(ext_universe[xcoord][ycoord+1])
 | 
			
		||||
    living_neighbours.append(ext_universe[xcoord][ycoord+2])
 | 
			
		||||
    living_neighbours.append(ext_universe[xcoord+1][ycoord])
 | 
			
		||||
    living_neighbours.append(ext_universe[xcoord+1][ycoord+2])
 | 
			
		||||
    living_neighbours.append(ext_universe[xcoord+2][ycoord])
 | 
			
		||||
    living_neighbours.append(ext_universe[xcoord+2][ycoord+1])
 | 
			
		||||
    living_neighbours.append(ext_universe[xcoord+2][ycoord+2])
 | 
			
		||||
    living_neighbours = ext_universe[xcoord][ycoord:ycoord+3]
 | 
			
		||||
    living_neighbours += ext_universe[xcoord+1][ycoord:ycoord+3:2]
 | 
			
		||||
    living_neighbours += ext_universe[xcoord+2][ycoord:ycoord+3]
 | 
			
		||||
 | 
			
		||||
    return living_neighbours.count(True)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user