ZigZag2[size_] := Module[{data, i, j, elem}, data = ConstantArray[0, {size, size}]; i = j = 1; For[elem = 0, elem < size^2, elem++, data[[i, j]] = elem; If[Mod[i + j, 2] == 0, If[j < size, j++, i += 2]; If[i > 1, i--] , If[i < size, i++, j += 2]; If[j > 1, j--]; ]; ]; data ]