1) How is pathfinding done?
2) How do you prevent a moving sprite from being caught in a v-shaped rut made of obstacles? Like this:
__
A -> # | B
__|
Where A and B are the points the sprite needs to travel,
# is the sprite,
-> is the direction the sprite is moving, and
_ and | are obstacles?