It will probably be wise to create a METHOD which computes the next subscript in the circle. Note, first, that your "NEW" position is always in the center. Next, note that relative to the center point (X, Y), the positions around it can be thought of as follows:
Thus, you might write a function which given (-1, +1) gives you back (0, +1); and if you give it (0, +1) returns (+1, +1), etc., etc,. all the way through giving it (-1, 0) returns (-1 +1). This will simplify your task of finding out the next move!