public IEnumerable <Coordinate4> GetNeighbors(Coordinate4 c) { var permutations = new[] { -1, 0, 1 }.SelectMany(x => new[] { -1, 0, 1 }.Select(y => (x, y))).SelectMany(o => new[] { -1, 0, 1 }.Select(z => (o.x, o.y, z))).SelectMany(o => new[] { -1, 0, 1 }.Select(w => (o.x, o.y, o.z, w))); return(permutations.Where(o => o != (0, 0, 0, 0)).Select(o => new Coordinate4(c.X + o.x, c.Y + o.y, c.Z + o.z, c.W + o.w))); }
public bool IsActive(Coordinate4 c) { return(_grid.Contains(c)); }