Example #1
0
 //Events when changing figure for the next
 //Події при необхідності змінити фігуру на наступну
 public void NextTetromino()
 {
     currentTetromino         = nextTetromino;
     currentTetromino.columns = columns;
     if (gameStarted)
     {
         //Check if there is space on the screen to put a new figure
         //перевірка, чи нова фігура поміститься на поле
         if (!currentTetromino.CanItFit())
         {
             GameOver();
         }
     }
     if (gameStarted)
     {
         //Stop the timer
         //зупинка таймера
         DropTimer.Stop();
         comboLines = 0;
         //Clear filled lines
         //Очищення повних ліній
         for (int row = 0; row < rows; ++row)
         {
             if (CheckLine(row))
             {
                 ClearLine(row);
                 ++comboLines;
                 ++lines;
             }
         }
         //Refresh score
         //Оновлення рахунку
         UpdateScore();
         //Refresh level
         //оновлення рівня
         UpdateLevel();
         //Show score
         //показ тексту про рахунок
         DisplayInfoText();
         //Draw figure
         //малювання фігури
         currentTetromino.DrawTetromino(true);
         //Chose next figure
         //вибір наступної фігури
         nextTetromino = GenerateTetromino();
         //Clear 'next figure' window
         //очищення вікна наступної фігури
         MakeNextGlass();
         //Draw next figure
         //малювання наступної фігури
         nextTetromino.DrawNext();
         //Redraw screen
         //оновлення екрану
         ReDraw();
         //Start timer
         //відновлення таймера
         DropTimer.Start();
     }
 }
Example #2
0
 //Menu 'Start game'
 //Пункт меню "Початок гри"
 private void startToolStripMenuItem_Click(object sender, EventArgs e)
 {
     //Load settings
     //завантаження налаштування
     LoadSettings();
     //Initialize settings
     //ініціалізація налаштувань
     ApplySize();
     score = 0;
     lines = 0;
     level = startingLevel;
     //Set the falling speed
     //встановлення швидкості падіння
     UpdateSpeed();
     //Show score, number of cleared lines and game level
     //показ очків, кількості знищених ліній та рівня
     DisplayInfoText();
     //Create main screen
     //створення ігрового поля
     MakeGlass();
     //Create screen to show next figure
     //створення поля для показу наступної фігури
     MakeNextGlass();
     //Select current figure
     //вибір поточної фігури
     currentTetromino = GenerateTetromino();
     //Draw current figure
     //малювання поточної фігури
     currentTetromino.DrawTetromino(true);
     //Helper figure counter
     //помічник гравця
     pentoCounter = pentoHelper - 1;
     //Choose next figure
     //вибір наступної фігури
     nextTetromino = GenerateTetromino();
     //Draw next figure
     //малювання наступної фігури
     nextTetromino.DrawNext();
     //Screen refresh
     //оновлення поля
     ReDraw();
     //Game started flag
     //прапорець початку гри
     gameStarted = true;
     //Game paused flag
     //Прапорець паузи
     gamePaused = false;
     //Drop timer start
     //запуск таймера падіння фігур
     DropTimer.Enabled = true;
     //Show score
     //показ тексту про рахунок
     DisplayInfoText();
 }
Example #3
0
        //Chose next figure
        //Вибір наступної фігури
        private Tetromino GenerateTetromino()
        {
            int       rng;
            Tetromino generatedTetromino = new Tetromino(this);

            //'Tetromino' mode figures
            //Фігури для режиму "Тетроміно"
            if (tetroMenu.Checked)
            {
                rng = random.Next(0, 7);
                switch (rng)
                {
                case 0:
                    generatedTetromino = new I(this);
                    nextTetrominoColor = IColor;
                    break;

                case 1:
                    generatedTetromino = new O(this);
                    nextTetrominoColor = OColor;
                    break;

                case 2:
                    generatedTetromino = new T(this);
                    nextTetrominoColor = TColor;
                    break;

                case 3:
                    generatedTetromino = new J(this);
                    nextTetrominoColor = JColor;
                    break;

                case 4:
                    generatedTetromino = new L(this);
                    nextTetrominoColor = LColor;
                    break;

                case 5:
                    generatedTetromino = new S(this);
                    nextTetrominoColor = SColor;
                    break;

                case 6:
                    generatedTetromino = new Z(this);
                    nextTetrominoColor = ZColor;
                    break;
                }
            }
            //'Pentomino' mode figures
            //Фігури для режиму "Пентоміно"
            if (pentoMenu.Checked)
            {
                rng           = random.Next(0, 18);
                pentoCounter -= 1;
                if (pentoCounter == 0)
                {
                    pentoCounter       = pentoHelper;
                    generatedTetromino = new pHelper(this);
                    nextTetrominoColor = pHelperColor;
                }
                else
                {
                    switch (rng)
                    {
                    case 0:
                        generatedTetromino = new pF(this);
                        nextTetrominoColor = pFColor;
                        break;

                    case 1:
                        generatedTetromino = new pFm(this);
                        nextTetrominoColor = pFmColor;
                        break;

                    case 2:
                        generatedTetromino = new pI(this);
                        nextTetrominoColor = pIColor;
                        break;

                    case 3:
                        generatedTetromino = new pL(this);
                        nextTetrominoColor = pLColor;
                        break;

                    case 4:
                        generatedTetromino = new pLm(this);
                        nextTetrominoColor = pLmColor;
                        break;

                    case 5:
                        generatedTetromino = new pN(this);
                        nextTetrominoColor = pNColor;
                        break;

                    case 6:
                        generatedTetromino = new pNm(this);
                        nextTetrominoColor = pNmColor;
                        break;

                    case 7:
                        generatedTetromino = new pP(this);
                        nextTetrominoColor = pPColor;
                        break;

                    case 8:
                        generatedTetromino = new pPm(this);
                        nextTetrominoColor = pPmColor;
                        break;

                    case 9:
                        generatedTetromino = new pT(this);
                        nextTetrominoColor = pTColor;
                        break;

                    case 10:
                        generatedTetromino = new pU(this);
                        nextTetrominoColor = pUColor;
                        break;

                    case 11:
                        generatedTetromino = new pV(this);
                        nextTetrominoColor = pVColor;
                        break;

                    case 12:
                        generatedTetromino = new pW(this);
                        nextTetrominoColor = pWColor;
                        break;

                    case 13:
                        generatedTetromino = new pX(this);
                        nextTetrominoColor = pXColor;
                        break;

                    case 14:
                        generatedTetromino = new pY(this);
                        nextTetrominoColor = pYColor;
                        break;

                    case 15:
                        generatedTetromino = new pYm(this);
                        nextTetrominoColor = pYmColor;
                        break;

                    case 16:
                        generatedTetromino = new pZ(this);
                        nextTetrominoColor = pZColor;
                        break;

                    case 17:
                        generatedTetromino = new pZm(this);
                        nextTetrominoColor = pZmColor;
                        break;
                    }
                }
            }
            return(generatedTetromino);
        }