Ir ao conteúdo
  • Cadastre-se
ComputaçãoEng

C Campo Minado, Jogo - Simples

Recommended Posts

Olá! criei um jogo básico de campo minado e gostaria que vocês analisassem.
Se puderem me dar uma dica, onde adicionar um local para marcar a pontuação ?
E se tem algum bug. :wiggle: Obrigado!

#include <stdio.h>
#include <windows.h>
// Protótipos:
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... 
int Campo_1[10][10]; // Armazena valores gerados de 0 a 5...
int Campo_2[10][10]; // Armazena os STATUS (ativado (1), desativado (0))...

int main(){
	int a;
	gerar_campo_minado();
	mostra_campo_minado();
	verificar_ativacao();
	system("cls");
	printf("\n\n");
	printf("   IIIII -MENU- IIII\n");
	printf("   II             II\n");
	printf("   I  1. RESTART   I\n"); //Reinicia campo minado...
	printf("   I  2. CONTINUE  I\n"); //Continua o campo minado antes da utima ação...
	printf("   I  3. SAIR      I\n"); //Para o jogo...
	printf("   II             II\n");
	printf("   III-I-I-I-I-I-III\n\n Menu: ");
	scanf("%d", &a);
	if( a == 1){
		for(int x=0; x<10 ; x++){
			for(int y=0; y<10 ; y++){
				Campo_2[x][y] = 0;
			}
		}
		main();
	}
	if( a == 2){
		main();
	}
	if( a == 3){
		system("exit");
	}
system("exit");
}
// 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! ");
			Sleep(2000);
			system("cls");
			mostra_campo_minado();
		}else if(Campo_1[x][y] > 0 && Campo_1[x][y] < 5){
			Campo_2[x][y] = 1;
			system("cls");
			main();
		}else if(Campo_1[x][y] == 0){
			printf("\n\n    BOOOM !!!");
			system("cls");
			break;
		}
	}while(1);
	printf("\n\n");
	printf("    I-I-I-I-I-I-I-I-I\n");
	printf("    III           III\n");
	printf("    I    BOOM !!!   I\n");
	printf("    I    BOOM !!!   I\n");
	printf("    I    BOOM !!!   I\n");
	printf("    I    BOOM !!!   I\n");
	printf("    III           III\n");
	printf("    I-I-I-I-I-I-I-I-I\n");
	Sleep(2000);
}
// Imprime Campo minado na tela...
int mostra_campo_minado(){
	system("cls");
	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);
			}
		}
		Sleep(20);
		printf("\n");
	}
}
// Gera Valores aleatórios para o campo minado...
int para=0;
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++;
}

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×