My first submission to Ruby Quiz: n = ARGV[0].to_i # pass this method two coordinates relative to the center of the spiral def spiral(x, y) max_xy = [x,y].collect{|num| num.abs}.max offset = (max_xy * 2 - 1)**2 - 1 if -(x) == max_xy and x != y y + offset + max_xy elsif y == max_xy x + offset + (3 * max_xy) elsif x == max_xy -y + offset + (5 * max_xy) elsif -(y) == max_xy -x + offset + (7 * max_xy) end end for row in 0..(n - 1) # the ease of writing one-liners in ruby lends itself to abuse... puts (0..(n - 1)).map{|col| spiral(col - (n / 2), (n / 2) - row).to_s.rjust(4) }.join end