Nine Gems - While True Loop?

In the spirit of creative thinking, I tried solving Nine Gems with a While-True loop, but for some reason it didn’t loop.
Is it a bug, or is my code amiss somehow? (please see attached screencap)

You only have four moves, so your movements are limited.
Hint: You don’t have to be at the gem’s exact position to collect it.

Your code is fine, but the level stops when you move a fifth time, since the goals are to do it in 4 moves.