示例#1
0
 private void InitializeSlots()
 {
     for (var i = 0; i < Size; i++)
     {
         for (var j = 0; j < Size; j++)
         {
             var slotType = GetSlotType(i, j);
             Slots[i, j] = new CubeSlot(CenterColor, slotType);
         }
     }
 }
示例#2
0
        public CubeFace(CubeColor centerColor, ushort size)
        {
            if (size < 2)
            {
                throw new Exception("Invalid cube face size");
            }

            CenterColor = centerColor;
            Size        = size;
            Slots       = new CubeSlot[size, size];

            Initialize();
        }
示例#3
0
        private void TurnLineReversed(ref ushort indexer)
        {
            var faces = new[]
            {
                FrontFace, RightFace, BackFace, LeftFace, FrontFace
            };

            var temp = new CubeSlot[Size];

            foreach (var currentFace in faces)
            {
                for (var i = 0; i < currentFace.Size; i++)
                {
                    //swap
                    var currentTemp = currentFace.Slots[indexer, i];
                    currentFace.Slots[indexer, i] = temp[i];
                    temp[i] = currentTemp;
                }
            }
        }
示例#4
0
        private void TurnColumnReversed(ref ushort indexer)
        {
            var faces = new[]
            {
                TopFace, BackFace, BottomFace, FrontFace, TopFace
            };

            var temp = new CubeSlot[Size];

            foreach (var currentFace in faces)
            {
                for (var i = 0; i < currentFace.Size; i++)
                {
                    //swap
                    var currentTemp = currentFace.Slots[i, indexer];
                    currentFace.Slots[i, indexer] = temp[i];
                    temp[i] = currentTemp;
                }
            }
        }