그림 3-15와 같이 2를 넘어가면 다시 0으로 돌아오게 하는 것은 나머지 연산자를 이용하여 다음과 같이 작성할 수 있습니다.
d = (d + 1) % 3;
이제 전환된 방향을 이용하여 다음 위치를 계산할 수 있습니다.
nx = x + dx[d];
ny = y + dy[d];
전환된 방향으로도 진행을 못하는 경우가 있습니다. 바로 모든 숫자가 다 채워졌을 때입니다. 이 경우에는 break를 이용하여 숫자 채우기를 종료합니다.
if (nx == n || ny == n || nx == -1 || ny == -1 || triangle[ny][nx] != 0) break;
if 문이 종료되고 나면 nx, ny에는 진행할 수 있는 방향 위치가 들어 있습니다. if 문 이후에 다음과 같이 현재 위치를 업데이트합니다.
x = nx;
y = ny;