gesced2.c 522 Bytes
for (int c0 = 1; c0 <= 4; c0 += 1)
  for (int c1 = 5; c1 < M - 9; c1 += 1)
    S1(c0, c1);
for (int c0 = 5; c0 < M - 9; c0 += 1) {
  for (int c1 = -c0 + 1; c1 <= 4; c1 += 1)
    S2(c0 + c1, c0);
  for (int c1 = 5; c1 <= min(M - 10, M - c0); c1 += 1) {
    S2(c0 + c1, c0);
    S1(c0, c1);
  }
  for (int c1 = M - c0 + 1; c1 < M - 9; c1 += 1)
    S1(c0, c1);
  for (int c1 = M - 9; c1 <= M - c0; c1 += 1)
    S2(c0 + c1, c0);
}
for (int c0 = M - 9; c0 <= M; c0 += 1)
  for (int c1 = 5; c1 < M - 9; c1 += 1)
    S1(c0, c1);