These are common enough that we might want to consider just moving them into their own functions.
i.e.
```c++
if (g->move_ok(i,j) && g->mon_ok(i,j) && g->pos_ok(i,j))
```