コード例 #1
0
ファイル: RightShift.cs プロジェクト: minskowl/MY
 /// <summary>
 /// Does the bubles shift.
 /// </summary>
 /// <param name="field">The field.</param>
 public void Do(BubbleField field)
 {
     for (int row = field.Size - 1; row >= 0; row--)
     {
         ShiftRow(field, row);
     }
 }
コード例 #2
0
 /// <summary>
 /// Does the bubles shift.
 /// </summary>
 /// <param name="field">The field.</param>
 public void Do(BubbleField field)
 {
     for (int column = 0; column < field.Size; column++)
     {
         ShiftColumn(field, column);
     }
 }
コード例 #3
0
ファイル: NewColumnShift.cs プロジェクト: minskowl/MY
        public void Do(BubbleField field)
        {
            _field = field;


            for (int column = _field.Size - 1; column >= 0; column--)
            {
                if (field.IsEmptyColumn(column))
                {
                    GenerateColumn(column);
                }
            }
        }
コード例 #4
0
ファイル: EmptyColumnShift.cs プロジェクト: minskowl/MY
        /// <summary>
        /// Does the bubles shift.
        /// </summary>
        /// <param name="field">The field.</param>
        public void Do(BubbleField field)
        {
            _field = field;
            var shiftCounter = 0;

            for (int column = _field.Size - 1; column >= 0; column--)
            {
                if (field.IsEmptyColumn(column))
                {
                    shiftCounter++;
                }
                else if (shiftCounter > 0)
                {
                    ShiftColumn(column, shiftCounter);
                }
            }
        }
コード例 #5
0
ファイル: RightShift.cs プロジェクト: minskowl/MY
        private void ShiftRow(BubbleField field, int row)
        {
            var shiftCounter = 0;

            for (int column = field.Size - 1; column >= 0; column--)
            {
                var bubble = field[row, column];
                if (bubble == null)
                {
                    shiftCounter++;
                }
                else
                {
                    if (shiftCounter > 0)
                    {
                        FieldControl.SetColumn(bubble, column + shiftCounter);
                    }
                }
            }
        }
コード例 #6
0
        private void ShiftColumn(BubbleField field, int column)
        {
            var shiftCounter = 0;

            for (int row = field.Size - 1; row >= 0; row--)
            {
                var bubble = field[row, column];
                if (bubble == null)
                {
                    shiftCounter++;
                }
                else
                {
                    if (shiftCounter > 0)
                    {
                        FieldControl.SetRow(bubble, row + shiftCounter);
                    }
                }
            }
        }