private static SpiralDirections GetNextDirection(SpiralDirections currentDirection) { switch (currentDirection) { case SpiralDirections.right: return SpiralDirections.down; case SpiralDirections.down: return SpiralDirections.left; case SpiralDirections.left: return SpiralDirections.up; case SpiralDirections.up: return SpiralDirections.right; } return SpiralDirections.right; // should never be hit }
private static Coordinates GetNextCoordinates(Coordinates currentCoordinates, SpiralDirections currentDirection) { var newCoordinates = new Coordinates { x = currentCoordinates.x, y = currentCoordinates.y }; switch (currentDirection) { case SpiralDirections.right: newCoordinates.x++; break; case SpiralDirections.down: newCoordinates.y++; break; case SpiralDirections.left: newCoordinates.x--; break; case SpiralDirections.up: newCoordinates.y--; break; } return newCoordinates; }