Форум программистов, компьютерный форум CyberForum.ru

Игра: Угадай число - C++

Восстановить пароль Регистрация
 
Ванек123
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 2
11.06.2014, 22:47     Игра: Угадай число #1

Не по теме:

Гра «Вгадай число»
Напишіть програму, яка вмітиме грати (за будь-якого з гравців) у таку гру. Один гравець загадує натуральне число від 1 до N, інший має його відгадати, задаючи питання виду «це число ….?» і отримуючи одну з відповідей «так», «загадане число бульше» або «загадане число менше». Програма має грати оптимально (вгадувати за найменшу кількість запитань, тобто треба використати бінарний пошук). Програма повина працювати коректно, не залежно від того, чи оптимальним чином ставить запитання гравець людина. Якщо нравець людина дав суперечні відповіді (наприклад один раз сказав, що число бідьше 100, а через кілька ходів, що менше 101), програма повинна детально про це розказати.



Игра «Угадай число»
Напишите программу, которая будет уметь играть (любого из игроков) в такую ​​игру. Один игрок загадывает натуральное число от 1 до N, другой должен его отгадать, задавая вопросы вида «это число ....?» И получая один из ответов «да», «загаданное число больше» или «загаданное число меньше». Программа должна играть оптимально (угадывать за наименьшее количество вопросов, то есть нужно использовать бинарный поиск). Программа и должна работать корректно, независимо от того, оптимальным образом ставит вопрос игрок человек. Если человек дал противоречивые ответы (например однажды сказал, что число более 100, а через несколько ходов, менее 101), программа должна подробно об этом рассказать.
(google translate)

не могу написать условие : Програма повина працювати коректно, не залежно від того, чи оптимальним чином ставить запитання гравець людина. Якщо нравець людина дав суперечні відповіді (наприклад один раз сказав, що число бідьше 100, а через кілька ходів, що менше 101), програма повинна детально про це розказати.

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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include "iostream" 
#include "cstdlib"  
#include "ctime"   
 
using namespace std;
 
int comp () 
 {  
    srand (time(0)); 
 
    int i = rand()%100;  
    while (true)
 { 
  cout << "Я загадал число, какое?" << endl; 
     int j;
    cin >> j;
    if (i > j)
    {
        cout << "Мое число больше" <<endl;
    }else {
        if (i < j)
            cout << "Мое число меньше" << endl;
        else 
        {
            cout << "Ура!!! ТЫ угадал!!!!" << endl;
            break;
        }
    
    }
 
 
 }
    return 0;
  
}
 
float f(float x)
{
    cout << (int)x << endl;
    cout << "Правильно ( + / - / = )? ";
    char c;
    cin >>  c;
    while (true)
    {
        switch (c)
        {
            case '+': return +1;
            case '-': return -1;
            case '=': return 0;
 
 
        }
        cout << "Вы ввели неправвильный символ, повторите попытку!!" <<endl;
    }
}
float n(float x1, float x2)
{
    float x = (x1+x2)/2;
    float y = f(x);
    while (abs(y)> 0.001)
    {
        if (y>0)
            x1=x;
        else 
            x2=x;
        x=(x1 + x2) / 2;
        y=f(x);
    }
    return x;
    
}
int computer ()
{
    cout << "Вы загодали число : " << (int) n(0,100) << endl;
    return 0;
}
int main ()
{
    setlocale(LC_ALL, "Russian");
    bool done;
    cout << "                    Представляем к вашему вниманию игру:" << endl;
        cout << "                                УГАДАЙ ЧИСЛО" << endl;
        cout << "                               И так поехали!!!!!!" << endl;
        cout << "                                                                                 " << endl;
    do
    {
    cout << "Выберите тип игры (компьютер - игрок(1); игрок - компьютер(2))" << endl;
    int k;
    cin >> k;
    if (k==1)
    {
        computer ();
    } else {
        if (k==2)
        {
          comp ();  
        }else
            cout << "Вы ввели неправильный символ, пожалуйста повторите попытку!!!" << endl;
    }       
            
    cout << "Вы желаете продолжить(y/n)?";
  char c;
  cin >> c;
  done =(c!='y');
} while (!done );  
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2014, 22:47     Игра: Угадай число
Посмотрите здесь:

Игра "Угадай число" C++
Игра "Угадай число" C++
C++ Игра "Угадай число"
Готовая игра "угадай число" C++
C++ Игра "Угадай число"
C++ Игра Угадай Слово ошибка в коде
Игра "Угадай число" C++
Игра "Угадай число" C++
Игра "Угадай число" C++
Игра «Угадай число» C++
Игра "Угадай число" C++
C++ Игра: “Угадай слово”

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 07:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru