Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
9 / 8 / 4
Регистрация: 22.10.2017
Сообщений: 162
1

Рандомно генерирует одни и те же числа

13.02.2018, 00:10. Показов 1734. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Только сегодня начал изучать C#. Делаю текстовую игру 21 очко. При генерации 2 ух чисел генерирует их одинаковыми. Знаю, что это вроде зависит от времени, однако аутов из ситуации не вижу. Вот код :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
 
namespace lab1
{
    class Program
    {
        static int Generator()                                     //генерация карт                
        {
            int card = 0;
            Random rand = new Random();                            //создание объекта для генерации числа 
            card = rand.Next(2, 12);
 
            while (card == 5)
            {
                card = rand.Next(2, 12);
            }
 
            return card;
        }
        static void Main(string[] args)
        {
            int player_sum = 0;
            int bot_sum = 0;
            int card = 0;
 
            Console.WriteLine("У Вас в руке :\t");
 
            for (int i = 0; i < 2; i++)                                                   //раздача руки игрока
            {
                card = Generator();
                player_sum += card;
 
                if (card == 2) Console.WriteLine(" Валет\t");
                else if (card == 3) Console.WriteLine(" Дама\t");
                else if (card == 4) Console.WriteLine(" Король\t");
                else if (card == 11) Console.WriteLine(" Туз\t");
                else Console.WriteLine($" {card}\t");
 
                card = 0;
            }
            Console.WriteLine($"Сумма : {player_sum} очков.");
        }
    }
}
1
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2018, 00:10
Ответы с готовыми решениями:

Rand() генерирует одни и те же числа
Код: for ( int i= 0; i&lt;N; i++) { m = rand()%100-50; printf(&quot;%4d &quot;, m); ...

Рандом генерирует одни и те же числа
Столкнулся с проблемой при написании рулетки для своей игры типа казино, при выполнении числа...

Rand() генерирует одни и те же числа
0100010010101010100011111101010101000010 щучу :p Всем привет, не найдя на форуме ответа, решил...

Функция Rnd() генерирует одни и те же числа
Я новичек в программировании, изучаю Visual Basic.net решил сделать простинькую программу, которая...

3
Эксперт .NET
6452 / 4053 / 1599
Регистрация: 09.05.2015
Сообщений: 9,487
13.02.2018, 00:17 2
Лучший ответ Сообщение было отмечено Keks_Stolicny как решение

Решение

C#
1
2
3
4
5
6
static Random rand = new Random();
 
static int Generator()                                     //генерация карт                
        {
            int card = 0;
...
2
9 / 8 / 4
Регистрация: 22.10.2017
Сообщений: 162
13.02.2018, 00:19  [ТС] 3
Someone007, спасибо большое, не могли бы вы объяснить как это работает?
1
Эксперт .NET
6452 / 4053 / 1599
Регистрация: 09.05.2015
Сообщений: 9,487
13.02.2018, 00:26 4
Т.к. вы создаете экземпляры класса Random в цикле без задержек, то они генерируют одни и те же значения, потому что для инициализации в Random по умолчанию используется текущее время, которое будет одинаковым для всех созданных экземпляров... Если не создавать несколько экземпляров Random, а пользоваться одним, или добавить задержку между их созданием, то будут генерироваться разные значения.
2
13.02.2018, 00:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2018, 00:26
Помогаю со студенческими работами здесь

Random генерирует одни и те же значения
вот пример кода: double ran(double a) { Random rand = new Random(); ...

Функция генерирует одни нули для матрицы
Написал функцию, которая должна рандомно генерировать матрицу заданых размеров, но она выдает одни...

Программа не генерирует числа
Мне нужно написать курсовую работу - тема &quot;Устный счёт&quot;, пользователь должен считать примеры и...

Random генерирует одинаковые числа
Здравствуйте! Подскажите пожалуйста... Мне надо в одной из лабораторных работ сделать так, чтобы...

Почему Random генерирует одинаковые числа?
int Do = (int)this.numberDo.Value; //получаем количество символов введенное пользователем int mass...

Класс, который генерирует простые числа
Ув.Гуру,влейте немного мозгов. Класс, который генерирует простые числа. SimpleNumbers num...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru