Сегодня мы будем создавать кое-что простое, но в то же время интересное — это игра на C# под названием «Угадай число». Смысл игры заключается в том, что компьютер рандомно загадывает число от 0 до 9, а пользователь должен угадать это число, имея 3 попытки.
Итак, приступаем. Создаём консольное приложение («Файл»->»Создать»->»Проект»->»Консольное приложение») и для начала задаём функцию Random вот так:
1 2 |
Random rand = new Random(); int i =rand.Next(10); |
Иными словами, мы создаём некий генератор случайных чисел rand, который каждый раз при запуске программы будет генерировать псевдослучайные числа, значение которых каждый раз будут заноситься в целочисленную переменную i. Число 10 в скобках означает, что всегда будет производиться генерация только лишь 10 первых чисел (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Если в скобках поставить 100, то рандом будет выбирать числа из диапазона от 0 до 99 и т.д.
Также мы инициализируем переменную count:
1 |
int count=1; |
Она нам понадобится для счёта шагов (или попыток пользователя). Мы присваиваем переменной значение 1, так как не будем считать первую попытку пользователя.
1 2 |
Console.WriteLine("Компьютер загадал число от 0 до 9. Попробуйте отгодать его за три попытки."); Console.WriteLine("Введите первое число:"); |
Теперь мы пишем код, который будет выводить пользователю сообщения, которые мы написали в кавычках. Будет это выглядеть вот так:
Так как пользователь после такого предложения начнёт вводить какое-то число, то нам обязательно надо считать его, что мы делаем следующей строкой:
1 |
int k = Convert.ToInt32(Console.ReadLine()); |
Теперь в переменную k запишется число, введенное пользователем.
Вводная часть позади. Теперь строим сам алгоритм, он довольно прост:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
while (count <=3) { if (i == k) { Console.WriteLine("Да! Компьютер загадал число "+k+"!"); break; } else { count++; if (count == 4) { Console.WriteLine("Увы, вы не отгодали загаданное число. Это было число " + i + "!"); break; } Console.WriteLine("Нет, это не число " + k + "! Попытка № "+ count+":"); k = Convert.ToInt32(Console.ReadLine()); } } Console.ReadLine(); |
Итак, мы создаем главный цикл while, в котором и будет всё считаться. Так как мы решили, что у пользователя будет 3 попытки (а первую попытку он исчерпал выше, введя число), то мы создали такое условие (count<=3). Когда счетчик count станет больше 3, значит три попытки были исчерпаны.
Затем мы создаём условие if, где говорим о том, что если сгенерированное рандомом число будет равно числу, введенному пользователем, то мы поздравляем пользователя и указываем, что значение k — правильное число. Затем срабатывает оператор break, который выведет программу из цикла while, так как больше нам в цикле делать нечего.
Если же пользователь не угадал число, что сработает код под оператором else. Счётчик увеличивается на 1 (минус одна попытка у пользователя). Далее следует ещё один оператор условия if. В нём мы «оговариваем» случай, если пользователь так и не сможет угадать число за все три попытки. В таком случае счётчик count станет равен четырём.Мы пишем пользователю сообщение, что он, увы, не смог победить и заодно покажем ему, что же за число, скрывающееся под переменной i, он не сумел отгадать.
После этого мы, опять же, ставим оператор break, так как нам опять нет смысла оставаться в главном цикле while.
Однако, если счётчик ещё не переполнен, и у пользователя есть ещё попытки, то мы напишем ему об этом с предложением ввести новое число, при этом укажем, какое неправильное число k он изначально выбрал и какая у него попытка (count) по счёту.
После того, как пользователь введёт новое число, переменная k перезапишется, и цикл while опять начнёт работу с самого начала.
Также не стоит забывать, что чтобы консоль не закрывалась раньше того, как мы хоть что-то в нём рассмотрим, в конце тела кода надо написать Console.ReadLine();
Игра на C# «Угадай число» готова! Скачать исходник, чтобы поиграть или покопаться в коде игры можно, нажав на кнопку ниже:
Скачать исходник
Поделиться в соц. сетях:
Спасибо за урок! Угадать что загадал пк, интересно :D