Advertisement
alpenglow

OnionCube

Apr 5th, 2020
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.59 KB | None | 0 0
  1. public class OnionCube
  2. {
  3.     public static void FillCube(int[,,] cube, int len)
  4.     {
  5.         int val = (len / 2) + 1;
  6.         for (int i = 0; i < len; i++)
  7.         {
  8.             if (i == 0 || i == len - 1)
  9.             {
  10.                 FillOuterLayer(cube, i, len, val);
  11.             }
  12.             else if (i == len / 2 && len % 2 != 0)
  13.             {
  14.                 FillMidLayer(cube, i, len, val, true);
  15.             }
  16.             else
  17.             {
  18.                 FillMidLayer(cube, i, len, val, false);
  19.             }
  20.         }
  21.     }
  22.     static void FillMidLayer(int[,,] cube, int x, int dim, int val, bool Iscore)
  23.     {
  24.         int r = dim - 1, l = 0, balance = 0, k = dim - 1, c = 0;
  25.  
  26.         while (c < (dim / 2))
  27.         {
  28.             while (balance < k)
  29.             {
  30.                 cube[x, r, r]
  31.                 = cube[x, r, balance]
  32.                 = cube[x, l, balance]
  33.                 = cube[x, balance, l]
  34.                 = cube[x, balance, r]
  35.                 = val;
  36.                 balance++;
  37.             }
  38.             c++;
  39.             balance = c;
  40.             r--;
  41.             l++;
  42.             k--;
  43.             val--;
  44.         }
  45.         if (Iscore)
  46.         {
  47.             cube[x, dim / 2, dim / 2] = val;
  48.         }
  49.         else
  50.         {
  51.             cube[x, dim / 2, dim / 2] = val + 1;
  52.         }
  53.     }
  54.     static void FillOuterLayer(int[,,] cube, int x, int dim, int val)
  55.     {
  56.         for (int i = 0; i < dim; i++)
  57.         {
  58.             for (int j = 0; j < dim; j++)
  59.             {
  60.                 cube[x, i, j] = val;
  61.             }
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement