Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int[,] TypeC(int r, int c)
- {
- int[,] m = new int[r, c];
- int number = 1;
- for (int i = r-1; i >= 0; i--)
- {
- int startR = i;
- for (int j = 0; j < r-startR; j++)
- {
- if (j>c-1) { break; }
- m[startR + j, j] = number; number++;
- }
- }
- for (int i = 1; i < c; i++)
- {
- int startC = i;
- for (int j = 0; j < c - startC; j++)
- {
- if (j > r - 1) { break; }
- m[j, startC + j] = number; number++;
- }
- }
- return m;
- }
- static int[,] TypeD(int r, int c)
- {
- int[,] m = new int[r, c];
- int number = 1;
- int indexR = 0;
- int indexC = 0;
- while (number<=r*c)
- {
- m[indexR, indexC] = number;
- number++;;
- bool canGoDown = (indexR + 1) < r && m[indexR + 1, indexC] == 0 && !((indexC - 1) >= 0 && m[indexR, indexC - 1] == 0);
- if (canGoDown) { indexR++; continue; }
- bool canGoRight = (indexC + 1) < c && m[indexR, indexC + 1] == 0;
- if (canGoRight) { indexC++; continue; }
- bool canGoUp = (indexR - 1) >= 0 && m[indexR - 1, indexC] == 0;
- if (canGoUp) { indexR--; continue; }
- bool canGoLeft = (indexC - 1) >= 0 && m[indexR, indexC - 1] == 0;
- if (canGoLeft) { indexC--; continue; }
- }
- return m;
- }
Advertisement
Add Comment
Please, Sign In to add comment