Boa noite, galera. Tudo bem? Venho aqui pedir uma ajuda ou tirar uma dúvida, logo após concluirmos o jogo. Tornamos ele executavel, certo? Mas toda vez que tento abrir ele fora do prompt de comando, eu me deparo com o seguinte erro, que é quando você acerta o número secreto, o programa fecha sozinho, sem ao menos exibir a frase final. O programa roda direitinho e exibi tudo, só quando acertamos o número secreto que ele fecha sozinho. Para jogar ele por completo, só posso com o prompt de comando? ou apenas executando ele(fora do prompt), consigo jogar, se sim, como posso fazer para ele parar de fechar sozinho? esse é o meu codigo. Ps:
// incluindo as bibliotecas
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() { system("chcp 65001");
// imprimindo cabecalho bonito do jogo
printf("\n\n");
printf(" P /_\\ P \n");
printf(" /_\\_|_|_/_\\ \n");
printf(" n_n | ||. .|| | n_n Bem vindo ao \n");
printf(" |_|_|nnnn nnnn|_|_| Jogo de Adivinhação! \n");
printf(" |\" \" | |_| |\" \" | \n");
printf(" |_____| ' _ ' |_____| \n");
printf(" \\__|_|__/ \n");
printf("\n\n");
// declarando variaveis que serao usadas mais a frente
int chute;
int acertou;
int nivel;
int totaldetentativas;
// definindo a quantidade de pontos inicial
double pontos = 1000;
// gerando um numero secreto aleatorio
srand(time(0));
int numerosecreto = rand() % 100;
// escolhendo o nivel de dificuldade
printf("Qual o nível de dificuldade?\n");
printf("(1) Fácil (2) Médio (3) Difícil\n\n");
printf("Escolha: ");
scanf("%d", &nivel);
switch(nivel) {
case 1:
totaldetentativas = 20;
break;
case 2:
totaldetentativas = 15;
break;
default:
totaldetentativas = 6;
break;
}
// loop principal do jogo
for(int i = 1; i <= totaldetentativas; i++) {
printf("-> Tentativa %d de %d\n", i, totaldetentativas);
printf("Chute um número: ");
scanf("%d", &chute);
// tratando chute de numero negativo
if(chute < 0) {
printf("Você não pode chutar números negativos\n");
i--;
continue;
}
// verifica se acertou, foi maior ou menor
acertou = chute == numerosecreto;
if(acertou) {
break;
} else if(chute > numerosecreto) {
printf("\nSeu chute foi maior do que o número secreto!\n\n");
} else {
printf("\nSeu chute foi menor do que o número secreto!\n\n");
}
// calcula a quantidade de pontos
double pontosperdidos = abs(chute - numerosecreto) / 2.0;
pontos = pontos - pontosperdidos;
}
// imprimindo mensagem de vitoria ou derrota
printf("\n");
if(acertou) {
printf(" OOOOOOOOOOO \n");
printf(" OOOOOOOOOOOOOOOOOOO \n");
printf(" OOOOOO OOOOOOOOO OOOOOO \n");
printf(" OOOOOO OOOOO OOOOOO \n");
printf(" OOOOOOOO # OOOOO # OOOOOOOO \n");
printf(" OOOOOOOOOO OOOOOOO OOOOOOOOOO \n");
printf("OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO \n");
printf("OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO \n");
printf("OOOO OOOOOOOOOOOOOOOOOOOOOOOOO OOOO \n");
printf(" OOOO OOOOOOOOOOOOOOOOOOOOOOO OOOO \n");
printf(" OOOO OOOOOOOOOOOOOOOOOOOO OOOO \n");
printf(" OOOOO OOOOOOOOOOOOOOO OOOO \n");
printf(" OOOOOO OOOOOOOOO OOOOOO \n");
printf(" OOOOOO OOOOOO \n");
printf(" OOOOOOOOOOOO \n");
printf("\nParabéns! Você acertou!\n");
printf("Você fez %.2f pontos. Até a próxima!\n\n", pontos);
} else {
printf(" \\|/ ____ \\|/ \n");
printf(" @~/ ,. \\~@ \n");
printf(" /_( \\__/ )_\\ \n");
printf(" \\__U_/ \n");
printf("\nVocê perdeu! Tente novamente!\n\n");
}
}