Exemplo de um "Jogo de Labirinto"
Publicado por Hunz 29/11/2004
[ Hits: 61.403 ]
Homepage: http://tnegri.com/
Meu primeiro jogo em C, foi um jogo de labirinto, com os graficos mais ou menos assim, porém usando a conio.h do Windows, e para se movimentar não precisava do uso do ENTER.
Não tenho o código antigo, mas eu fiz esse pequeno exemplo, em uns 15 minutos, usando o mesmo sistem que usei no jogo antigo.
Fiz um mapa bem pequeno, mas da pra sacar a idéia, né?
Espero que seja de alguma ajuda.
Abraços,
Fiquem com Deus.
/* Desenvolvido por: Thiago Negri ( hunz ) */ /* Email: tn_negri@hotmail.com */ #include <stdio.h> #include <stdlib.h> /* Definicoes, para facilitar o uso da funcao para desenhar o mapa */ #define CHAO 0 #define PAREDE 1 #define VOCE 2 #define GRAMA 3 #define OUTRA_COISA 4 /* Definicoes que eu uso em quase todos os meus codigos :) */ #define OK 1 #define ERRO 2 /* Usuarios de Windows, troquem "clear" por "cls" */ #define LIMPARTELA "clear" int coluna_atual = 2, linha_atual = 2; /* O Mapa */ int mapa[10][10] = { 1,1,1,1,1,1,1,1,1,1, 1,0,0,0,0,0,0,1,0,1, 1,0,0,0,0,1,1,1,0,1, 1,0,0,0,0,3,0,0,0,1, 1,0,0,1,3,3,3,0,0,1, 1,0,0,0,0,1,0,0,0,1, 1,0,0,0,0,0,0,0,0,1, 1,1,1,4,4,4,4,1,0,1, 1,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1 }; /* Funcao para desenhar o Mapa */ int desenhar_mapa() { int linha,coluna; for (linha=0;linha<10;linha++) { for (coluna=0;coluna<10;coluna++) { if ((linha == linha_atual) && (coluna == coluna_atual)) { printf("@"); continue; } if (mapa[linha][coluna] == CHAO) printf(" "); if (mapa[linha][coluna] == PAREDE) printf("*"); if (mapa[linha][coluna] == GRAMA) printf("."); if (mapa[linha][coluna] == OUTRA_COISA) printf("+"); } printf("\n"); } return OK; } int main() { char movimento; while ((movimento != 'x') && (movimento != 'X')) { system(LIMPARTELA); desenhar_mapa(); printf("\n\n (N)\n(W)+(E)\n (S)\n\n"); /* Imprime as direcoes */ if ((scanf("%c",&movimento))==0) { printf("mensagem de erro..\n"); getchar(); getchar(); return ERRO; } if ((movimento == 'n') || (movimento == 'N')) { linha_atual = linha_atual - 1; /* Se não for chao ou grama ele volta pra posicao anterior */ if ((mapa[linha_atual][coluna_atual] != CHAO) && (mapa[linha_atual][coluna_atual] != GRAMA)) { linha_atual = linha_atual + 1; printf("\n\nups.. ali não =)\n"); getchar(); getchar(); } } if ((movimento == 's') || (movimento == 'S')) { linha_atual = linha_atual + 1; /* Se não for chao ou grama ele volta pra posicao anterior */ if ((mapa[linha_atual][coluna_atual] != CHAO) && (mapa[linha_atual][coluna_atual] != GRAMA)) { linha_atual = linha_atual - 1; printf("\n\nups.. ali não =)\n"); getchar(); getchar(); } } if ((movimento == 'e') || (movimento == 'E')) { coluna_atual = coluna_atual + 1; /* Se não for chao ou grama ele volta pra posicao anterior */ if ((mapa[linha_atual][coluna_atual] != CHAO) && (mapa[linha_atual][coluna_atual] != GRAMA)) { coluna_atual = coluna_atual - 1; printf("\n\nups.. ali não =)\n"); getchar(); getchar(); } } if ((movimento == 'w') || (movimento == 'W')) { coluna_atual = coluna_atual - 1; /* Se não for chao ou grama ele volta pra posicao anterior */ if ((mapa[linha_atual][coluna_atual] != CHAO) && (mapa[linha_atual][coluna_atual] != GRAMA)) { coluna_atual = coluna_atual + 1; printf("\n\nups.. ali não =)\n"); getchar(); getchar(); } } } }
Uma pequena "CALCULADORA" (apenas SOMA).
O que são e como utilizar structs
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
pacotes 32 bit no void 64 bit (1)
erro ao clonar repo github (7)
ASRock H310CM-HG4 vs Linux (1)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (26)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba