WFA Ugadai chislo
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: Обработать ошибку при введение пустой строки в поле ввода числа