segunda-feira, 2 de fevereiro de 2015

Jogo interativo em C (trabalho final de Algoritmos e Programação)


Semestre passado, na cadeira de algoritmos e programação (INF01202), disciplina na qual se aprende o básico sobre programar na linguagem C, desenvolvemos como trabalho final um jogo, baseado no clássico  Mr. Do!. Você pode jogar o original no Lets Play SNES - Mr  Do!.

O objetivo era implementar a maior quantidade de recursos possíveis, utilizando uma matriz de caracteres para representar os componentes do jogo e manipulando esses caracteres. Por exemplo, o personagem poderia ser a letra M. Ao detectar que a tecla "w" foi pressionada, a letra M era movida uma linha para cima. O jogo detecta colisões com fantasmas e com frutas. Como aprendemos manipulação de arquivos, as pontuações mais altas são salvas, e os níveis são carregados de um arquivo txt.


O código está meio desorganizado, mas dá para ter uma ideia de como é relativamente fácil programar um jogo simples, que parece "vivo". É muito legal ver os fantasmas correndo pela tela, tudo em tempo real.

A inteligência dos fantasmas está completamente aleatória, mas alguns colegas chegaram a implementar métodos mais inteligentes, na qual os fantasmas seguem o jogador, estilo Pac-Man.


O jogo foi feito para Windows, pois utiliza de alguns métodos disponíveis somente neste ambiente.

O código completo do jogo está disponível no Github, você pode baixá-lo e editá-lo a vontade: Mr_do Github. É necessário ter o arquivo fase1.txt na mesma pasta do executável.

Atualização:
Sobre a inteligência dos fantasmas, recomendo o vídeo  How Pac-Man’s Ghosts Think & Hunt. Ele explica sobre a complexidade e personalidade de cada um dos fantasmas do Pac-Man. Cada um possui um algoritmo diferente para perseguir o jogador. É muito interessante! Implementar esses algoritmos não é nada fácil, alguns colegas gastaram mais de 500 linhas para versões simplificadas.