private int NumberOfAliveNeighbours(Coordinate coordinate) => GetNeighboursInWorld(coordinate) .Count(IsAlive);
private Location[] GetNeighboursInWorld(Coordinate coordinate) => Locations.Where(l => coordinate.Neighbours() .Select(c => c.WrapCoordinate(Size)) .Where(c => !c.Equals(coordinate)) .Contains(l.Coordinate)) .ToArray();