Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Леонид Каруна
0 / 0 / 8
Регистрация: 14.04.2013
Сообщений: 176
#1

Как выйти из функции - C++

19.01.2015, 10:57. Просмотров 2335. Ответов 17
Метки нет (Все метки)

 Комментарий модератора 
Прошу прощения. Произошел сбой при записи.
Напишите еще раз суть задачи.

То получилось что-то вроде рекурсии, постоянно вызывается этот класс.
Какие методы выхода есть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2015, 10:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как выйти из функции (C++):

ошибка.должена выйти из функции, но что-то не то
#include <iostream> #include <conio.h> using namespace std; int nod(int...

Как выйти из программы
Написав щось подібне калькулятору. Але що написати щоб вийти з консолі?? буду...

Как выйти из условия if?
Пользователю предлагается выбор, он должен ввести 1 или 2. Я хочу учесть и...

как выйти из программы
при выполнении программы - выполняется выбранная операция, после чего при...

Как выйти из оператора if
Пишу ИИ для крестиков-ноликов и вопрос в том, если исполниться одино условие...

do while - как выйти из цикла?
Подскажите пожалуйста, а то я уже всю голову "сломал", почему при вводе "А"...

17
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,201
Завершенные тесты: 1
19.01.2015, 11:01 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Y
{
public:
   void f2(){}
   void f1(){f2();}
};
class G
{
   Y y;
};
int main()
{
   G g;
   g.y.f1();
Это Вы имеете ввиду?
Возвраты выполнятся автоматически.
1
Леонид Каруна
0 / 0 / 8
Регистрация: 14.04.2013
Сообщений: 176
19.01.2015, 11:03  [ТС] #3
Да, но в так паутине не переходит автоматически. Там реализована игра и выйти не получается, после игры программа переходит в один из двух методов и там мне надо прописать выход. exit() - не вариант, нужен досрочный переход в главный класс.
0
DukeNukem
Заблокирован
19.01.2015, 11:05 #4
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
Какие методы выхода есть?
возврат управления из любой функции делается оператором return, если функция не void, тогда командой return так же возвращается значение, например для функции bool IsOK(); можно вернуть return true;, если функция "пустая" (без возвращаемого значения), то есть void, то из неё в любой момент так же можно вернуть управления посредствам простого return;

Вообще код покажи, я так полагаю тут речь о другом?
0
Леонид Каруна
0 / 0 / 8
Регистрация: 14.04.2013
Сообщений: 176
19.01.2015, 11:06  [ТС] #5
int gameOverManagement();
int gameVictoryManagement(Resury&);
Надо вернуться из этих методов в другой класс

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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
class Labirint{
public:
    int labrirnts(Resury&);
    int gameOverManagement();
    int gameVictoryManagement(Resury&);
};
 
int gameOverManagement(){
    system("cls");
    cout << "\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t     Вы проиграли!\n\n\n\n\n\n\n\n\n\n\n";
    system("pause");
    //exit(0);
    return 0;
}
int gameVictoryManagement(Resury &show){
    system("cls");
    cout << "\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t     Поздравляю, вы победили!\n\n\n\n\n\n\n\n\n\n\n";
    cout << "Вы получаете 2500 золота и 100 кристаллов" << endl;
    show.gold += 2500;
    show.kry += 100;
    system("pause");
    exit(0);
    return 0;
}
int dataManagement(int management, int stopGame){
    Resury show;
    if (management == 1)
    {
        gameOverManagement();
        stopGame = 1;
    }
    if (management == 3)
    {
        gameVictoryManagement(show);
        stopGame = 1;
    }
    management = 2;
    return management, stopGame;
}
int Labirint::labrirnts(Resury &show){
    // 1 - стенки лабиринта
    // 0 - путь
    int mas[24][24] = { { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, },
    { 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, },
    { 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, },
    { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, },
    { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, },
    { 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, },
    { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, },
    { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, },
    { 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, },
    { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, },
    { 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, },
    { 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, },
    { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, },
    { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, },
    { 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, },
    { 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, },
    { 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, } };
    unsigned short keysArrow; int s1 = 0;
    int s2 = 1;
    int stopGame(0);
    mas[s1][s2] = 2; do
    {
        system("cls");
        for (int i = 0; i < 24; i++) //переключение по строкам
        {
            for (int j = 0; j < 20; j++)// переключение по столбцам
            {
                if (mas[i][j] == 1)
                {
                    // вывести два раза символ (номер которого 176 в таблице аски) в консоль
                    cout << static_cast<char>(176);
                    cout << static_cast<char>(176);
                }
                if (mas[i][j] == 0 || mas[i][j] == 3)
                {
                    cout << "  ";
                }
                if (mas[i][j] == 2)
                {
                    cout << static_cast<char>(182);
                    cout << static_cast<char>(182);
                }
            }
            cout << endl;
        }
        keysArrow = getch();
        keysArrow = getch();   if (keysArrow == 0)
            keysArrow = getch();
        if (keysArrow == 72 || keysArrow == 150 || keysArrow == 230)
        {
            // Вверх
            mas[s1][s2] = 1;
            s1--;
            dataManagement(mas[s1][s2], stopGame);
            mas[s1][s2] = 2;
        }
        if (keysArrow == 80 || keysArrow == 155 || keysArrow == 235)
        {
            // Вниз
            mas[s1][s2] = 1;
            s1++;
            dataManagement(mas[s1][s2], stopGame);
            mas[s1][s2] = 2;
        }
        if (keysArrow == 77 || keysArrow == 130 || keysArrow == 262)
        {
            // Вправо
            mas[s1][s2] = 1;
            s2++;
            dataManagement(mas[s1][s2], stopGame);
            mas[s1][s2] = 2;
        }
        if (keysArrow == 75 || keysArrow == 148 || keysArrow == 235)
        {
            // Влево
            mas[s1][s2] = 1;
            s2--;
            dataManagement(mas[s1][s2], stopGame);
            mas[s1][s2] = 2;
        }
    } while (true);
    getch();
}
0
DukeNukem
Заблокирован
19.01.2015, 11:09 #6
В какой главный класс? Весь код покажи своего хардкора
(функцию main или где ты там создаёшь объекты классов и вызываешь эти функции)
0
Леонид Каруна
0 / 0 / 8
Регистрация: 14.04.2013
Сообщений: 176
19.01.2015, 11:10  [ТС] #7
Весь код сюда не влезет)
Просто перейти из этого класса Labirint в класс Menu.
Я из класса Menu перехожу в класс Labirint, а теперь мне надо на оборот.
0
DukeNukem
Заблокирован
19.01.2015, 11:16 #8
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
Весь код сюда не влезет)
Влезет, не переживай, но лучше использовать спойлеры для большого блока кода.
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
Просто перейти из этого класса Labirint в класс Menu.
Я не вижу ни кода класса Menu ни, что главное, кода создания объектов классов и вызовов ихних функций.
Что значит выйти? Что за абстракционизм Ты имеешь ввиду уничтожить объект одного класса из другого ?
0
Леонид Каруна
0 / 0 / 8
Регистрация: 14.04.2013
Сообщений: 176
19.01.2015, 11:22  [ТС] #9
В архиве файлик с кодом заголовочника.
0
Вложения
Тип файла: rar 1.rar (14.6 Кб, 4 просмотров)
DukeNukem
Заблокирован
19.01.2015, 11:30 #10
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
В архиве файлик с кодом заголовочника.
Холи щит Какая куча ....
Ну теперь расскажи, куда и самое главное для чего ты хочешь вернуться?
У тебя в класса Mune статический объявлен экземпляр Labirint-а, всё действо происходит в конструкторе! лабиринта :-) Куда ты хочешь из конструктора выйти, я чего - то не пойму ?
Из конструктора можно только кинуть исключение std::bad_alloc, чтоб объект не создался
1
Леонид Каруна
0 / 0 / 8
Регистрация: 14.04.2013
Сообщений: 176
19.01.2015, 11:41  [ТС] #11
Мне надо вернуться обратно в меню.
Смотри на пример других классов, я выполняю в них действие и возвращаюсь в меню в main.
А из этого прям выйти не могу.
0
DukeNukem
Заблокирован
19.01.2015, 11:44 #12
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
Смотри на пример других классов
Слушай, без обид только, но там такая куча гавнокода, что копаться в ней вникать совсем не хочется, да и времени особо нет...
Ты можешь сформулировать суть проблемы на простых классах типа A и B ? просто накидай пару строк кода с имитацией проблемы и выложи сюда
1
Леонид Каруна
0 / 0 / 8
Регистрация: 14.04.2013
Сообщений: 176
19.01.2015, 11:46  [ТС] #13
Я пример выше проводил. Просто надо как-то вернуться от туда в Menu.
0
DukeNukem
Заблокирован
19.01.2015, 11:52 #14
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
Я пример выше проводил. Просто надо как-то вернуться от туда в Menu.
нет примера, где было бы у тебя и лабиринт и меню
1
Леонид Каруна
0 / 0 / 8
Регистрация: 14.04.2013
Сообщений: 176
19.01.2015, 11:55  [ТС] #15
Класс Лабиринт

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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
class Labirint{
public:
    int labrirnts(Resury&);
    int gameOverManagement();
    int gameVictoryManagement(Resury&);
};
 
int gameOverManagement(){
    system("cls");
    cout << "\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t     Вы проиграли!\n\n\n\n\n\n\n\n\n\n\n";
    system("pause");
    //exit(0);
    return 0;
}
int gameVictoryManagement(Resury &show){
    system("cls");
    cout << "\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t     Поздравляю, вы победили!\n\n\n\n\n\n\n\n\n\n\n";
    cout << "Вы получаете 2500 золота и 100 кристаллов" << endl;
    show.gold += 2500;
    show.kry += 100;
    system("pause");
    exit(0);
    return 0;
}
int dataManagement(int management, int stopGame){
    Resury show;
    if (management == 1)
    {
        gameOverManagement();
        stopGame = 1;
    }
    if (management == 3)
    {
        gameVictoryManagement(show);
        stopGame = 1;
    }
    management = 2;
    return management, stopGame;
}
int Labirint::labrirnts(Resury &show){
    // 1 - стенки лабиринта
    // 0 - путь
    int mas[24][24] = { { 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, },
    { 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, },
    { 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, },
    { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, },
    { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, },
    { 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, },
    { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, },
    { 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, },
    { 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, },
    { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, },
    { 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, },
    { 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, },
    { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, },
    { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, },
    { 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, },
    { 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, },
    { 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, },
    { 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, } };
    unsigned short keysArrow; int s1 = 0;
    int s2 = 1;
    int stopGame(0);
    mas[s1][s2] = 2; do
    {
        system("cls");
        for (int i = 0; i < 24; i++) //переключение по строкам
        {
            for (int j = 0; j < 20; j++)// переключение по столбцам
            {
                if (mas[i][j] == 1)
                {
                    // вывести два раза символ (номер которого 176 в таблице аски) в консоль
                    cout << static_cast<char>(176);
                    cout << static_cast<char>(176);
                }
                if (mas[i][j] == 0 || mas[i][j] == 3)
                {
                    cout << "  ";
                }
                if (mas[i][j] == 2)
                {
                    cout << static_cast<char>(182);
                    cout << static_cast<char>(182);
                }
            }
            cout << endl;
        }
        keysArrow = getch();
        keysArrow = getch();   if (keysArrow == 0)
            keysArrow = getch();
        if (keysArrow == 72 || keysArrow == 150 || keysArrow == 230)
        {
            // Вверх
            mas[s1][s2] = 1;
            s1--;
            dataManagement(mas[s1][s2], stopGame);
            mas[s1][s2] = 2;
        }
        if (keysArrow == 80 || keysArrow == 155 || keysArrow == 235)
        {
            // Вниз
            mas[s1][s2] = 1;
            s1++;
            dataManagement(mas[s1][s2], stopGame);
            mas[s1][s2] = 2;
        }
        if (keysArrow == 77 || keysArrow == 130 || keysArrow == 262)
        {
            // Вправо
            mas[s1][s2] = 1;
            s2++;
            dataManagement(mas[s1][s2], stopGame);
            mas[s1][s2] = 2;
        }
        if (keysArrow == 75 || keysArrow == 148 || keysArrow == 235)
        {
            // Влево
            mas[s1][s2] = 1;
            s2--;
            dataManagement(mas[s1][s2], stopGame);
            mas[s1][s2] = 2;
        }
    } while (true);
    getch();
}
Класс Меню
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
//*******************************Класс Меню****************************************
class Menu{
public:
    void Head();//Заголовок
    void menu(Resury&);//Менюшка
};
 
//Метод заголовка
void Menu::Head(){
    //Изменение цвета начало
    HANDLE h;
    h = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(h, 17);
    cout << "------------------------------------------------------------------------------------------------------------------------" << endl;
    SetConsoleTextAttribute(h, 15);
    //Изменение цвета конец
    cout << "\t\t\t\t\t       " << char(16) << char(390) << " Savelion " << char(390) << char(17) << endl;
    cout << endl << endl;
}
 
void Menu::menu(Resury& show){
    system("cls");
    Ferma ferma;//Создаем объект фермы
    Donat donat;//Создаем объект доната
    Shaxta shaxta;//Создаем объект шахты
    Pers pers;//Создаем объект персонажа
    Shop shop;//Создаем объект магазина
    Taverna taverna;//Создаем объект таверна
    Svaty svaty;//Создаем объект святилища
    Bodalka bodalka;//Создаем объект бодалки
    Zadania zadania;//Создаем объект заданий
    Kyznya kyznya;//Создаем объект кузницы
    Labirint labirint;//Создаем бъект лабиринта
    Head();//Заголовок
    cout << endl;
    //Метод показателей(хп,золото,энергия,зелень)
    show.Print();
    pers.lvl_up(show);//Проверяем на поднятие уровня
    cout << "1.Персонаж " << char(1) << endl;
    cout << "2.Задания " << char(4) << endl;
    cout << "3.Магазин " << char(3) << endl;
    cout << "4.Кузница " << char(23) << endl;
    cout << "5.Ферма " << char(5) << endl;
    cout << "6.Таверна " << char(127) << endl;
    cout << "7.Бодалка " << char(134) << endl;
    cout << "8.Шахта " << char(438) << endl;
    cout << "9.Лабиринт " << char(14) << endl;
    cout << "10.Святилище " << char(15) << endl;
    cout << "11.Донат " << char(19) << endl;
    cout << "12.Выход " << char(16) << endl;
    int a = 0;
    //Выбор пункта меню
    cin >> a;
    switch (a){
    case 1:{
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        cout << "1. Уровень" << endl;
        cout << "2. Характеристики" << endl;
        cout << "3. Экипировка" << endl;
        cout << "4. Статистика" << endl;
        cout << "5. Ресурсы" << endl;
        cout << "6. Вернутся в меню" << endl;
        int a = 0;
        cin >> a;
        //Меню персонажа
        switch (a){
        case 1:{
            pers.lvl(show);
            system("pause");
            return Menu::menu(show);
            break;
        }
        case 2:{
            pers.xarakteristiki(show);
            system("pause");
            return Menu::menu(show);
            break;
        }
        case 3:{
            pers.ecipirovka(show);
            system("pause");
            return Menu::menu(show);
            break;
        }
        case 4:{
            pers.statistika(show);
            return Menu::menu(show);
            break;
        }
        case 5:{
            pers.resursy(show);
            system("pause");
            return Menu::menu(show);
            break;
        }
        case 6:{
            return Menu::menu(show);
            break;
        }
        default:{
            cout << "Введите правильно" << endl;
            Sleep(10);
            return Menu::menu(show);
            break;
        }
        }//Конец меню перса
        break;
    }
    case 2:{
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        zadania.zadania(show);
        system("pause");
        return Menu::menu(show);
        break;
    }
    case 3:{
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
    
        
        break;
    }//Конец лавки
    case 4:{
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        cout << "Кузница - место, где обычные тряпки и побрякушки Попандопулуса превращаются в произведение искусства" << endl;
        cout << "1. Проковать оружие" << endl;
        cout << "2. Проковать доспех" << endl;
        cout << "3. Проковать наручи" << endl;
        cout << "4. Проковать шлем" << endl;
        cout << "5. Вернутся в меню" << endl;
        int a = 0;
        cin >> a;
        switch (a){
        case 1:{
            kyznya.oryjka(show);
            system("pause");
            system("cls");
            return Menu::menu(show);
            break;
        }
        case 2:{
            kyznya.bron(show);
            system("pause");
            system("cls");
            return Menu::menu(show);
            break;
        }
        case 3:{
            kyznya.narychi(show);
            system("pause");
            system("cls");
            return Menu::menu(show);
            break;
        }
        case 4:{
            kyznya.shlem(show);
            system("pause");
            system("cls");
            return Menu::menu(show);
            break;
        }
        case 5:{
            return Menu::menu(show);
            break;
        }
        default:{
            cout << "Введите правильно" << endl;
            Sleep(10);
            return Menu::menu(show);
            break;
        }
        }
 
        break;
    }
    case 5:{
        //Ферма
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        cout << "1.Работать на ферме" << endl;
        cout << "2.Вернутся в меню" << endl;
        int a = 0;
        cin >> a;
        switch (a)  {
        case 1:{
            ferma.Work(show);
            system("pause");
            system("cls");
            return Menu::menu(show);
            break;
        }
        case 2:{
            //Возвращение в меню
            return Menu::menu(show);
            break;
        }
        default:{
            cout << "Введите правильно" << endl;
            Sleep(10);
            return Menu::menu(show);
            break;
        }
        };
        break;
    }
        //Конец Фермы
    case 6:{
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        cout << "В таверне можно весело провести время, если ваш кошелек содержит много монет" << endl;
        cout << "1. Наперсточки" << endl;
        cout << "2. Так Иль Так?" << endl;
        cout << "3. Вернутся" << endl;
        int a = 0;
        cin >> a;
        switch (a){
        case 1:{
            taverna.naperstochki(show);
            system("pause");
            system("cls");
            return Menu::menu(show);
            break;
        }
        case 2:{
            taverna.takiltak(show);
            system("pause");
            system("cls");
            return Menu::menu(show);
            break;
        }
        case 3:{
            //Возвращение в меню
            return Menu::menu(show);
            break;
        }
        default:{
            cout << "Введите правильно" << endl;
            Sleep(10);
            return Menu::menu(show);
            break;
        }
        }
        break;
    }
    case 7:{
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        cout << "Бодалка - это то место, где вы можете настучать по рогам или хрюку другому игроку. так же можно нагнуть страшилку и вытрсясти из нее много золота." << endl;
        cout << "1. Поиск противника" << endl;
        cout << "2. Поиск страшилки" << endl;
        cout << "3. Отправиться в дозор" << endl;
        cout << "4. Вернутся в меню" << endl;
        int a = 0;
        cin >> a;
        switch (a){
        case 1:{
            bodalka.protivnik(show);
            system("pause");
            return Menu::menu(show);
            break;
        }
        case 2:{
            bodalka.strashilka(show);
            system("pause");
            return Menu::menu(show);
            break;
        }
        case 3:{
            bodalka.dozor(show);
            system("pause");
            return Menu::menu(show);
            break;
        }
        case 4:{
            return Menu::menu(show);
            break;
        }
        default:{
            cout << "Введите правильно" << endl;
            Sleep(10);
            return Menu::menu(show);
            break;
        }
        }
        break;
    }
    case 8:{
        //Шахта
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        cout << "1.Работать в шахте" << endl;
        cout << "2.Вернутся в меню" << endl;
        int a = 0;
        cin >> a;
        switch (a)  {
        case 1:{
            shaxta.work(show);
            system("pause");
            system("cls");
            return Menu::menu(show);
            break;
        }
        case 2:{
            //Возвращение в меню
            return Menu::menu(show);
            break;
        }
        default:{
            cout << "Введите правильно" << endl;
            Sleep(10);
            return Menu::menu(show);
            break;
        }
        };
        break;
    }
    case 9:{
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        cout << endl;
        cout << "Лабиринт можно проходить за очки, очки можно выигрывать в таверне в наперсточки." << endl;
        cout << "Минимальная ставка для получения 1-го очка - 1500 золота." << endl;
        cout << "При правильном прохождении лабиринта вы получаете 2500 золота и 100 кристаллов." << endl;
        cout << "Пройти лабиринт?" << endl;
        cout << "1.Да" << endl;
        cout << "2.Нет" << endl;
        int a = 0;
        cin >> a;
        if (a == 1){
            if (show.labirint == 1){
                show.labirint--;
                labirint.labrirnts(show);
                system("pause");
                return Menu::menu(show);
                break;
            }
            else{
                cout << "Для прохождения у вас нету очков лабиринта." << endl;
                system("pause");
                return Menu::menu(show);
                break;
            }
        }
        else{
            cout << "Приходите когда будет желание." << endl;
        }
        system("pause");
        return Menu::menu(show);
        break;
    }
    case 10:{
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        cout << "1. Заговоры" << endl;
        cout << "2. Откатник" << endl;
        cout << "3. Пандора" << endl;
        cout << "4. Вернутся в меню" << endl;
        int a = 0;
        cin >> a;
        switch (a){
        case 1:{
            svaty.zagovori(show);
            system("pause");
            return Menu::menu(show);
            break;
        }
        case 2:{
            svaty.otkatnik(show);
            system("pause");
            return Menu::menu(show);
        }
        case 3:{
            svaty.pandora(show);
            system("pause");
            return Menu::menu(show);
            break;
        }
        case 4:{
            return Menu::menu(show);
            break;
        }
        default:{
            cout << "Введите правильно" << endl;
            Sleep(10);
            return Menu::menu(show);
            break;
        }
        }
        break;
    }
    case 11:{
        //Донат
        system("cls");
        Head();//Заголовок
        show.Print();//Показатели
        cout << "1. Выбор платежной системы" << endl;
        cout << "2. Вернутся в меню" << endl;
        int a = 0;
        cin >> a;
        //Выбор пункта
        switch (a){
        case 1:{
            cout << "Выбор платежной системы" << endl;
            donat.donat(show);
            system("pause");
            system("cls");
            return Menu::menu(show);
            break;
        }
        case 2:{
            return Menu::menu(show);
            break;
        }
        default:{
            cout << "Введите правильно" << endl;
            break;
        }
        }//Конец меню выбора системы
        break;
    }//Конец меню Доната
    case 12:{
        break;
    }
    default:{
        cout << "Введите правильно" << endl;
        Sleep(10);
        return Menu::menu(show);
    }
    }//Конец меню
}//Конец метода меню
0
DukeNukem
Заблокирован
19.01.2015, 11:58 #16

Сократи код до проблемного места, чё ты форум засоряешь (да и потом, я ж те говорил про спойлеры )
Вырежи лишние....
Я уж не знаю, просто приведи пару строк, где будут строки места:
1. Откуда ты хочешь выйти
2. Куда хочешь выйти
1
Леонид Каруна
0 / 0 / 8
Регистрация: 14.04.2013
Сообщений: 176
19.01.2015, 11:59  [ТС] #17
Так ладно, спасибо всем за помощь)
0
DukeNukem
Заблокирован
19.01.2015, 12:04 #18
Цитата Сообщение от Леонид Каруна Посмотреть сообщение
спасибо всем за помощь)
Не за что. Так, на будущее, правильно сформулированный вопрос - это залог успешного разрешения проблемы.
0
19.01.2015, 12:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2015, 12:04
Привет! Вот еще темы с решениями:

как выйти из циклов
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt;...

Как выйти из цикла while();
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cctype&gt; #include &lt;string&gt;...

как полностью выйти из программы?
есть программа, в которой цикл. необходимо, чтобы при определенном значении...

Как выйти из цикла? Не получается
Есть задача: Из-за высокой цены бензина водители озабочены затратами...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

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