If you want to use dependency inversion for decoupling then it is neither right nor wrong. You need to do what you are comfortable with. However, you will probably run into scenarios where the decoupling is a real necessity. In the given scenario it seems rather like all these things belong together.
If you end up with something like a Maze
that can have various different 'inhabitants' and you need that to be extensible then you could refactor to something like a IInhabitant
.
So if you know that you are not going to have a fixed structure but rather something more extensible then you may be better off going with the interfaces. Interfaces may also aid in testing and in doing so highlight some other abstractions you require, e.g. movement.