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

Алгоритм игры Быки -коровы в С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Делаем игру. Можете помочь? http://www.cyberforum.ru/cpp/thread13641.html
Знаю, что ваще не по теме, но нормальных программистов, кроме как на специальных форумах, как этот, мы найти нигде не можем. Короче, нужны программисты на C++. Наверняка среди вас есть люди, кто...
C++ Исходники асечного (ICQ) протокола Народ, давно ищу одну вещь, решил создать ветку. У кого-нибудь есть исходники асечного (ICQ) протокола? Полностью рабочего. Нашел какую-то х... там отправка данных не работает... Поделитесь,... http://www.cyberforum.ru/cpp/thread13607.html
C++ Пререзапуск сетевого адаптера
Вобщем пишу прогу для автоматической смены IP сетевого интерфейса. как сменить IP разобрался, делается очень просто в реестре, но после смены значения ключа конечно же нужен перезапуск подключения и...
C++ qsort, рабочий день убит...
Всем привет, Я, наверное, представляться не буду :) Вообщем, один мой рабочий день на этой неделе был убит такой вещью: делал я задачку на сортировку строк в матрице. Решил делать через qsort....
C++ Сканеры исходные тексты http://www.cyberforum.ru/cpp/thread12310.html
Здравствуйте! Купил книгу по программированию, там приведены примеры двух сканеров, первый по UDP протоколу запрашивает snmp агент и получает ответ: 30 2F 02 01 00 04 06 70 75 62 6C 69 63 A2 22...
C++ Подскажите где ошибка? #include <iostream> using namespace std; const int Max_size=1000; class stack{ private: int s_size; int mass; public: подробнее

Показать сообщение отдельно
Somebody
2789 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
25.05.2010, 19:05
Не знаю, как в том посте, но могу предложить вариант:
Создаётся массив boolов. Отмечаются "плохие" числа - которые не могут быть загаданы. Спрашивается любое "хорошее" число. Все числа, на которые ответ юзера был бы не таким, помечаются как плохие. И так далее... Если число отгадано - то хорошо, если все оставшиеся числа - плохие, то юзер натупил с ответами.
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
#include <iostream>
#include <cstring>
#include <limits>
 
using namespace std;
 
void Split(int x, int& a, int& b, int& c, int& d)
{
    d = x % 10; x /= 10;
    c = x % 10; x /= 10;
    b = x % 10; x /= 10;
    a = x % 10;
}
 
bool IsValid(int x)
{
    int a, b, c, d;
    Split(x, a, b, c, d);
    return
        (a >= 1) && (a <= 9) &&
        (a != b) && (a != c) && (a != d) && (b != c) && (b != d) && (c != d);
}
 
bool Matches(int n1, int n2, int bulls, int cows)
{
    int a1, b1, c1, d1, a2, b2, c2, d2;
    Split(n1, a1, b1, c1, d1);
    Split(n2, a2, b2, c2, d2);
    return
        bulls == (
            (a1 == a2) + (b1 == b2) + (c1 == c2) + (d1 == d2)
        ) &&
        cows == (
            (a1 == b2) + (a1 == c2) + (a1 == d2) +
            (b1 == a2) + (b1 == c2) + (b1 == d2) +
            (c1 == a2) + (c1 == b2) + (c1 == d2) +
            (d1 == a2) + (d1 == b2) + (d1 == c2)
        );
}
 
const int setSize = 10000;
bool badNum[setSize];
 
int main()
{
    memset(badNum, 0, sizeof(badNum));
    for (int i = 0; i < setSize; i++)
        badNum[i] = !IsValid(i);
    while (true)
    {
        int bulls, cows;
        int question;
        for (question = 0; question < setSize && badNum[question]; question++);
        if (question >= setSize)
        {
            cout << "bye 8-|";
            break;
        }
        cout << question << " ???" << endl;
        cout << "bulls, cows: ";
        cin >> bulls >> cows;
        if (bulls == 4 && cows == 0)
        {
            cout << "that's it :-)";
            break;
        }
        for (int i = 0; i < setSize; i++)
            badNum[i] = badNum[i] || !Matches(i, question, bulls, cows);
    }
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
    cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru