Esempio n. 1
0
        public void RotateCounterclockwise()
        {
            switch (m_objType)
            {
            case Types.SQUARE:
                break;

            case Types.I:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[0].X -= 2;
                    m_objPoints[0].Y += 2;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y -= 1;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[3].X -= 2;
                    m_objPoints[3].Y += 2;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X -= 2;
                    m_objPoints[0].Y -= 2;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[3].X -= 2;
                    m_objPoints[3].Y -= 2;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y += 1;
                }
                break;

            case Types.T:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y += 1;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y -= 1;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y += 1;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y += 1;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y -= 1;
                }
                break;

            case Types.S:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y -= 1;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[0].X += 2;
                    m_objPoints[0].Y += 0;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y -= 1;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X += 2;
                    m_objPoints[3].Y += 0;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y += 1;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X += 0;
                    m_objPoints[3].Y -= 2;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y += 1;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[0].X += 0;
                    m_objPoints[0].Y -= 2;
                }
                break;

            case Types.Z:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[3].X -= 0;
                    m_objPoints[3].Y -= 2;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[0].X -= 0;
                    m_objPoints[0].Y -= 2;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X -= 2;
                    m_objPoints[0].Y += 0;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[3].X -= 2;
                    m_objPoints[3].Y += 0;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y -= 1;
                }
                break;

            case Types.J:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y -= 1;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[0].X -= 0;
                    m_objPoints[0].Y += 2;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[0].X += 0;
                    m_objPoints[0].Y -= 2;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X -= 2;
                    m_objPoints[0].Y -= 0;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y += 1;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[0].X += 2;
                    m_objPoints[0].Y -= 0;
                }
                break;

            case Types.L:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y += 1;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[3].X -= 2;
                    m_objPoints[3].Y += 0;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[3].X += 2;
                    m_objPoints[3].Y += 0;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[3].X -= 0;
                    m_objPoints[3].Y -= 2;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y -= 1;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[3].X -= 0;
                    m_objPoints[3].Y += 2;
                }
                break;
            }
            switch (m_objCurrentRotation)
            {
            case ClockwiseRotations.INITIAL:
                m_objCurrentRotation = ClockwiseRotations.TWOSEVENTY;
                break;

            case ClockwiseRotations.NINETY:
                m_objCurrentRotation = ClockwiseRotations.INITIAL;
                break;

            case ClockwiseRotations.ONEEIGHTY:
                m_objCurrentRotation = ClockwiseRotations.NINETY;
                break;

            case ClockwiseRotations.TWOSEVENTY:
                m_objCurrentRotation = ClockwiseRotations.ONEEIGHTY;
                break;
            }
        }
Esempio n. 2
0
        public void RotateClockwise(int intMinLeft, int intMaxRight)
        {
            Point[] objTestPoints = new Point[] { new Point(), new Point(), new Point(), new Point() };
            switch (m_objType)
            {
            case Types.SQUARE:
                break;

            case Types.I:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[0].X += 2;
                    m_objPoints[0].Y += 2;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[3].X += 2;
                    m_objPoints[3].Y += 2;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y += 1;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[3].X += 2;
                    m_objPoints[3].Y -= 2;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[0].X += 2;
                    m_objPoints[0].Y -= 2;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y += 1;
                }
                break;

            case Types.T:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y -= 1;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y -= 1;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y += 1;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y -= 1;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y += 1;
                }
                break;

            case Types.S:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y -= 1;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X -= 0;
                    m_objPoints[3].Y += 2;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y -= 1;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[0].X -= 0;
                    m_objPoints[0].Y += 2;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y += 1;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X -= 2;
                    m_objPoints[3].Y -= 0;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y += 1;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[0].X -= 2;
                    m_objPoints[0].Y -= 0;
                }
                break;

            case Types.Z:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[0].X += 2;
                    m_objPoints[0].Y -= 0;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[3].X += 2;
                    m_objPoints[3].Y -= 0;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X += 0;
                    m_objPoints[0].Y += 2;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[3].X += 0;
                    m_objPoints[3].Y += 2;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y -= 1;
                }
                break;

            case Types.J:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[0].X += 2;
                    m_objPoints[0].Y += 0;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y -= 1;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[0].X -= 2;
                    m_objPoints[0].Y += 0;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[0].X -= 0;
                    m_objPoints[0].Y += 2;
                    m_objPoints[1].X += 1;
                    m_objPoints[1].Y += 1;
                    m_objPoints[3].X -= 1;
                    m_objPoints[3].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[3].X += 1;
                    m_objPoints[3].Y += 1;
                    m_objPoints[1].X -= 1;
                    m_objPoints[1].Y -= 1;
                    m_objPoints[0].X += 0;
                    m_objPoints[0].Y -= 2;
                }
                break;

            case Types.L:
                if (m_objCurrentRotation == ClockwiseRotations.INITIAL)
                {
                    m_objPoints[3].X += 0;
                    m_objPoints[3].Y += 2;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y -= 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY)
                {
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y += 1;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[3].X += 0;
                    m_objPoints[3].Y -= 2;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.NINETY)
                {
                    m_objPoints[3].X -= 2;
                    m_objPoints[3].Y -= 0;
                    m_objPoints[2].X -= 1;
                    m_objPoints[2].Y -= 1;
                    m_objPoints[0].X += 1;
                    m_objPoints[0].Y += 1;
                }
                else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY)
                {
                    m_objPoints[0].X -= 1;
                    m_objPoints[0].Y -= 1;
                    m_objPoints[2].X += 1;
                    m_objPoints[2].Y += 1;
                    m_objPoints[3].X += 2;
                    m_objPoints[3].Y -= 0;
                }
                break;
            }

            switch (m_objCurrentRotation)
            {
            case ClockwiseRotations.INITIAL:
                m_objCurrentRotation = ClockwiseRotations.NINETY;
                break;

            case ClockwiseRotations.NINETY:
                m_objCurrentRotation = ClockwiseRotations.ONEEIGHTY;
                break;

            case ClockwiseRotations.ONEEIGHTY:
                m_objCurrentRotation = ClockwiseRotations.TWOSEVENTY;
                break;

            case ClockwiseRotations.TWOSEVENTY:
                m_objCurrentRotation = ClockwiseRotations.INITIAL;
                break;
            }
        }