Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2018, 09:01   #1
usher_93
 
Регистрация: 26.12.2018
Сообщений: 5
По умолчанию Как вывести разный random

Здесь выходит одинаковый random как сделать так чтобы выходили разные значения

Код:
void PrintDice(int number)
{
	switch (number)
	{
		case 1:
			Console.WriteLine("-------");
			Console.WriteLine("|     |");
			Console.WriteLine("|  #  |");
			Console.WriteLine("|     |");
			Console.WriteLine("-------");
			break;
		case 2:
			Console.WriteLine("-------");
			Console.WriteLine("|     |");
			Console.WriteLine("| # # |");
			Console.WriteLine("|     |");
			Console.WriteLine("-------");
			break;
		case 3:
			Console.WriteLine("-------");
			Console.WriteLine("|  #  |");
			Console.WriteLine("|  #  |");
			Console.WriteLine("|  #  |");
			Console.WriteLine("-------");
			break;
		case 4:
			Console.WriteLine("-------");
			Console.WriteLine("| # # |");
			Console.WriteLine("|     |");
			Console.WriteLine("| # # |");
			Console.WriteLine("-------");
			break;
		case 5:
			Console.WriteLine("-------");
			Console.WriteLine("| # # |");
			Console.WriteLine("|  #  |");
			Console.WriteLine("| # # |");
			Console.WriteLine("-------");
			break;
		case 6:
			Console.WriteLine("-------");
			Console.WriteLine("| # # |");
			Console.WriteLine("| # # |");
			Console.WriteLine("| # # |");
			Console.WriteLine("-------");
			break;
		default:
              Console.WriteLine("Default case");
              break;
	}
	
}

int RollTheFirstDice(int dice)
{
	Random rnd = new Random();
	dice = rnd.Next(1,6);
	return dice;
}

int RollTheSecondDice(int dice2)
{
	Random rnd2 = new Random();
	dice2 = rnd2.Next(1,6);
	return dice2;
}

void Main()
{
	
	Console.WriteLine("---      Start game      ---");
	Console.WriteLine("Predict the points number (2..12): ");
	int number = Convert.ToInt32(Console.ReadLine());
	Console.WriteLine("User rolls the dice: ");
	int firstDice = 0;
	int secondDice = 0;
	Console.WriteLine(RollTheFirstDice(firstDice));
	Console.WriteLine(RollTheSecondDice(secondDice));
	//PrintDice(RollTheDice(firstDice));
	//PrintDice(RollTheDice(firstDice));
}
usher_93 вне форума Ответить с цитированием
Старый 29.12.2018, 09:18   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну так прочитайте же справку https://docs.microsoft.com/en-us/dot...ramework-4.7.2
Там несколько параграфов рассказывается как и почему так происходит.
p51x вне форума Ответить с цитированием
Старый 29.12.2018, 09:29   #3
usher_93
 
Регистрация: 26.12.2018
Сообщений: 5
По умолчанию

у меня время ограничено, можете подсказать
usher_93 вне форума Ответить с цитированием
Старый 29.12.2018, 23:10   #4
olifens
Новичок
Джуниор
 
Регистрация: 29.12.2018
Сообщений: 1
По умолчанию

А скажи для чего тебе это?
olifens вне форума Ответить с цитированием
Старый 30.12.2018, 02:15   #5
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 72
По умолчанию

Цитата:
Сообщение от usher_93 Посмотреть сообщение
Random rnd = new Random(); dice = rnd.Next(1,6);
Как правило, такого рандома хватает.

Можете попробовать:
Код:
            Random rnd = new Random(DateTime.Now.Millisecond);
            int dice = rnd.Next(1, 6);
Nintra GrayWorker вне форума Ответить с цитированием
Старый 30.12.2018, 06:32   #6
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Nintra GrayWorker Посмотреть сообщение
Как правило, такого рандома хватает.
Вот откуда берётся желание влезть с советом, не разобравшись в проблеме? Посты набиваете?
А ведь проблема очень хорошо известная, вот одна из первых ссылок в гугле: https://habr.com/post/165459/
Цитата:
Так что ж плохого в вышеприведённом коде? Плохо то, что мы используем новый экземпляр класса Random внутри каждой итерации цикла. Конструктор Random, не принимающий параметров, принимает значение текущей даты и времени как seed (начальное состояние). Итерации в цикле «прокрутятся» настолько быстро, что системное время «не успеет измениться» по их окончании; таким образом, все экземпляры Random получат в качестве начального состояния одинаковое значение и поэтому возвратят одинаковое псевдослучайное число.
Black Fregat вне форума Ответить с цитированием
Старый 30.12.2018, 09:53   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Зачем гугл? Зачем хабр? Если, как я уже сказал, в справке по функции об этом расписано и разжевано...
p51x вне форума Ответить с цитированием
Старый 30.12.2018, 11:43   #8
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 72
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Вот откуда берётся желание влезть с советом, не разобравшись в проблеме? Посты набиваете?
Вовсе нет. Преобладает желание помочь или подтолкнуть в нужном направлении.

Да, я не весь код вычитал, подсказал, был. (не трогай меня)
Black Fregat, я твой ник знаю как заядлого фрилансера, чё, без бабла и <цензура> подсказать ТС как правильно сделать?
Nintra GrayWorker вне форума Ответить с цитированием
Старый 30.12.2018, 12:06   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

ТС, все уже разъяснили со ссылками. А вы не помогли, а написали абсолютно такой же код, как и у ТС. Так что, да, вы тупо набиваете посты... хотите для фриланса лучше казаться?
p51x вне форума Ответить с цитированием
Старый 30.12.2018, 12:26   #10
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 72
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
ТС, все уже разъяснили со ссылками. А вы не помогли, а написали абсолютно такой же код, как и у ТС. Так что, да, вы тупо набиваете посты... хотите для фриланса лучше казаться?
Жаль, что не помог.
Насчет тупой набивки постов - я просто общаюсь с такими же как я(я так считаю, можете еще поправить).
Я просто проггер-одиночка на предприятии(если 1С-ников не считать), мысли есть, что пора валить оттуда, не хочеться выходить с зоны комфорта.
Гм, в начале этого лета или следующего свалю по плану.

Последний раз редактировалось Nintra GrayWorker; 30.12.2018 в 12:40.
Nintra GrayWorker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать разный description для разных страниц сайта SomeMan WordPress и другие CMS 0 30.06.2016 17:51
Как сделать заголовок (программы )дата-Random АлександрDelphi Общие вопросы Delphi 6 17.04.2016 22:25
Как задать диапозон в Random?! Npwas Помощь студентам 6 21.11.2011 05:19
Как StringGrid может влиять на random ? suslik_ Помощь студентам 7 04.07.2011 13:30
Как реализовать random float? VintProg Общие вопросы Delphi 6 18.08.2009 09:41