WFA Ugadai chislo

From TÜ Narva Kolledži Wiki
Revision as of 17:17, 4 September 2022 by Pavel (talk | contribs) (Protected "WFA Ugadai chislo" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Обязательные компоненты (объекты) формы frmUgadai:

  • TextBox текcтовое поле для ввода числа txtNumber
  • Label метка для вывода информации пользователю lblInfo
  • Button кнопка выхода btnExit
  • Button кнопка повтора игры btnAgain
  • Button кнопка OK btnOk
  • Label метка для вывода количества попыток lblAttempt



namespace WFA
{
    public partial class frmUgadai : Form
    {
        // Объявление статических STATIC переменных, которые будут доступны во всех методах
        // в эту переменную будем записывать придуманное компьютером число
        static int CompNumber;
        // в этой переменной будем хранить количество попыток пользователя
        static int Attempt;

        public frmUgadaika()
        {
            InitializeComponent();
            // Вызываем метод начала игры NewGame
            NewGame();
        }

        public void NewGame()
        {
            // Задаем количество попыток
            Attempt = 10;

            // Генерируем случайное число от 1 до 100
            Random r = new Random();
            CompNumber = r.Next(1, 100);

            // Выводим количество попыток на экран в метку lblAttempt, предварительно сконвертировав в текст
            lblAttempt.Text = Attempt.ToString();

            // активируем кнопку ОК
            btnOk.Enabled = true;

            // Кнопку повтора делаем неактивной
            btnAgain.Enabled = false;

            // Очищаем поле ввода числа
            txtNumber.Text = "";

            // Очищаем поле информации
            lblInfo.Text = "";

            // Ставим курсор в поле ввода числа
            txtNumber.Focus();
        }


        private void btnExit_Click(object sender, EventArgs e)
        {
            // Выходим из программы если пользователь нажал кнопку "Выход"
            Application.Exit();
        }

        private void btnOk_Click(object sender, EventArgs e)
        {
            // Объявляем переменную в которую будет записываться введенное пользователем число
            int UserNumber;

            // Конвертируем в число
            UserNumber = Convert.ToInt32(txtNumber.Text);

            // Проверяем соответствует ли введеное пользователем число с задуманным компьютером
            if (CompNumber == UserNumber)
            // Да, соответствует
            {
                lblInfo.Text = "Вы угадали! Поздравляем!";
                // Очищаем поле ввода числа
                txtNumber.Text = "";
                
                // блокируем кнопу ОК
                btnOk.Enabled = false;

                // активируем кнопку повтора
                btnAgain.Enabled = true;

                // Дальше ничего не делаем и выходим из метода btnOk_Click
                return;
            }
            else
            // Число не угадано. Проверяем теперь, оно больше или меньше задуманного?
            {
                if (CompNumber < UserNumber)
                {
                    lblInfo.Text = "Мое число меньше!";
                    // Очищаем поле ввода числа
                    txtNumber.Text = "";
                    // Ставим курсор в поле ввода числа
                    txtNumber.Focus();
                }
                if (CompNumber > UserNumber)
                {
                    lblInfo.Text = "Мое число больше!";
                    // Очищаем поле ввода числа
                    txtNumber.Text = "";
                    // Ставим курсор в поле ввода числа
                    txtNumber.Focus();
                }
                
                // Каждую попытку уменьшаем счетчик попыток на единицу
                Attempt--;
                // И выводим количество попыток пользователю
                lblAttempt.Text = Attempt.ToString();

                // Если количество попыток подошло к концу
                if (Attempt == 0)
                {
                    lblInfo.Text = "Количество попыток израсходовано, Вы проиграли!";
                    // Очищаем поле ввода числа
                    txtNumber.Text = "";

                    // блокируем кнопку ОК
                    btnOk.Enabled = false;
                    // активируем кнопку повтора
                    btnAgain.Enabled = true;
                }
            }
        }

        private void btnAgain_Click(object sender, EventArgs e)
        {
            // Вызываем метод начала игры NewGame
            NewGame();
        }

 
    }
}


Задание 1: Обработать ошибку при введение пустой строки в поле ввода числа

<<