Пишу морской бой, как курсовой проект. И застрял на таком моменте:
Не знаю, как после победы/поражения запустить новую игру.
Сразу извиняюсь за большое количество кода.
Вот моя функция main():
int main()
{
int choise = 1;
int message = 0; // переменная хранит коды сообщений
while (choise != 0) {
human.ship_init(); //Здесь инициализируются корабли человека
computer.ship_init(); // Здесь инициализируются корабли компьютера
map_init(map); // Корабли записываются в массив с картой
while (message != 2)
{
int user_input = 0;
system("cls");
show(map);
referee.showScore();
message = check_ending(); //Если корабли у человека/компьютера закончились, то игра завершается, возвращая 2
}
if (message == 2) {
choise = newGame(); //Здесь я хотел запустить игру заново, но никак не получается
}
}
_getch();
return 0;
}
А вот функция newGame():
int newGame() {
int choise;
cout << "\n Попробовать снова?";
cout << "\n 1.Да 2.Нет";
choise = _getche();
system("cls");
switch (choise) {
case 1: {
system("cls");
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
computer.hits[i][j] = 0;
computer.ships[i][j] = 0;
human.hits[i][j] = 0;
human.ships[i][j] = 0;
}
}
return 1;
} break;
case 2: {
exit(0);
}
}
}
После того, как я здесь ввожу 1, экран очищается и остается лишь две строчки:
"Попробовать снова?"
"1.Да 2.Нет".
Даже если я выбираю НЕТ, то консоль не закрывается и снова остаются уже знакомые две строчки. Подскажите, как можно решить эту проблему?