Найти в Дзене

Игра «Угадай число». Или как сделать рандом в C - sharp.

Всем Хай! Как вам написанный бой из прошлой статьи? Поигрались уже в своей Visual Studio? Если вы её ещё не поставили, то здесь я рассказываю, как это сделать. Ну а сегодня мы разберём, на примере простенькой игрушки в консоли, великий и ужасный, его величество рандом. Так что читайте всё до конца, копируйте код и поиграйтесь со значениями. Пишем программу "Угадай число". Что такое рандом я объяснять не буду. И то, что он используется практически во всех играх должно быть понятно. Реализация у него простая. Главное запомнить синтаксис и то, что в коде заранее указывается, что будет использоваться рандом. И по обычаю сначала код самой игрушки, в которой и посмотрим его работу. intnumber, lower, larger; int money = 50; int userInput; string answer; Random rand = newRandom(); number = rand.Next(0,101); lower = rand.Next(number - 10, number); larger = rand.Next(number + 1, number + 10); Console.WriteLine($"Приветствую, авантюрист! Я загадал число от {lower} до {larger}."); Console.WriteLi
Оглавление
Рандом в C#
Рандом в C#

Всем Хай! Как вам написанный бой из прошлой статьи? Поигрались уже в своей Visual Studio? Если вы её ещё не поставили, то здесь я рассказываю, как это сделать. Ну а сегодня мы разберём, на примере простенькой игрушки в консоли, великий и ужасный, его величество рандом. Так что читайте всё до конца, копируйте код и поиграйтесь со значениями.

Пишем программу "Угадай число".

Что такое рандом я объяснять не буду. И то, что он используется практически во всех играх должно быть понятно. Реализация у него простая. Главное запомнить синтаксис и то, что в коде заранее указывается, что будет использоваться рандом. И по обычаю сначала код самой игрушки, в которой и посмотрим его работу.

intnumber, lower, larger;
int money = 50;
int userInput;
string answer;
Random rand = newRandom();
number = rand.Next(0,101);
lower = rand.Next(number - 10, number);
larger = rand.Next(number + 1, number + 10);
Console.WriteLine($"Приветствую, авантюрист! Я загадал число от {lower} до {larger}.");
Console.WriteLine("Готов ли ты рискнуть и отгадать это число?");
Console.WriteLine("Игра стоит всего 10 монет. В случае твоего выйгрыша ты заберёшь 50 монет.");
Console.WriteLine("Если ты в деле напиши Да");
answer = Console.ReadLine();
if (answer == "Да" || answer == "да")
{
Console.WriteLine("Отлично! Какое число я загадал?");
while (money > 0)
{
userInput = Convert.ToInt32(Console.ReadLine());
if (userInput == number)
{
Console.WriteLine($"Верно! Теперь у тебя {money += 50} монет");
break;
}
else
{
Console.WriteLine($"К сожалению, этот ответ неверен. У тебя осталось {money -= 10} монет.");
}
}
if (money == 0)
{
Console.WriteLine($"Сегодня удача не на твоей стороне. Я загадал число {number}.");
}
}
else
{
Console.WriteLine("Увидимся в следующий раз!");
}

На первый взгляд может возникнуть мысль, что написано много, но основного функционального кода не много. Больше места занимает прописанный диалог в программе.

Разбор кода игры.

Но давайте по порядку. Для начала мы добавили 6 переменных в наш код. Первые 3 это загадываемое число и его диапазон «int number, lower, larger» от и до. Потом идёт переменная «int money = 50», отвечающая за количество денег в кармане. Дальше идёт переменная, которая отвечает за наш ответ «int userInput». Ну и в шестую переменную «string answer» мы запишем наше согласие на эту игру.

Теперь я показываю, что в нашей программе будет использоваться рандом такой строчкой кода «Random rand = new Random()». И дальше мы просто присваиваем этот рандом нашим трём первым переменным.

  • number = rand.Next(0,101) – Загаданное число. Диапазон выпадаемых чисел от 0 до 100. Цифра 101 не включается в рандом.
  • lower = rand.Next(number - 10, number) – здесь у нас диапазон от цифры, которая загадана минус 10, до загаданной цифры. Чтобы всегда рандомно выпадала нижняя граница диапазона.
  • larger = rand.Next(number + 1, number + 10) – Это верхняя граница диапазона загадываемой цифры. Чтобы цифра не совпала с нижним диапазоном, добавляем 1. А то может получится так «от 5 до 5».

Ну а дальше мы просто выводим заготовленный текст в консоли с объяснением правил. Если выиграем, получаем +50 монет. А за каждый проигрыш будут отнимать 10 монет.

Дальше нас спрашивают, будем ли мы играть. И если да то вводим «да». И тогда начинает работать условный оператор «if». В скобках я ввёл варианта ответа. Это либо с большой буквы написать «Да», либо с маленькой. Если мы не согласны играть, то нас сразу перекидывает на последнюю строчку «else», "Увидимся в следующий раз".

В случае положительного ответа запускается цикл «while». Использую этот цикл потому, что нет точных границ окончания цикла. Условие работы цикла только одно, главное чтобы были деньги. Ну а дальше всё просто. Если угадали число, то нам прибавляют 50 монет и цикл завершается командой «break». Если же не угадали, то у нас отнимается 10 монет и цикл повторяется. Сначала идёт проверка наличие монет в кармане, если да то продолжаем. Если нет, то цикл завершается и очередным «if» мы проверяем наличие монет в кармане. Если их ноль, то выводим соответствующее предложение и заканчиваем игру. Так это выглядит на видео.

P.S. Видео в статью вставить нельзя поэтому просмотр только по ссылке.

Видео работы программы

На этом всё. Если не понятно, то советую запустить этот код в Visual Studio самому. И проиграться со значениями рандома. Тогда вопросы отпадут. Если же нет, то пишите их в комментариях. Разберёмся и поможем.

Все темы из второго блока, мы рассмотрели. И начиная со следующей статьи, начнётся практика. Поэтому в следующей статье опять поиграемся с рандомом и сделаем бой Чука и Гека. Думаю, будет статьи три, судя по домашнему заданию из курса. Последнее будет просто бомба. Так что подписывайся на канал, чтобы не пропустить. Ну а я с вами прощаюсь. До скорого!

#рандом #разработкаигр #программированиедляначинающих #программирование #c# #программистснуля