//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(); } }
//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(); }