input = [[4,3,2,1], [5,6,7,8], [12,11,10,9], [13,14,15,16]]
def f(a,x)a[0]?(x%2==0?a.shift.reverse: a.shift)+f(a,x+1):[]end
p f(input,0)
aW5wdXQgPSBbWzQsMywyLDFdLCBbNSw2LDcsOF0sIFsxMiwxMSwxMCw5XSwgWzEzLDE0LDE1LDE2XV0KIApkZWYgZihhLHgpYVswXT8oeCUyPT0wP2Euc2hpZnQucmV2ZXJzZTogYS5zaGlmdCkrZihhLHgrMSk6W11lbmQKCnAgZihpbnB1dCwwKQo=
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]