Ir ao conteúdo
  • Cadastre-se

C adicionar 5 moedas ao mapa, e um contador, ao pegar todas as moedas o jogo aca


Eduardo46

Posts recomendados

#include <stdio.h>
#include <stdlib.h>

// função tem TIPO DE RETORNO, NOME, PARAMETROS, CORPO
// void: tipo sem retorno
// gerarMapa: nome
// mapa, x, y: parametros separados por virgula

void gerarMapa(char mapa[10][10], int x, int y);
void imprimirMapa(char mapa[10][10]);
void comandarHeroi(char mapa[10][10], int *x, int *y);
void limparTela();

main() {
	// variavel do mapa (matriz de caracteres)
	char mapa[10][10];
	
	// posicao do heroi
	int horizontal = 4;
	int vertical = 0;
	
	int moedas = 0;
	
	gerarMapa(mapa, horizontal, vertical);
	
	while(true) {
		imprimirMapa(mapa);
		comandarHeroi(mapa, &horizontal, &vertical);
		limparTela();
	}
}

// preenche o mapa com traços
void gerarMapa(char mapa[10][10], int x, int y) {
	for(int i = 0; i < 10; i++) {
		for(int j = 0; j < 10; j++) {
			mapa[i][j] = '-';
		}
	}
	// insere o heroi no mapa	
	mapa[x][y] = 'J';
}

// imprime o mapa
void imprimirMapa(char mapa[10][10]) {
	for(int i = 0; i < 10; i++) {
		for(int j = 0; j < 10; j++) {
			printf("%c", mapa[i][j]);
		}
		printf("\n");
	}
}

void comandarHeroi(char mapa[10][10], int *x, int *y) {
	// insere o comando de andar do heroi (W A S D)
	char comando;
	scanf("%c", &comando);
	
	// remove a posicao do heroi
	mapa[*x][*y] = '-';
	
	// move o heroi
	if(comando == 'w' && *x > 0) {
		*x = *x - 1;
	} else if(comando == 's' && *x < 9) {
		*x = *x + 1;
	} else if(comando == 'a' && *y > 0) {
		*y = *y - 1;
	} else if(comando == 'd' && *y < 9) {
		*y = *y + 1;
	} else if(comando == 'q') {
		exit(0);
	}
	
	// atualiza a posicao do heroi
	mapa[*x][*y] = 'J';
}

// limpa a tela (deleta o mapa anterior)
void limparTela() {
	system("cls");
}

adicionar 5 moedas ao mapa, e um contador, ao pegar todas as moedas o jogo aca

Link para o comentário
Compartilhar em outros sites

#include <stdio.h>
#include <stdlib.h>

// função tem TIPO DE RETORNO, NOME, PARAMETROS, CORPO
// void: tipo sem retorno
// gerarMapa: nome
// mapa, x, y: parametros separados por virgula
int cont =12;
void gerarMapa(char mapa[10][10], int x, int y);
void imprimirMapa(char mapa[10][10]);
void comandarHeroi(char mapa[10][10], int *x, int *y);
void limparTela();
void congratulations();

main() {
	// variavel do mapa (matriz de caracteres)
	char mapa[10][10];
	
	// posicao do heroi
	int horizontal = 4;
	int vertical = 0;
	
	int moedas = 0;
	
	gerarMapa(mapa, horizontal, vertical);
	
	while(true) {
		imprimirMapa(mapa);
		comandarHeroi(mapa, &horizontal, &vertical);
		limparTela();
	}
}

// preenche o mapa com traços
void gerarMapa(char mapa[10][10], int x, int y) {
	for(int i = 0; i < 10; i++) {
		for(int j = 0; j < 10; j++) {
			mapa[i][j] = '-';
		}
	}
	// insere o heroi no mapa	
	mapa[x][y] = 'J';

		//insere as moedas
	mapa[0][0] = 'O';
	mapa[1][1] = 'O';
	mapa[2][2] = 'O';
	mapa[3][3] = 'O';
	mapa[4][4] = 'O';
	mapa[5][5] = 'O';
}

	
	

// imprime o mapa
void imprimirMapa(char mapa[10][10]) {
	
	for(int i = 0; i < 10; i++) {
		for(int j = 0; j < 10; j++) {
			printf("%c", mapa[i][j]);
		}
		printf("\n");
	}
	if(mapa[0][0] == 'J')cont--;
	if(mapa[1][1] == 'J')cont--;
	if(mapa[2][2] == 'J')cont--;
	if(mapa[3][3] == 'J')cont--;
	if(mapa[4][4] == 'J')cont--;
	if(mapa[5][5] == 'J')cont--;
	if(cont==0)congratulations();
	

}

void comandarHeroi(char mapa[10][10], int *x, int *y) {
	// insere o comando de andar do heroi (W A S D)
	char comando;
	scanf("%c", &comando);
	
	// remove a posicao do heroi
	mapa[*x][*y] = '-';
	
	// move o heroi
	if(comando == 'w' && *x > 0) {
		*x = *x - 1;
	} else if(comando == 's' && *x < 9) {
		*x = *x + 1;
	} else if(comando == 'a' && *y > 0) {
		*y = *y - 1;
	} else if(comando == 'd' && *y < 9) {
		*y = *y + 1;
	} else if(comando == 'q') {
		exit(0);
	}
	
	// atualiza a posicao do heroi
	mapa[*x][*y] = 'J';
}

// limpa a tela (deleta o mapa anterior)
void limparTela() {
	system("cls");
}

void congratulations(){
		system("cls");
		printf("parabens venceu");
}

 

Link para o comentário
Compartilhar em outros sites

@herbertbahia  muito obrigado, nunca fui bom com computação, mas infelizmente meu curso exige, me salvou cara!

2 horas atrás, herbertbahia disse:

#include <stdio.h>
#include <stdlib.h>

// função tem TIPO DE RETORNO, NOME, PARAMETROS, CORPO
// void: tipo sem retorno
// gerarMapa: nome
// mapa, x, y: parametros separados por virgula
int cont =12;
void gerarMapa(char mapa[10][10], int x, int y);
void imprimirMapa(char mapa[10][10]);
void comandarHeroi(char mapa[10][10], int *x, int *y);
void limparTela();
void congratulations();

main() {
	// variavel do mapa (matriz de caracteres)
	char mapa[10][10];
	
	// posicao do heroi
	int horizontal = 4;
	int vertical = 0;
	
	int moedas = 0;
	
	gerarMapa(mapa, horizontal, vertical);
	
	while(true) {
		imprimirMapa(mapa);
		comandarHeroi(mapa, &horizontal, &vertical);
		limparTela();
	}
}

// preenche o mapa com traços
void gerarMapa(char mapa[10][10], int x, int y) {
	for(int i = 0; i < 10; i++) {
		for(int j = 0; j < 10; j++) {
			mapa[i][j] = '-';
		}
	}
	// insere o heroi no mapa	
	mapa[x][y] = 'J';

		//insere as moedas
	mapa[0][0] = 'O';
	mapa[1][1] = 'O';
	mapa[2][2] = 'O';
	mapa[3][3] = 'O';
	mapa[4][4] = 'O';
	mapa[5][5] = 'O';
}

	
	

// imprime o mapa
void imprimirMapa(char mapa[10][10]) {
	
	for(int i = 0; i < 10; i++) {
		for(int j = 0; j < 10; j++) {
			printf("%c", mapa[i][j]);
		}
		printf("\n");
	}
	if(mapa[0][0] == 'J')cont--;
	if(mapa[1][1] == 'J')cont--;
	if(mapa[2][2] == 'J')cont--;
	if(mapa[3][3] == 'J')cont--;
	if(mapa[4][4] == 'J')cont--;
	if(mapa[5][5] == 'J')cont--;
	if(cont==0)congratulations();
	

}

void comandarHeroi(char mapa[10][10], int *x, int *y) {
	// insere o comando de andar do heroi (W A S D)
	char comando;
	scanf("%c", &comando);
	
	// remove a posicao do heroi
	mapa[*x][*y] = '-';
	
	// move o heroi
	if(comando == 'w' && *x > 0) {
		*x = *x - 1;
	} else if(comando == 's' && *x < 9) {
		*x = *x + 1;
	} else if(comando == 'a' && *y > 0) {
		*y = *y - 1;
	} else if(comando == 'd' && *y < 9) {
		*y = *y + 1;
	} else if(comando == 'q') {
		exit(0);
	}
	
	// atualiza a posicao do heroi
	mapa[*x][*y] = 'J';
}

// limpa a tela (deleta o mapa anterior)
void limparTela() {
	system("cls");
}

void congratulations(){
		system("cls");
		printf("parabens venceu");
}

 

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!