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

Игра "Угадайка – 4" - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 17:37     Игра "Угадайка – 4" #1
Игра "Угадайка – 4". Некто задумал целое число в интервале от 0 до 3.
Нужно угадать это число, задавая вопросы.
На эти вопросы Некто может отвечать лишь "Да" или "Нет".
Какое количество информации мы должны получить, чтобы узнать задуманное число, т.е. полностью снять начальную неопределенность?
Как построить процесс угадывания, минимизируя количество задаваемых вопросов?
Исходами в данном случае являются: A1 – "задуман 0", A2 – "задумана 1", A3 – "задумана 2", A4 – "задумана 3".
Задание.
Для игры "Угадайка - N"
N – определяется вариантом заданным таблицей:

0-11

1. Какое количество информации мы должны получить, чтобы узнать задуманное число?
2. Постройте алгоритм процесса угадывания для заданного варианта.
3. Разработайте техническое задание на создание программы, угадывающей задуманное пользователем число.
4. Разработайте алгоритм программы, угадывающей задуманное пользователем число.
5. Напишите программу, реализующую разработанный алгоритм.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 17:37     Игра "Угадайка – 4"
Посмотрите здесь:

C++ Дан текст, хранящийся в текстовом файле f, каждый символ которого может быть малой буквой, цифрой или одним из знаков "+", "-", "*".
C++ Игра "угадайка" с использованием do while. Ошибка.
C++ Консольная "графика", игра "Тетрис". Фигуры перестают прорисовываться на определенном этапе
C++ Написать программу которaя запрашиваeт у пользователя номер дня недели, затем выводит одно из сообщений "рабочий день", "суббота", "воскресенье"
C++ Карточная игра "Дурак" - Ошибка загрузки dll карт
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 18:17     Игра "Угадайка – 4" #2
В чем сложность? Алгоритм поиска? У меня получилось 2 вопроса.
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 18:18  [ТС]     Игра "Угадайка – 4" #3
не понятен алгоритм, как задумать число? кто задумал число? компьютер или человек?
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 18:19     Игра "Угадайка – 4" #4
создание программы, угадывающей задуманное пользователем число.
Программа отгадывает, а Вы загадываете. Если код нужен, напишу сразу после того, как сбегаю в киоск . 15-20 минут.
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 18:20  [ТС]     Игра "Угадайка – 4" #5
а как она будет угадывать? программа же не знает какое число я задумал?
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 18:22     Игра "Угадайка – 4" #6
Цитата Сообщение от names1995 Посмотреть сообщение
а как она будет угадывать? программа же не знает какое число я задумал?
Будет задавать Вам 2 вопроса.
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 18:24  [ТС]     Игра "Угадайка – 4" #7
код не помешал бы ))

Добавлено через 1 минуту
интервал чисел от 0 до 11, программа будет задавать вопрос рандомно или с помощью if ?
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 18:49     Игра "Угадайка – 4" #8
Цитата Сообщение от names1995 Посмотреть сообщение
интервал чисел от 0 до 11, программа будет задавать вопрос рандомно или с помощью if ?
Так загадывается от 0 до 3 или от 0 до 11? Вопрос задается заранее известный. Ответ обрабатывается if/else
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 18:53  [ТС]     Игра "Угадайка – 4" #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cout <<"Игра Угадайка-11"<<endl;
        int x;
     cout <<"x>1?"<<endl; 
    cout << "1-Да - 2-Нет"<<endl;
     int vybor; cin >>vybor;
         if (x>1)
         {
           cout <<"x>2?"<<endl; 
    cout << "1-Да - 2-Нет"<<endl;
       
         } 
         else 
         {
           cout << "x<0?"<<endl;
            
        
         }
это будет выглядеть так?

Добавлено через 2 минуты
я писал игру, где число задается рандомно программой, но тут как-то не могу понять )))
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 19:01     Игра "Угадайка – 4" #10
Вот код для "Угадайка - 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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char answer = 'y';
 
    cout << "Загадайте число от 0 до 3" << endl;
    cout << "Отстаок от деления загаданного числа на 3 равен 0? (y/n): ";
    cin >> answer;
 
    if (answer == 'y' || answer == 'Y')
    {
        cout << "При делении загаданного числа на 3, результат равен 0? (y/n): ";
        cin >> answer;
 
        if (answer == 'y' || answer == 'Y')
            cout << "Вы загадали число 0" << endl;
        else
            cout << "Вы загадали число 3" << endl;
    }
 
    else
    {
        cout << "Отстаок от деления загаданного числа на 3 равен 1? (y/n): ";
        cin >> answer;
 
        if (answer == 'y' || answer == 'Y')
            cout << "Вы загадали число 1" << endl;
        else
            cout << "Вы загадали число 2" << endl;
    }
 
    system("pause");
    return 0;
}
Нужно для угадайка 11?
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 19:03  [ТС]     Игра "Угадайка – 4" #11
буду очень благодарен
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 19:06     Игра "Угадайка – 4" #12
Цитата Сообщение от names1995 Посмотреть сообщение
буду очень благодарен
Надо только подумать, как в 1 шаг вычислить 1 из 3-х интервалов по 4 значения, а так тоже самое.
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 19:11  [ТС]     Игра "Угадайка – 4" #13
хотя, я думаю лучше будет если сам разберусь, нет?

Добавлено через 48 секунд
спс, попытаюсь разобраться сам )))

Добавлено через 8 секунд
вы помогли ))
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 19:40     Игра "Угадайка – 4" #14
Вот не приходит в голову, хоть "убей". За 4 вопроса знаю как, но это не интересно, хочется за 3... а мысли нет Если додумаюсь, напишу код.
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 19:40  [ТС]     Игра "Угадайка – 4" #15
окей )))
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 22:09     Игра "Угадайка – 4" #16
Не выйдет сделать в 3 хода. Бинарный поиск (ответы да/нет) возволяют отсечь только 1/2 текущей выборки, поэтому только в 4 хода. Ну или 1-й вопрос должен быть не закрытым, тогда в 3 можно уложиться.
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 22:17  [ТС]     Игра "Угадайка – 4" #17
а мне оказывается нужно было 15, за сколько ходов можно сделать это?

Добавлено через 7 минут
а то у меня получается так чтобы угадать три четных числа, приходится три хода
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 22:22     Игра "Угадайка – 4" #18
Цитата Сообщение от names1995 Посмотреть сообщение
а мне оказывается нужно было 15, за сколько ходов можно сделать это?
за 4. Вам нужно разбить 12 чисел в группы по 4. Для 4-х у Вас уже есть решение в 2 хода (только вместо вопроса x / 3 или x % 3 нужно брать (x % 4) / 3 или (x % 4) % 3).
Вопрос первый. Число больше 7? (да, интервал 8 9 10 11, нет, интервал 0 1 2 3 4 5 6 7)
Вопрос второй (если на первый ответ нет). При полчении ответа "да" на 1-й вопрос, второй нужно пропустить и задача решиться в 3 хода, но это полностью не исключает неопределенность. Сам вопрос: Загаданное число больше 3?. Да - интервал 4 5 6 7, нет - 0 1 2 3.
Вопрос 3 и 4 аналогичны угадайке 4, только с поправкой, которую я написал выше (загаданное число по модулю 4).
names1995
11 / 11 / 2
Регистрация: 13.11.2012
Сообщений: 276
10.10.2013, 22:26  [ТС]     Игра "Угадайка – 4" #19
C++
1
cout << "Ваше число четное? 1-Да, 2-Нет"<<endl;
у меня типа такого было

Добавлено через 1 минуту
Вам нужно разбить 12 чисел в группы по 4? не совсем понятно, четные и нечетные?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2013, 22:32     Игра "Угадайка – 4"
Еще ссылки по теме:

C++ Игра "Крестики нолики", почему не работает проверка окончания?
Игра "Чёт-Нечет" на поле NxN, перевести с Делфи на С++ C++
C++ Игра "Однорукий бандит". Кольцевая очередь. Двусвязный список

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

Или воспользуйтесь поиском по форуму:
Мимино
 Аватар для Мимино
180 / 151 / 5
Регистрация: 22.05.2013
Сообщений: 435
Записей в блоге: 1
10.10.2013, 22:32     Игра "Угадайка – 4" #20
Цитата Сообщение от names1995 Посмотреть сообщение
Вам нужно разбить 12 чисел в группы по 4? не совсем понятно, четные и нечетные?
0 1 2 3
4 5 6 7 = 0 1 2 3 (4 % 4, 5 % 4....)
8 9 10 11 = 0 1 2 3 (8 % 4, 9 % 4...)
Yandex
Объявления
10.10.2013, 22:32     Игра "Угадайка – 4"
Ответ Создать тему
Опции темы

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