Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
12-liner: aye aye sir solution in Clear category for Safe Coasts by przemyslaw.daniel
def finish_map(data, it=__import__('itertools')):
check = lambda a, b: 0 <= a < len(data) and 0 <= b < len(data[0])
neighbors = [(1,0),(-1,0),(0,1),(0,-1),(1,1),(-1,-1),(-1,1),(1,-1)]
data, ready = [list(x) for x in data], False
while not ready:
ready = True
for x, y in it.product(range(len(data)), range(len(data[0]))):
a = [data[x+i][y+j] for i, j in neighbors[:4] if check(x+i, y+j)]
b = [data[x+i][y+j] for i, j in neighbors if check(x+i, y+j)]
if data[x][y] == '.' and 'D' in a and 'X' not in b:
data[x][y], ready = 'D', False
return [''.join(x).replace('.', 'S') for x in data]
May 17, 2017
Comments: