Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
17 / 17 / 13
Регистрация: 19.11.2014
Сообщений: 156
1

Почему случайные значения всегда одни и те же?

07.01.2015, 11:57. Показов 1086. Ответов 3
Метки нет (Все метки)

Дано условие:
С помощью генератора случайных чисел смоделировать выбрасывание игральной кости (1 ... 6). Вывести на экран количество очков, выпадающее на каждом ходу, и количество баллов. Игра считается законченной, когда общее количество очков больше или равно 30.

Я ее немного переделал - сделал для двух игроков.

Все работает правильно, НО рандомные значения присваиваются каждый раз одни и те же. Поправьте код пожалуйста=)

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// 1.11.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    int p1(0), p2(0);
 
    cout << "\t[][]Кубик[][]" << endl;
 
    do
    {
        cout << "Player I" << endl;
        cout << "Enter: "; _getch();
        int x=rand()%6+1;
        cout << " coub = " << x << endl;
        if (x>0)
        {
            p1+=x;
            if (p1>30)
                {
                    cout << "Win Player I " << p1 << " - point" << endl;
                    _getch();
                    return 0;
                }
        }
 
        cout << "   " << endl;
 
        cout << "Player II" << endl;
        cout << "Enter: "; _getch();
        int y=rand()%6+1;
        cout << " coub = " << y << endl;
        if (y>0)
        {
            p2+=y;
                if (p2>30)
                {
                    cout << "Win Player II " << p2 << " - point" << endl;
                    _getch();
                    return 0;
                }
        }
        cout << "   " << endl;
 
        cout << "[*][*][*][*][*][*][*][*][*][*]" << endl;
        cout << "[*]          Result[*]" << endl;
        cout << "[*] Player I has " << p1 << " point[*]" << endl;
        cout << "[*] Player II has " << p2 << " point[*]" << endl;
        cout << "[*][*]" << endl;
        cout << "[*][*][*][*][*][*][*][*][*][*]" << endl;
 
        cout << "   " << endl;
        _getch();
    }
    while (p1||p2>=30);
 
    _getch();
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2015, 11:57
Ответы с готовыми решениями:

Почему значения получаются одни и те же, при вводе разных данных?
Почему значения получаются одни и те же, при вводе разных данных? using System; using...

Почему @QueryParam не захватывает значения для POST запроса, всегда null?
Пытаюсь сделать простое Rest API... С помощью расширения RESTer передаю POSTом вот такой json: {...

Выводяться одни и те же значения
Код записывает значения в обьект (это работает в цикле), puts - выводит разные значения. ...

Рандом выдает одни и те же значения
#include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include...

3
Dimension
584 / 452 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
07.01.2015, 11:58 2
C++
1
srand(time(0));
добавь
1
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
07.01.2015, 11:59 3
Лучший ответ Сообщение было отмечено posol_7 как решение

Решение

posol_7, В main() напишите
C++
1
2
3
4
int main()
{
    srand(time(0));
    ...    //остальной ваш код
1
65 / 65 / 54
Регистрация: 23.09.2012
Сообщений: 212
07.01.2015, 12:00 4
В самом начале надо прописать сил случайных чисел.

Например srand(time(0)); будет генерировать псевдослучайных числа на основе времени

Опоздал)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2015, 12:00

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

Выводит одни и тоже значения
При выборе данные в textbox не меняются. Прошу помочью private void...

Rnd() выдает одни и те же значения
connection.Open(); OleDbCommand random = new OleDbCommand(&quot;SELECT TOP 5 `FIO`...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.