Ir ao conteúdo
  • Cadastre-se

jogo labirinto


Unnamed10

Posts recomendados

trabalho de faculdade

Desenvolva um código que desenha um labirinto na tela através de um arquivo externo (mapa). Para isso, a primeira linha do arquivo externo deve informar o tamanho do mapa em linhas e colunas. Em seguida, o código deve ler cada linha do arquivo e armazená-la. Desenhe na tela o mapa armazenado. Adicione em uma posição do mapa um “ser” que vai explorar seu mapa. Para explorar o mapa pesquise sobre como representar e usar as teclas direcionais para movimentar o “ser” (use as teclas A, D, S e W para os movimentos, além das direcionais). Não permita que nenhuma outra tecla movimente ou influencie no seu código. Padronize os caracteres que vai usar no mapa.

 

sou novo no forum, e quero apenas dicas, como comecar, o que usar, assim vou montando meu codigo e posto aqui... obrigado desde já

Link para o comentário
Compartilhar em outros sites

Dica: Estrutura do arquivo pode ser tipo CSV, onde cada dado é separado por vígulas. O mapa pode ser representado por qualquer caractere dentro do arquivo usando espaçamento alternado. Um exemplo de arquivo seria:

10, 10,oqoooooooo,oqooqooqqo,oqqqqqqqoo,oooooqoooo,oqqqoqoooo,oqoooqqqqo,oqqqqqooqo,oooooqqqoo,ooqqqqoqoo,oooooooqoo

Ou poderia usar um arquivo com dados de cordenadas, mais complexo, por sinal:

10, 10,1, 0, 1, 1, 5, 1, 1, 2, 2, 2, 3, 2, 4, 2,5, 2, 6, 2, 7, 2, 8, 2, 8, 3, 2, 4, 8, 4,2, 5, 3, 5, 4, 5, 5, 5, 6, 5, 7, 5, 8, 5,3, 6, 8, 6, 3, 7, 5, 7, 6, 7, 7, 7, 8, 7,1, 8, 2, 8, 3, 8, 5, 8, 5, 9

Onde o primeiro par representa a área do mapa e cada par de números seguintes representa uma coordenada do mapa onde caminhar é perimitido (o oposto seria possível também). Esse método é melhor quando se exige criptografação dos dados. Mas ele pode ser mantido nessa estrutura para permitir moodificações no mapa.

 

O próximo passo seria construir uma função que permite calcular colisões. Isso é simples comparando a posição do jogador com as coordenadas indicadas no mapa usando um simples comando de 'se':

int colisao(int map_x, int map_y, int posJogador_x, posJogador_y){    if(map_x == posJogador_x && map_y == posJogador_y) return 1; //Colidiu    else return 0; //Não colidiu}

Claro, haverá a necessidade de implementação, onde será necessário comparar a posição do jogador de duas formas possíveis:

1) Simples: comparar com todas as coordenadas do mapa (gasta mais processo e deixa o aplicativo mais lento, inviável em mapa muito grande);

2) Algorítmica: comparar a posição do jogador com as posições mais próximas do jogador, separando assim uma área específica do mapa como um todo;

 

Dúvidas na implementação dê um toque.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...