0 / 0 / 0
Регистрация: 26.07.2022
Сообщений: 3
1

Угадай число. Объясните

26.07.2022, 10:33. Показов 354. Ответов 4
Метки нет (Все метки)

Здравствуйте, тут 2 игры. В начале я угадываю рандомное число компьютера. После, на 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
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
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    setlocale(LC_ALL, "ru");
    srand(static_cast<unsigned int>(time(0)));
    int attempts = 0;
    int secretnumb = (rand() % 100) + 1;
    int guess;
    do
    {
        cout << "Угадай число \n";
        cin >> guess;
        ++attempts;
        if (guess > secretnumb)
        {
            cout << "Это много, пиши меньше. Попытка #" << attempts <<" \n";
        
 
        }
        else if (guess < secretnumb)
        {
            cout << "Очень мало, добавь еще. Попытка #" << attempts << " \n";
 
        }
        else
        {
            cout << "ты угадал, после " << attempts << " попыток \n";
        }
        
    }
    while (guess != secretnumb);
 
 
    int compatt = 0;
    int compg = (rand() % 100) + 1;
    int userH=1;
    int userL=2;
    int userR=3;
    char a;
    cout << "Добро пожаловать в игру! Здесь компютер должен угадать ваше число.\n";
    
    cout << "" << compg << "\n";
    cout << "это верное число?\n";
    cout << "< = нет, введите больше.\n";
    cout << "> = нет, введите меньше.\n";
    cout << "= = да, угадали.\n";
    do
    {
        ++compatt;
        
        
        cin.get(a);
            switch (a)
            {
            case '<':
                    cout << "Попытка номер: " << compatt << endl;
                    compg+= (rand() % 100) + 1;
                    cout<< "" << compg << "\n";
                    break;
 
            case '>':
                cout << "Попытка номер: " << compatt << endl;
                compg -= (rand() % 100) + 1;
                cout << "" << compg << "\n";
                break;
 
            case '=':
                cout << "Спасибо, это мне заняло" << compatt << "попыток\n";
                break;
            }
            
            
 
 
            
    } while (a != 3);
Добавлено через 10 минут
Еще хочу узнать как сделать так чтобы текст написанный через "cout" появлялся с таймингом? Например "Привет" и через 5 сек автоматически, (без ввода "cin" и прочего) "Как дела?".
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2022, 10:33
Ответы с готовыми решениями:

Написать игру “Угадай число!”. Компьютер загадывает число в определенном диапазоне, а пользователь пытается его угадать
помогите решить Написать игру “Угадай число!”. Компьютер загадывает число в определенном...

Угадай число
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale&gt; #include &lt;ctime&gt; void result(unsigned...

угадай число
Надо чтобы правильно выводило совпадающие цифры, а то у выходит какой-то бред вот код #include...

Угадай число
Я новичок! Пожалуйста помогите! Игра «Угадай число» Первый игрок задумывает число от 1 до N....

Угадай число
Угадай число Ограничение времени 2 секунды Ограничение памяти 512Mb Ввод стандартный ввод или...

4
593 / 374 / 182
Регистрация: 18.10.2020
Сообщений: 1,388
26.07.2022, 11:19 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
#include <iostream>
#include <ctime>
#include <Windows.h>
using namespace std;
 
int main()
{
    srand(time(NULL));
    int number, try_num, min, max;
    
    cin >> number; cin.get();
    
    min = 0; max = 1;
    
    try_num = rand() % 256 - 128;
    
    while(try_num != number)
        if(number > try_num)
        {
            int tmp = try_num;
            try_num += (try_num - min) / 2 + 1;
            min = tmp;
        }
        else
        {
            int tmp = try_num;
            try_num -= (try_num - max) / 2 + 1;
            max = tmp;
        }
    Sleep(5000);
    cout << "\n" << try_num;
    
    cin.get();
    return 0;
}
1
3653 / 2990 / 828
Регистрация: 25.03.2012
Сообщений: 11,026
Записей в блоге: 1
26.07.2022, 13:23 3
programmer_08, чувак, как ты так быстро сообразил с половинным делением? Я тут долго втыкал, как оно работает, почему рандомное число берётся лишь первый раз и зачем к нему что-то дальше прибавлять. И лишь через несколько минут дошло, а ты так за считанные минуты ответ выдал!
0
820 / 575 / 266
Регистрация: 01.06.2021
Сообщений: 2,234
Записей в блоге: 6
26.07.2022, 13:59 4
Цитата Сообщение от programmer_08 Посмотреть сообщение
#include <Windows.h>
Цитата Сообщение от programmer_08 Посмотреть сообщение
Sleep(5000);
ТС вопрос задает по C++, зачем влезать в WinAPI, если можно написать:
C++
1
2
3
4
#include <thread> // для std::this_thread::sleep_for
#include <chrono> // для std::chrono::seconds
// ...
std::this_thread::sleep_for(std::chrono::seconds(5));
0
593 / 374 / 182
Регистрация: 18.10.2020
Сообщений: 1,388
26.07.2022, 14:03 5
Royal_X, ну я не всё и вся знаю, зато теперь ,благодаря вам, я знаю чуть больше)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2022, 14:03
Помогаю со студенческими работами здесь

C++ Угадай число
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale&gt; #include &lt;ctime&gt; void result(unsigned...

C++ Угадай число
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale&gt; #include &lt;ctime&gt; void...

Угадай число
Верных решений 16 37 Август и Беатриса играют в игру. Август загадал натуральное число от 1 до...

Напишите программу "Угадай число", но здесь компьютер угадывает ваше число
Напишите программу &quot;Угадай число&quot;, но здесь компьютер угадывает ваше число. Желательно, чтобы в...

Игра «Угадай число»
Игра «Угадай число». Программа отгадывание целого числа, которое «загадал» компьютер в определенном...

Программа угадай число
Игра «Угадай число». Программа загадывает число в диапазоне от 1 до 500 через random. Пользователь...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru