Move 2015 out of the way.

This commit is contained in:
Bert Peters
2016-12-01 11:25:19 +01:00
parent a75d14ec17
commit b37fd44fa7
50 changed files with 0 additions and 0 deletions

54
2015/day-18/solution.py Normal file
View File

@@ -0,0 +1,54 @@
from __future__ import print_function
import fileinput
def neighbours(x, y, field):
alive = 0
for i in range(max(x - 1, 0), min(x + 2, len(field))):
for j in range(max(y - 1, 0), min(y + 2, len(field))):
if i == x and j == y:
continue
if field[i][j]:
alive += 1
return alive
def newState(x, y, field):
alive = neighbours(x, y, field)
if field[x][y]:
return alive == 2 or alive == 3
return alive == 3
def update(field):
newField = []
for x in range(len(field)):
newField.append([newState(x, y, field) for y in range(len(field))])
return newField
def enableCorners(field):
size = len(field) - 1
field[0][0] = field[0][size] = field[size][0] = field[size][size] = True
field = []
for line in fileinput.input():
field.append([c == '#' for c in line.strip()])
original = field
for i_ in range(100):
field = update(field)
print ("Without corners:", sum([sum(int(y) for y in x) for x in field]))
field = original
enableCorners(field)
for i_ in range(100):
field = update(field)
enableCorners(field)
print ("With corners:", sum([sum(int(y) for y in x) for x in field]))