O menu parece estar com erro, pode me ajudar? qualquer opção que seleciono, faz o jogo para.
Dev-C++ (windows)
Campo Minado - v1.01
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
/* Desenvolvido por @ComputaçãoEng*/
/* Protótipos: */
int Menu(); /* Menu do jogo */
int gerar_campo_minado(); /* Gera e mostra campo minado com valores ocultos, caso sua ativação seja status = "falsa": */
int verificar_ativacao(); /* Se ativação for status = "verdadeira", atualiza campo_2: */
int mostra_campo_minado();/* Imprime o campo atualizado... */
void Inicio(); /* Abertura do jogo*/
int Campo_1[10][10]; /* Gera valores a serem verificados de 0 a 5... */
int Campo_2[10][10]; /* Armazena os STATUS (ativado (1), desativado (0))... */
int marca_pontos = 0; /* Marca a pontução feita*/
int para=0; /* Usado para parar a geração de valores aleatorios*/
/* Desenvolvido por @ComputaçãoEng*/
int main(){
Inicio();
gerar_campo_minado();
mostra_campo_minado();
verificar_ativacao();
Menu();
system("exit");
}
/* Menu de seleção*/
int Menu(){
printf(" \n Pontuacao MAXIMA : %d ", marca_pontos);
printf("\n\n");
printf(" IIIIIIIIIIIIIIIIIIIIIIIII \n");
printf(" IIIIIIIIIIIIIIIIIIIIIIIII \n");
printf(" IIIIIIII -MENU- IIIIIIII\n");
printf(" IIIIIIII IIIIIIII\n");
printf(" IIIIIII 1. RESTART IIIIIII\n"); /*Reinicia campo minado... */
printf(" IIIIIII 2. CONTINUE IIIIIII\n"); /*Continua o campo minado antes da utima ação... */
printf(" IIIIIII 3. SAIR IIIIIII\n"); /*Para o joga... */
printf(" IIIIIIII IIIIIIII\n");
printf(" IIIIIIII -MENU- IIIIIIII\n");
printf(" IIIIIIIIIIIIIIIIIIIIIIIII \n");
printf(" IIIIIIIIIIIIIIIIIIIIIIIII \n\n");
int a;
printf(" Menu: ");
scanf("%d", &a);
if( a == 3){
system("exit");
}else if( a == 2){
system("cls");
main();
}else if( a == 1){
for(int x=0; x<10 ; x++){
for(int y=0; y<10 ; y++){
Campo_2[x][y] = 0;
}
}
marca_pontos = 0;
para = 0;
system("cls");
main();
}
}
/* Se o status for ATIVADO (1), atualiza Campo minado mostrando valor... */
/* Se o valor da coordenada for ZERO (0), então você encontrou uma mina...*/
int verificar_ativacao(){
int x, y;
do{
printf("\n Coordenada: ");
scanf("%d %d", &x, &y);
if(x > 8 || x < 0){
printf("\n VALOR INVALIDO! ");
system("cls");
mostra_campo_minado();
}else if(Campo_1[x][y] > 0 && Campo_1[x][y] < 5){
Campo_2[x][y] = 1;
marca_pontos += Campo_1[x][y];
system("cls");
mostra_campo_minado();
}else if(Campo_1[x][y] == 0){
x = y = 0;
system("cls");
break;
}
}while(1);
printf("\n-----------------------------------------------------------------------------------------\n");
printf(" IIIIIIIIIIII IIIIIIII IIIIIIII IIIIII IIIIII IIII IIII IIII\n");
printf(" IIIII IIIII IIIIIIIIIIII IIIIIIIIIIII IIIIII IIIIII IIII IIII IIII\n");
printf(" IIII IIII IIII IIII IIII IIII IIIIIII IIIIIII IIII IIII IIII\n");
printf(" IIIII IIIII III III III III IIIIIIII IIIIIIII IIII IIII IIII\n");
printf(" IIIIIIIIIII III III III III IIII IIII IIII IIII IIII IIII IIII\n");
printf(" IIIII IIIII III III III III IIII IIIIIIII IIII IIII IIII IIII\n");
printf(" IIII IIII IIII IIII IIII IIII IIII IIIIII IIII \n");
printf(" IIIII IIIII IIIIIIIIIIII IIIIIIIIIIII IIII IIII IIII IIII IIII IIII\n");
printf(" IIIIIIIIIIII IIIIIIII IIIIIIII IIIIII IIIIII IIII IIII IIII\n");
printf("-------------------------------------------------------------------------------------------\n\n\n");
Sleep(2000);
system("cls");
}
/* Imprime Campo minado na tela... */
int mostra_campo_minado(){
printf("\n Pontos: %d", marca_pontos);
printf("\n\n");
printf(" 1 2 3 4 5 6 7 8 \n");
for(int x=0 ; x<10 ; x++){
if( x > 0 && x <9){
printf(" %d ", x);
}else{
printf(" ");
}
for(int y=0 ; y<10 ; y++){
if(Campo_1[x][y] == 8){
putchar(219);
putchar(219);
putchar(219);
}else if(Campo_2[x][y] == 1){
putchar(32);
printf("%d", Campo_1[x][y]);
putchar(32);
}else{
putchar(32);
putchar('*');
putchar(32);
}
}
printf("\n");
}
}
/* Gera Valores aleatórios para o campo minado... */
int gerar_campo_minado(){
if(para == 0){
for(int x=0 ; x <10 ; x++){
for(int y=0 ; y <10 ; y++){
Campo_1[x][y] = rand()%5;
if( x == 0 || x == 9 || y == 0 || y == 9){
Campo_1[x][y] = 8;
}
}
}
para++;
}
}
/* Abertura */
void Inicio(){
if(para == 0){
printf("\n");
printf("\n");
printf(" IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII\n");
printf(" IIII IIII IIII\n");
printf(" IIII IIIIII IIII IIIIII IIII\n");
printf(" IIII IIII IIII IIII IIII\n");
printf(" IIII IIII IIII IIII IIII\n");
printf(" IIIIII IIII IIII IIIIII\n");
printf(" IIIIII IIIIIIIIIIIIIIIIIIII IIIIII\n");
printf(" IIIIII IIII IIII IIIIII\n");
printf(" IIII IIII IIII IIII IIII\n");
printf(" IIII IIII IIII IIII IIII\n");
printf(" IIII IIIIII IIII IIIIII IIII\n");
printf(" IIII IIII IIII\n");
printf(" IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII\n");
printf("\n");
for(int load=0; load<100 ; load = load + 1 + rand()%40 ){
printf("Loading %d%% : ", load);
for(int pt=0; pt<40 ; pt++){
putchar(219);
for(int timer=0; timer < 4000000 ; timer++);
}
printf("\r");
for(int limpa=0; limpa<100 ; limpa++ ){
putchar(32);
}
printf("\r");
}
system("cls");
}
/* Desenvolvido por @ComputaçãoEng*/
}