You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

45 lines
1.1 KiB

#!/bin/env python3
from copy import deepcopy
import sys
def show(space):
for row in space: print("".join(row))
print()
def neighbors(space, y, x):
dirs = [(y, x) for x in [0, 1, -1] for y in [0, 1, -1]][1:]
neighbors = []
for a, b in dirs:
try:
neighbors.append(space[y + a][x + b])
except IndexError:
pass
return neighbors
def next(space):
new = deepcopy(space)
for y in range(len(space)):
for x in range(len(space[y])):
occ = neighbors(space, y, x).count("#")
if space[y][x] == "L":
if occ == 0: new[y][x] = "#"
if space[y][x] == "#":
if occ >= 4: new[y][x] = "L"
return new
def count(space):
return sum(row.count('#') for row in space)
if __name__ == '__main__':
space = [list(line) for line in open(r"C:\Users\Maya\Desktop\Uni\WS_2021\AoC\input11")]
while space != next(next(space)):
space = next(space)
print(count(space))
print(count(next(space)))
print(count(next(next(space))))