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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Natasha7
Сообщений: n/a
#1

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

30.01.2013, 13:50. Просмотров 303. Ответов 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     Игра "Цифры рядом"
Посмотрите здесь:

В заданном двоичном коде заменить все цифры "0" на "1" и наоборот - C++
составить алгоритм который в заданном двоичном коде заменяет все цифры "0" на "1" и наоборот

Игра "Угадай слова" через массивы! - C++
Получил такое задание! Помогите разобраться! Хотя бы какие то наброски подскажите! Написать игру! Создать массив с 20 словами. В...

Игра "Борьба за жизнь". Цель игры – убрать с доски все шашки противника - C++
Здравствуйте! Помогите пожалуйста написать программу на с++. Два игрока имеют по n шашек и играют в поле m m клеток, делая ходы по...

Написать функцию, которая в массиве char ищет цифры и заменяет их символом "#" - C++
Простите за наглость... Но в С++ вообще плыву. Просьба - помогите пожалуйста в написании программки, если вас не слишком затруднит...!!! ...

При переворачивании массивов выходят такие цифры: "-858993469". Как с этим бороться? - C++
постоянно сталкиваюсь с такой проблемой: при переворачивании массивов выходят такие цифры: вот код: #include <stdio.h> #include...

Замениь цифры на символ "звездочка" - C++
1) Введите массив символов из 10 элементов. Замените символы - цифры на символ '*' (посредством цикла for).

Преобразование слов в цифры ("Ноль" = 0) - C++
забыл как это делать.к примеру,пишу слово "ноль" выдать должно "0"...

Игра "Крестики-нолики" - C++
Доброго времени суток. Нуждаюсь в помощи! Я написал код игры "Крестики-нолики" по книге и при выборе чем я буду играть (Х или О)...

Игра "Расстановка 16 букв" - 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;
}
Заметь, программа не проверяет ошибки, например, если геймер ввёл две цифры или букву.
Ответ Создать тему
Опции темы

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