Exemple #1
0
        protected void RotateFigure()
        {
            FigureCorner OldFigureCorner;

            byte[,] CurSheet = new byte[maxFigureSize, maxFigureSize];

            ClearFigureIntoGlass();

            if (TryRotate())
            {
                OldFigureCorner = FigureCorner;

                if (FigureCorner > FigureCorner.Corner00)
                {
                    FigureCorner--;
                }
                else
                {
                    FigureCorner = FigureCorner.Corner270;
                }

                RotateFigureWorksheet(CurSheet);

                if (!PutFigureIntoGlass(MoveDirection.Down))
                {
                    FigureCorner = OldFigureCorner;
                    RotateFigureWorksheet(CurSheet);
                    PutFigureIntoGlass(MoveDirection.Down);
                }
            }
            else
            {
                PutFigureIntoGlass(MoveDirection.Down);
            }
        }
Exemple #2
0
        protected void GenerateNewFigure()
        {
            Random rnd = new Random();

            StopTimer();
            SecondFigure = FirstFigure;
            if (SecondColor == FirstColor)
            {
                SecondColor = (byte)(rnd.Next(maxFigureColor) + 1);
            }
            else
            {
                SecondColor = FirstColor;
            }

            FigureType   = SecondFigure;
            FigureX      = 5;
            FigureY      = 0;
            FigureCorner = FigureCorner.Corner270;
            Array.Clear(FigureWorkSheet, 0, FigureWorkSheet.Length);

            switch (FigureType)
            {
            case 0:
                ArrayCopyTo(Triada, FigureWorkSheet);
                break;

            case 1:
                ArrayCopyTo(LCorner, FigureWorkSheet);
                break;

            case 2:
                ArrayCopyTo(RCorner, FigureWorkSheet);
                break;

            case 3:
                ArrayCopyTo(LZigzag, FigureWorkSheet);
                break;

            case 4:
                ArrayCopyTo(RZigzag, FigureWorkSheet);
                break;

            case 5:
                ArrayCopyTo(Stick, FigureWorkSheet);
                break;

            case 6:
                ArrayCopyTo(Box, FigureWorkSheet);
                break;

            default: break;
            }

            SetFigureColor();
            FirstFigure = (byte)rnd.Next(maxFigureNumber);
            FirstColor  = (byte)(rnd.Next(maxFigureColor) + 1);
            StartTimer(interval);
        }