Manipulate[
{x, y} = Floor[({pick[[1]], pick[[2]]} - bias)/{dx, dy}];
surrpts =
Plus[#, bias] & /@ (#*{dx, dy} & /@ (Plus[#, {x, y}] & /@
Tuples[{0, 1}, 2]));
Show[Graphics[
GraphicsComplex[
pts, {Line[(*edges*)edgelist], PointSize[Large], Point[pts], Red,
Point[surrpts]}]]],
{{pick, {1.7, 1.7}}, Locator},
"Highlight chose point", TrackedSymbols :> True,
Initialization :> {dx = dy = 0.3;
pts = Flatten[Table[{nx, ny}, {nx, 1, 5, dx}, {ny, 1, 4, dy}], 1];
bias = pts[[1]];
edgelist = {};
Do[
If[MemberQ[pts, pts[[i]] + {0, dy}],