Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 28.05.2017
Сообщений: 27
1

перезапуск программы

29.05.2017, 17:55. Просмотров 1463. Ответов 5
Метки нет (Все метки)

пишу игру. в "конце поставил проверку, хотите ли запустить заново?"
использовал кучу функций.
можно ли в какой-то функции заставить программу заново открыться? ну или в мейн, но да бы было условие правильное и оно не срабатывало каждый раз при проходе мейн.
как должен выглядеть кусочек кода, да бы программа закрылась и всё заново началось. ну или свои идеи предложите, может можно в этой же программке стереть все данные и как-то заново всё начать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2017, 17:55
Ответы с готовыми решениями:

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

Перезапуск программы
Подскажите как реализовать перезапуск программы, ну допустим задаем условие и если условие...

Перезапуск программы
Как мне программно перезапустить приложение? Нужно чтобы программа перезапустила себя сам, при том...

Перезапуск программы
Нужно перезапустить программу нажатием на любую букву, кроме n. В чем ошибка? #include "stdafx.h"...

5
Форумчанин
Эксперт CЭксперт С++
8159 / 5007 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
29.05.2017, 18:07 2
Перезапустить приложение - это костыль. Нужно сбросить результат просто или начать новую игру по требованию пользователя.
Расскажите конкретнее, зачем вам так нужен перезапуск?
0
0 / 0 / 1
Регистрация: 28.05.2017
Сообщений: 27
29.05.2017, 18:32  [ТС] 3
написал крестики нолики. два варианта события, или кто-то выиграл, либо ничья. потом хочу спросить, желают ли продолжить. в функции main ставить в конец незя, так как собьется работа. но могу поставить какую-либо проверку, да бы перезапустить игру("нажмите 1 если хотите выйти или нажмите 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
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
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <cmath>
#include <conio.h>
 
using namespace std;
int OTVET = 0;
 
char board[9] = { '*','*', '*', '*', '*', '*', '*', '*', '*', };
void nichya() {
    cout << "\n\n\n\n\n\n\n";   cout << "\n\n\n\n\n\n\n";
    cout << "Конец игры, ничья";
    cout << "\n\n\n\n\n\n\n";   cout << "\n\n\n\n\n\n\n";
    _getch();
    exit(0);
    }
 
 
 
void rastoyanie() {
    cout <<"\n\n\n\n\n\n\n";
}
void print_board() {
    cout << "                                                 Игровая доска: \n" << endl;
    cout << "                                                 ------------- " << endl;
    cout << "                                                 |-" << board[6] << "-|-" << board[7] << "-|-" << board[8] << "-|\n";
    cout << "                                                 |-" << board[3] << "-|-" << board[4] << "-|-" << board[5] << "-|\n";
    cout << "                                                 |-" << board[0] << "-|-" << board[1] << "-|-" << board[2] << "-|\n";
    cout << "                                                 ------------- " << endl;
    
 
}
void pobeditel() {
    cout << "\n\n";
    cout << "          " << "$$$$$$_______$$$$_______$$$$$________$$$________$$$$$________$$$$________$$$$$__________$$$_______$$$$$______$$$$$$______$$___$$" << endl;
    cout << "          " << "$$__$$______$$__$$__________$$______$$_$$_______$$__$$______$$__$$_______$$__$$________$_$$______$$__$$______$$__________$$$_$$$" << endl;
    cout << "          " << "$$__$$______$$__$$________$$$_______$$_$$_______$$$$$$______$$$$$$_______$$$$$________$__$$_______$$$$$______$$$$________$$_$_$$" << endl;
    cout << "          " << "$$__$$______$$__$$__________$$_____$$$$$$$______$$__________$$__$$_______$$__$$______$$__$$______$$__$$______$$__________$$___$$" << endl;
    cout << "          " << "$$__$$_______$$$$_______$$$$$______$_____$______$$__________$$__$$_______$$$$$_______$$__$$______$$__$$______$$$$$$______$$___$$" << endl;
    cout << "          " << "   " << endl;
}
void proverka() {
            if (board[0] == 'X' && board[1] == 'X'&&board[2] == 'X') {
            pobeditel();
            cout << "\n\n\n\n                                            Выиграл 1 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
        
            }
            if (board[3] == 'X' && board[4] == 'X'&&board[5] == 'X') {
                pobeditel(); 
                cout << "\n\n\n\n                                            Выиграл 1 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
                }
        
            if (board[6] == 'X' && board[7] == 'X'&&board[8] == 'X') {
                pobeditel();
                cout << "\n\n\n\n                                            Выиграл 1 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            
            if (board[0] == 'X' && board[3] == 'X'&&board[6] == 'X') {
                pobeditel(); 
                cout << "\n\n\n\n                                            Выиграл 1 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            if (board[1] == 'X' && board[4] == 'X'&&board[7] == 'X') {
                pobeditel(); 
                cout << "\n\n\n\n                                            Выиграл 1 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            if (board[2] == 'X' && board[5] == 'X'&&board[8] == 'X') {
                pobeditel(); 
                cout << "\n\n\n\n                                            Выиграл 1 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            if (board[0] == 'X' && board[4] == 'X'&&board[8] == 'X') {
                pobeditel(); 
                cout << "\n\n\n\n                                            Выиграл 1 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            if (board[2] == 'X' && board[4] == 'X'&&board[6] == 'X') {
                pobeditel(); 
                cout << "\n\n\n\n                                            Выиграл 1 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            ////////////////////////////////////////
            if (board[0] == '0' && board[1] == '0'&&board[2] == '0') {
                cout << "\n\n\n\n                                            Выиграл 2 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            if (board[3] == '0' && board[4] == '0'&&board[5] == '0') {
                cout << "\n\n\n\n                                            Выиграл 2 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
 
            if (board[6] == '0' && board[7] == '0'&&board[8] == '0') {
                cout << "\n\n\n\n                                            Выиграл 2 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
 
            if (board[0] == '0' && board[3] == '0'&&board[6] == '0') {
                cout << "\n\n\n\n                                            Выиграл 2 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            if (board[1] == '0' && board[4] == '0'&&board[7] == '0') {
                cout << "\n\n\n\n                                            Выиграл 2 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            if (board[2] == '0' && board[5] == '0'&&board[8] == '0') {
                cout << "\n\n\n\n                                            Выиграл 2 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            if (board[0] == '0' && board[4] == '0'&&board[8] == '0') {
                cout << "\n\n\n\n                                            Выиграл 2 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            if (board[2] == '0' && board[4] == '0'&&board[6] == '0') {
                cout << "\n\n\n\n                                            Выиграл 2 игрок\n\n\n\n\n\n\n\n\n\n\n\n"; _getch(); exit(0);
            }
            }
int get_move() {
    
    cout <<"\n\n                           Параметры: " << endl;
    cout << "                                                 ------------- " << endl;
    cout << "                                                 |-7-|-8-|-9-|" << endl;
    cout << "                                                 |-4-|-5-|-6-|" << endl;
    cout << "                                                 |-1-|-2-|-3-|" << endl;
    cout << "                                                 ------------- " << endl;
    cout << "\n";
 
    print_board();
    
    proverka();
    
    int move;
    cin >> move;
    while (move > 9 || move < 1 || board[move-1]!='*') {
        cout << "\nВведите легальный ход (1-9) \n";
        cin >> move;
        
    }
    return move;
 
}
 
 
 
int main()
{
    
 
    cout << "\n\n";
    cout << "                                 " << "$$$$$$______$$$$$_______$$__$$_____$$$$$_______$$$$$$______$$$$$$" << endl;
    cout << "                                 " << "$$__$$______$$__$$______$$__$$_____$$__$$______$$____________$$" << endl;
    cout << "                                 " << "$$__$$______$$$$$$______$$_$$$_____$$$$$_______$$$$__________$$" << endl;
    cout << "                                 " << "$$__$$______$$__________$$$_$$_____$$__$$______$$____________$$" << endl;
    cout << "                                 " << "$$__$$______$$__________$$__$$_____$$$$$_______$$$$$$________$$" << endl;
    cout << "                                 " << "    " << endl;
            
    setlocale(LC_ALL, "Russian");
    cout << "\n\n";
        cout << "Ходит 1 игрок (Х)" << endl;
    
    for (int i = 0; i < 9; i++) {
        int move = get_move();
        rastoyanie();
        rastoyanie();
        rastoyanie();
        rastoyanie();
        rastoyanie();
        rastoyanie();
        cout << "Ход который ввел соперник " << move << endl;
        if (i % 2 == 0) {
            cout << "Ходит 2 игрок (0)" << endl; 
            board[move - 1] = 'X';
            
        }
        
        else {
            cout << "Ходит 1 игрок (Х)" << endl;
            board[move - 1] = '0';
        }
    }
    nichya();
    
        /////////////заставить видеть  ZANOVO
    exit(0);
    return 0;
}
0
nd2
3399 / 2781 / 1250
Регистрация: 29.01.2016
Сообщений: 9,423
29.05.2017, 18:40 4
Цитата Сообщение от Bogdanius00101 Посмотреть сообщение
в функции main ставить в конец незя, так как собьется работа.
Что там может сбиться? Помести весь код в main() (до exit) в цикл do while, в конце тела цикла, делай запрос:
Цитата Сообщение от Bogdanius00101 Посмотреть сообщение
"нажмите 1 если хотите выйти или нажмите 2 да бы начать заново"
в параметрах while проверяй ответ.
1
0 / 0 / 1
Регистрация: 28.05.2017
Сообщений: 27
29.05.2017, 18:45  [ТС] 5
А как именно написать этот код? не проходил в институте подобное. как заставить заново всё запуститься?
0
nd2
3399 / 2781 / 1250
Регистрация: 29.01.2016
Сообщений: 9,423
29.05.2017, 18:58 6
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
int main()
{
   
   char ch;  
 do
 {
    cout << "\n\n";
    cout << "                                 " << "$$$$$$______$$$$$_______$$__$$_____$$$$$_______$$$$$$______$$$$$$" << endl;
    cout << "                                 " << "$$__$$______$$__$$______$$__$$_____$$__$$______$$____________$$" << endl;
    cout << "                                 " << "$$__$$______$$$$$$______$$_$$$_____$$$$$_______$$$$__________$$" << endl;
    cout << "                                 " << "$$__$$______$$__________$$$_$$_____$$__$$______$$____________$$" << endl;
    cout << "                                 " << "$$__$$______$$__________$$__$$_____$$$$$_______$$$$$$________$$" << endl;
    cout << "                                 " << "    " << endl;
            
    setlocale(LC_ALL, "Russian");
    cout << "\n\n";
        cout << "Ходит 1 игрок (Х)" << endl;
    
    for (int i = 0; i < 9; i++) {
        int move = get_move();
        rastoyanie();
        rastoyanie();
        rastoyanie();
        rastoyanie();
        rastoyanie();
        rastoyanie();
        cout << "Ход который ввел соперник " << move << endl;
        if (i % 2 == 0) {
            cout << "Ходит 2 игрок (0)" << endl; 
            board[move - 1] = 'X';
            
        }
        
        else {
            cout << "Ходит 1 игрок (Х)" << endl;
            board[move - 1] = '0';
        }
    }
    nichya();
 
    cout << "Нажмите 1 если хотите выйти или нажмите 2 да бы начать заново: ";
    cin >> ch;
    if (ch != 1)
    {
         // если нужно что-то чистить перед запуском новой игры, то здесь
    }
 } while(ch != '1');
    
    return 0;
}
Добавлено через 6 минут
...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2017, 18:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Перезапуск программы
Скажите, пожалуйста, можно ли как-нибудь сделать перезапуск своей программы из нее же самой? Нужно...

Программный перезапуск программы
Здравствуйте, как программно сделать перезапуск программы в программе (работаю в VS) . При этом...

Включение отключение и перезапуск устройства
Иметься программа включающая и отключающая видео карту. 1) Хотелось бы реализовать включение и...

Перезапуск таймера при повторном запуске потока
#include &lt;condition_variable&gt; #include &lt;iostream&gt; #include &lt;random&gt; #include &lt;thread&gt; #include...


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

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

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