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

угадай число

15.12.2021, 21:59. Показов 313. Ответов 4
Метки нет (Все метки)

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

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
80
81
82
83
84
85
86
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <string>
using namespace std;
 
void Start() {
    cout << "\t\t\tУГАДАЙ ЧИСЛО \n";
    cout << "\t\t  Правила игры: \n";
    cout << "\t1.Вы должны угадать число от 0 до 999 \n";
 
}
 
int main()
{
    setlocale(0, "");
    Start();
    string stop; //Начинает игру заново
    int answer = 1000; // отвечает игрок
    int answer_array[3]; //массив, который состоит из трех чисел, загаданный человеком
    int secret; // загадывает компьютер
    int secret_array[3]; //массив, который состоит из трех чисел, загаданный компьютером
    srand(time(NULL));
    secret = rand() % 999;
    secret_array[2] = secret % 10;
    secret_array[1] = secret % 100 / 10;
    secret_array[0] = secret / 100;
    cout << "Введите ваш ответ: \n";
    cin >> answer;
    cin.fail(); // если предыдущее извлечение оказалось неудачным,
    cin.clear(); // то возвращаем cin в 'обычный' режим работы
    cin.ignore(32767, '\n'); // и удаляем значения предыдущего ввода из входного буфера
    while (secret != answer) {
        do {
 
        tryagain:
            answer_array[2] = answer % 10;
            answer_array[1] = answer % 100 / 10;
            answer_array[0] = answer / 100;
            int fl = 0; // совпадающая цифра
            int fg = 0; // совпадающее место и цифры
                    for (int i = 0; i < 3; i++) {
                if (secret_array[i] == answer_array[i])
                    fg++;
                for (int j = 0; j < 3; j++) {
                    if (secret_array[j] == answer_array[j])
                        fl++;
 
                }
            } 
            if (answer < secret) {
                cout << "Загаданное число больше \n";
            }
            else if (answer > secret)
                cout << "Загаданное число меньше \n";
            else break;
            cout << "Цифр совпало: " << fl << " . Цифры на местах своих: " << fg;
            cout << " Поворите ваш ввод: \n";
            cin >> answer;
            cin.fail(); // если предыдущее извлечение оказалось неудачным,
            cin.clear(); // то возвращаем cin в 'обычный' режим работы
            cin.ignore(32767, '\n'); // и удаляем значения предыдущего ввода из входного буфера
            goto tryagain;
            cout << " Хотите начать игру заново? (Y/N) \n";
            cin >> stop; 
            do {
                if (stop == "y" || stop == "Y") {
                    "Введите ваш ответ: \n";
                    cin >> answer;
                    goto tryagain;
                }
                else {
                    cout << "Вы не то ввели, попробуйте ещё раз: \n";
                    cin >> stop;
                }
            } while (stop != "y" || stop != "Y"); 
            break;
        } while (stop != "N");
    }
 
    if (secret == answer) {
        cout << "Вы победили, поздравляю!) \n";
    }
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2021, 21:59
Ответы с готовыми решениями:

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

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

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

угадай число
Всё работает нормально, но когда игра начинается заново, работает как-то не так как надо,...

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

4
С чаем беда...
Эксперт CЭксперт С++
9993 / 5345 / 1461
Регистрация: 18.10.2014
Сообщений: 12,869
15.12.2021, 22:34 2
Цитата Сообщение от kostya7200 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
                    for (int i = 0; i < 3; i++) {
                if (secret_array[i] == answer_array[i])
                    fg++;
                for (int j = 0; j < 3; j++) {
                    if (secret_array[j] == answer_array[j])
                        fl++;
                }
            }
В чем разница между этими циклами? И почему они вложены один в другой?

И что происходит с отступами в коде?
0
0 / 0 / 0
Регистрация: 01.11.2021
Сообщений: 71
15.12.2021, 22:36  [ТС] 3
Один который нужен для сравнивание места, а другой вложен, чтобы цифру
0
С чаем беда...
Эксперт CЭксперт С++
9993 / 5345 / 1461
Регистрация: 18.10.2014
Сообщений: 12,869
15.12.2021, 22:37 4
Цитата Сообщение от kostya7200 Посмотреть сообщение
C++
1
2
3
4
5
            goto tryagain;
            cout << " Хотите начать игру заново? (Y/N) \n";
            cin >> stop; 
            do {
                if (stop == "y" || stop == "Y") {
В чем смысл кода, написанного сразу после goto? Этот код никогда не выполнится. Зачем его было писать?

Добавлено через 21 секунду
Цитата Сообщение от kostya7200 Посмотреть сообщение
Один который нужен для сравнивание места, а другой вложен, чтобы цифру
???
0
0 / 0 / 0
Регистрация: 01.11.2021
Сообщений: 71
15.12.2021, 22:38  [ТС] 5
Я понял исправлю, не знал про такое

Добавлено через 1 минуту
А как по-другому, типо я думал что так оно должно быть
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2021, 22:38
Помогаю со студенческими работами здесь

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

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

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

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

Игра «Угадай число»
4. Игра «Угадай число». Компьютер загадывает число, человек отгадывает. Всего 5 попыток. (random)

Игра в угадай число
Вот код. #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; ...


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

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

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