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

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

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

Студворк — интернет-сервис помощи студентам
пишу игру. в "конце поставил проверку, хотите ли запустить заново?"
использовал кучу функций.
можно ли в какой-то функции заставить программу заново открыться? ну или в мейн, но да бы было условие правильное и оно не срабатывало каждый раз при проходе мейн.
как должен выглядеть кусочек кода, да бы программа закрылась и всё заново началось. ну или свои идеи предложите, может можно в этой же программке стереть все данные и как-то заново всё начать
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.05.2017, 17:55
Ответы с готовыми решениями:

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

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

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

5
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
29.05.2017, 18:07
Перезапустить приложение - это костыль. Нужно сбросить результат просто или начать новую игру по требованию пользователя.
Расскажите конкретнее, зачем вам так нужен перезапуск?
0
0 / 0 / 1
Регистрация: 28.05.2017
Сообщений: 29
29.05.2017, 18:32  [ТС]
написал крестики нолики. два варианта события, или кто-то выиграл, либо ничья. потом хочу спросить, желают ли продолжить. в функции 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
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.05.2017, 18:40
Цитата Сообщение от Bogdanius00101 Посмотреть сообщение
в функции main ставить в конец незя, так как собьется работа.
Что там может сбиться? Помести весь код в main() (до exit) в цикл do while, в конце тела цикла, делай запрос:
Цитата Сообщение от Bogdanius00101 Посмотреть сообщение
"нажмите 1 если хотите выйти или нажмите 2 да бы начать заново"
в параметрах while проверяй ответ.
1
0 / 0 / 1
Регистрация: 28.05.2017
Сообщений: 29
29.05.2017, 18:45  [ТС]
А как именно написать этот код? не проходил в институте подобное. как заставить заново всё запуститься?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
29.05.2017, 18:58
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.05.2017, 18:58
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru