@DenKG

Как запустить игру по новой?

Пишу морской бой, как курсовой проект. И застрял на таком моменте:
Не знаю, как после победы/поражения запустить новую игру.
Сразу извиняюсь за большое количество кода.
Вот моя функция 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.Нет".

Даже если я выбираю НЕТ, то консоль не закрывается и снова остаются уже знакомые две строчки. Подскажите, как можно решить эту проблему?
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы