Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 15.09.2016
Сообщений: 18

Создание массива для нескольких вариантов ответа

18.10.2016, 16:40. Показов 1892. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу игру "Поле чудес". Функция представленная ниже должна отвечать на вопрос. В игре 10 вопросов и соответственно 10 разных ответов, и соответственно должно быть 10 разных массивов. Создавать 10 разных функций не хочу, но другого выхода из положения не вижу. Пожалуйста, подскажите путь поизящнее, спасибо.



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
void answer()
{
    int i = 0, j = 0, z = 0, count = 3, n = 0;
 
    char k = 0, word[] = "anchor", answer[80], mas[7][6] = { { 'a','n','c','h','o','r', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', } };
 
    while (1)
    {
 
    start1:
 
        printf("\n\n");
        printf("                          If you want to enter the whole word, press the space\n\n");
        printf("                                           Your health: %dhp\n\n", count);
 
    start2:
 
        printf("                                           enter the letter:\n");
        k = _getch();
 
        if (k == 27)
        {
            menu();
        }
 
        if (k == 32)
        {
            system("cls");
            printf("\n\n                                    Enter the whole word: ");
            cin >> answer;
 
            if (strcmp(word, answer) == 0)
            {
                system("cls");
                printf("\n\n\n\n\n\n\n\n\n\n                                            YOU WIN!");
                Sleep(1500);
                menu();
            }
            else
            {
                system("cls");
                printf("                                    Sorry, but that is not true :(\n");
                Sleep(2000);
                system("cls");
                goto start1;
            }
        }
 
        if (k != 'a' && k != 'n' && k != 'c' && k != 'h' && k != 'o' && k != 'r')
        {
            system("cls");
            printf("\n\n\n                             There is no such a letter in this word! -1hp\n");
            count--;
 
            if (count <= 0)
            {
                printf("\n\n\n\n\n\n\n\n\n\n                                               YOU LOSE!\n");
                Sleep(1000);
                menu();
            }
            goto start2;
        }
 
        system("cls");
 
        for (i = 0; i < 1; i++)
        {
            for (j = 0; j < 6; j++)
            {
                if (k == mas[i][j])
                {
                    z = i + 1;
                    mas[z][j] = k;
                    n++;
 
                    if (n == 6)
                    {
                        printf("\n\n\n\n\n\n\n\n\n\n                                                    YOU WIN!");
                        Sleep(1000);
                        menu();
                    }
                }
            }
        }
 
        for (i = 0; i < 1; i++)
        {
            printf("\n");
            printf("                                                   _\n");
 
            for (j = 0; j < 6; j++)
            {
                printf("                                                  |%c|\n", mas[z][j]);
            }
 
            printf("                                                  \\_/\n");
        }
        z = 0;
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2016, 16:40
Ответы с готовыми решениями:

Выбор из нескольких вариантов ответа
Здравствуйте. Решил создать программу по типу визуальной новеллы в терминале. Помогите сделать так, чтобы при выборе одного...

Создание теста без вариантов ответа
Необходимо создать тест, но не знаю как именно это сделать. Структура состоит так: вопрос- ответ (без вариантов ответа). Сами вопросы...

Создание нескольких вариантов отображения в woocommerce
Здравствуйте! Столкнулся вот с какой задачкой. Впервые использую плагин woocommerce и пока не во всем разобрался, но он уже подключен и по...

5
Helper C/C++
 Аватар для Invader0x7F
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
18.10.2016, 16:44
Не массивы нужно использовать, а структуры для описания данных, а потом уже массивы объектов.
0
0 / 0 / 0
Регистрация: 15.09.2016
Сообщений: 18
18.10.2016, 16:49  [ТС]
Можете дать пример кода?
0
Helper C/C++
 Аватар для Invader0x7F
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
18.10.2016, 16:56
Лучший ответ Сообщение было отмечено andreykostyuch как решение

Решение

Могу дать совет:

C++
1
2
3
4
5
6
7
    char k = 0, word[] = "anchor", answer[80], mas[7][6] = { { 'a','n','c','h','o','r', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', },
                                             { '*','*','*','*','*','*', } };
удобнее всего представить в виде структуры, а для набора слов (вопросов) использовать массив:

C++
1
2
3
4
5
6
typedef struct Question
{
        char word[256];
        char answer[80];
        char field[7][6];
} QUESTION
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
QUESTION pQuestions[] = { { "anchor", "\0", {  { 'a','n','c','h','o','r' }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', } } },
                                                  { "chorus", "\0",  {  { 'c','h','o','r','u','s' }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', }, 
                                                                               { '*','*','*','*','*','*', } } } };
1
0 / 0 / 0
Регистрация: 15.09.2016
Сообщений: 18
18.10.2016, 17:05  [ТС]
А если у меня слово будет больше 6 букв? Заранее задавать размер массива с запасом?
0
Helper C/C++
 Аватар для Invader0x7F
286 / 163 / 122
Регистрация: 22.09.2016
Сообщений: 518
18.10.2016, 17:07
Да, именно так.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2016, 17:07
Помогаю со студенческими работами здесь

Создание функции для вывода нескольких значений (массива)?
Создал функцию которая должна возвращать массив данных. Внутри функции все нормально работает, все необходимые данные преобразуются в...

Вопрос и 4 вариантов ответа
Как написать Вопрос и чтобы были 4 варианта овета к нему. При правильном ответе +1 был в копилку.

Создание WinApi функции для нахождения максимального элемента массива в нескольких потоках
Задача состоит в следующем: ножно написать программу, которая будет находить максимальное значение массива в нескольких потоках. Я написал...

Создать тест из 25 вопросов, 5 вариантов ответа
Добрый вечер мне нужно создать тест, но не получается, нужно создать тест из 25 вопросов, 5 вариантов ответа, только один правильный ответ,...

Тест, вывод рандомно вариантов ответа
Вообщем сейчас делаю тест. И возникла проблема варианты ответа должны выводится рандомно. Варианты ответа хранятся в типизированном...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru