What I want to do is try to recreate the movement used in Final Fantasy Tactics or Fire Emblem 1 or 2.

Basically, you have a character that can walk a certain number of tiles and they can only walk to adjacent squares, not diagonally.

When trying to think about ways to try and recreate it, I looked into the range() proc to see if that would help. Unfortunately, no; it takes diagonals into account and so far, I cannot think of a way that would make it any simpler. Any ideas?

I'm really not asking for code or for someone to program it for me, I just need some ideas or pseudo-code. Thanks in advance.
I wrote up something like this here.