I have this code,
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[very thick, step = 2] (0, 0) grid (6, 6);
\node[circle, fill=blue] (a) at (2, 0) {};
\node[circle, fill=blue] (b) at (4, 0) {};
\node[circle, fill=blue] (c) at (0, 2) {};
\node[circle, fill=blue] (d) at (2, 2) {};
\node[circle, fill=blue] (e) at (4, 2) {};
\node[circle, fill=blue] (f) at (0, 4) {};
\node[circle, fill=blue] (g) at (2, 4) {};
\node[circle, fill=blue] (h) at (4, 4) {};
\path[very thick, draw=red, ->]
(a) edge node [right] {} (c)
(c) edge[bend left] node [right] {} (d)
(d) edge[bend right] node [right] {} (g)
(g) edge node [right] {} (b)
(b) edge[bend left] node [right] {} (f)
(h) edge[bend left] node [right] {} (e)
(e) edge node [right] {} (a);
\end{tikzpicture}
\end{document}
which produces the following diagram:
I have used the code from this question to make the arrows bendy, but ideally I would like the arrow that goes from node (b) to node (f) to be even curvier, and bend around the outside of the grid. What would be a good way to go about this?
Also, is there a way to create the nodes on the points of the grid, without explicitly giving the coordinates (ie. based on the size of the grid and the step size)? So that if I reshape the grid the nodes change accordingly.