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

Игра "Цифры рядом" - C++

Восстановить пароль Регистрация
 
Natasha7
Сообщений: n/a
30.01.2013, 13:50     Игра "Цифры рядом" #1
Ребят, помогите, пожалуйста, написать программу:
Программа загадывает целое четырехзначное положительное число. Игрок должен отгадать число. Он называет две цифры и получает один из 3-х ответов:
1)есть, если совпала одна или обе цифры с цифрами задуманного числа;
2)есть рядом, если совпали обе цифры, причем в числе они стоят рядом в любом порядке,
3)нет - в противных случаях.
Например: исходное число 1277. "13", "17" - есть; "12", "72" - есть рядом.
Когда игрок готов назвать все число, он сообщает все 4 цифры в определенном порядке. Если совпало с заданным числом - выигрыш, нет - проигрыш.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2013, 13:50     Игра "Цифры рядом"
Посмотрите здесь:

C++ Ввести строку. Вывести её, заменив цифры на слова ( 0 - "one", 1 - "two", ...)
C++ по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно
Программа, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова "ноль", "один",..."девять" C++
Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки C++
Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") C++
C++ в заданном двоичном коде заменить все цифры "0" на "1" и наоборот
C++ Консольная "графика", игра "Тетрис". Фигуры перестают прорисовываться на определенном этапе
Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Voroshek
6 / 6 / 1
Регистрация: 22.08.2011
Сообщений: 75
30.01.2013, 17:24     Игра "Цифры рядом" #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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using std::cout;
using std::cin;
using std::endl;
using std::string;
 
int main()
{
    srand(time(NULL));
    char val[4]; // вместо числа я использую массив из четырёх символов, ведь
    // мы не производим с числом арифметических операций
    for (int i=0; i<4; i++)
    {
        // заполняем val случайным образом
        val[i] = rand()%10 + '0';
    }
    char guess_1, guess_2;
    while (true)
    {
        cout << "Введи первую цифру ";
        cin  >> guess_1;
        cout << "Теперь вторую ";
        cin  >> guess_2;
        int ix_1 = -1;
        int ix_2 = -1;
        for (int i=0; i<4; i++) // ищем введённые цифры. Если они найдены,
        // присваиваем их индексы переменным ix_1, ix_2
        {
            if (val[i]==guess_1 && ix_1==-1) { ix_1 = i; }
            else if (val[i]==guess_2) { ix_2 = i; } // else if необходимо в
            // случае если игрок ввёл две одинаковых цифры
        }
        if (ix_1>=0 && ix_2>=0) // если найдены обе цифры, проверяем
        // на "есть рядом"
        {
            if ((ix_1-ix_2)==1 || (ix_2-ix_1)==1)
            {
                cout << "Есть рядом" << endl;
            }
            else { cout << "Есть" << endl; }
        }
        else if (ix_1>0 || ix_2>0) { cout << "Есть" << endl; }
        else { cout << "Нет" << endl; }
        cout << "Назовёшь число?(да/нет) ";
        string check;
        cin >> check;
        if (check=="да")
        {
            string attempt;
            cin >> attempt;
            string contin;
            for (int i=0; i<4; i++)
            {
                if (val[i]!=attempt[i])
                {
                    cout << "Проигрыш.\nПопробуешь ещё раз?(да/нет) ";
                    cin >> contin;
                    if (contin=="нет") { return 0; }
                    else { break; }
                }
                else
                {
                    cout << "Выигрыш. Возьми с полки пирожок" << endl;
                    return 0;
                }
            }
        }
    }
    return 0;
}
Заметь, программа не проверяет ошибки, например, если геймер ввёл две цифры или букву.
Yandex
Объявления
30.01.2013, 17:24     Игра "Цифры рядом"
Ответ Создать тему
Опции темы

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