extract survive check and neighbour count, use dict comprehension