Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class OnionCube
- {
- public static void FillCube(int[,,] cube, int len)
- {
- int val = (len / 2) + 1;
- for (int i = 0; i < len; i++)
- {
- if (i == 0 || i == len - 1)
- {
- FillOuterLayer(cube, i, len, val);
- }
- else if (i == len / 2 && len % 2 != 0)
- {
- FillMidLayer(cube, i, len, val, true);
- }
- else
- {
- FillMidLayer(cube, i, len, val, false);
- }
- }
- }
- static void FillMidLayer(int[,,] cube, int x, int dim, int val, bool Iscore)
- {
- int r = dim - 1, l = 0, balance = 0, k = dim - 1, c = 0;
- while (c < (dim / 2))
- {
- while (balance < k)
- {
- cube[x, r, r]
- = cube[x, r, balance]
- = cube[x, l, balance]
- = cube[x, balance, l]
- = cube[x, balance, r]
- = val;
- balance++;
- }
- c++;
- balance = c;
- r--;
- l++;
- k--;
- val--;
- }
- if (Iscore)
- {
- cube[x, dim / 2, dim / 2] = val;
- }
- else
- {
- cube[x, dim / 2, dim / 2] = val + 1;
- }
- }
- static void FillOuterLayer(int[,,] cube, int x, int dim, int val)
- {
- for (int i = 0; i < dim; i++)
- {
- for (int j = 0; j < dim; j++)
- {
- cube[x, i, j] = val;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement