Programas

Abaixo estou colocando à disposição alguns programas feitos por mim e que podem ser úteis para alguma outra pessoa. Absolutamente todos os programas colocados aqui estão sob a licença GNU GPL 3 e foram feitos para serem rodados em sistemas GNU/Linux.

Educativos

invasao

Este programa foi feito à partir do início de meu projeto de criar um clone do famoso jogo em Flash intitulado "Desktop Tower Defense". Ele é um programa bastante simples. Tudo o que ele mostra é uma cidade protegida por uma muralha e cercada por uma floresta.

Uma vez a cada 30 segundos, uma legião de monstros sai da floresta para invadir a cidade. Você pode atrasar os monstros ou bloquear os seus movimentos construindo e destruindo muralhas. Para construir uma muralha, basta clicar no espaço retangular no centro da tela. Para destruir, basta clicar em uma muralha já construída.

Não existe nenhum objetivo neste programa. Ele serve apenas para você observar como os monstros são espertos por conseguirem sempre identificar o caminho mais curto até a cidade, por mais que você construa um elaborado labirinto no lugar. Ele é uma demonstração do uso do Algoritmo de Busca em Largura que é o que os monstros usam para achar o caminho.

Eis o código fonte: invasao.tar.bz2 (111 KB)

Jogos

Alien Pong

Este programa é uma implementação simples do jogo Pong feita para duas pessoas jogarem. As teclas de controle do primeiro jogador são as teclas SHIFT esquerdo e Ctrl esquerdo. O segundo jogador participa utilizando o Shift e Ctrl direito. A tecla Esc pode ser usada para sair do jogo à qualquer momento.

O placar de cada um dos jogadores pode ser visto na parte de cima da tela bem acima da barra que ele controla.

Para compilá-lo e instalá-lo, basta usar o comando make e make install . Você precisa ter as bibliotecas do X11, ALSA, libpng e libvorbis para conseguir compilar o jogo.

Eis o download para o código-fonte: alien_pong.tar.bz2 (9,6 MB)

Monbol

Eu estava aprendendo pygame e planejei fazer um jogo. A idéia era criar um RPG no qual você caçava, capturava e treinava pequenas criaturas que podiam ser usadas para lutar contra outras criaturas de outros jogadores. Pense em algo como Pokémon.

Acabei parando de mecher no código deste jogo devido ao meu interesse crescente em programar em C utilizando bibliotecas e APIs de mais baixo-nível para compreender melhor como as coisas funcionam e também para obter melhor desempenho em aplicações gráficas.

O que foi implementado no jogo foi uma tela de abertura, algumas musiquinhas, uma introdução e um mapa onde você pode se deslocar. Para que ele funcione, é preciso que Python e Pygame estejam instalados. Ele também não está funcionando bem em monitores wide-screen. Para rodá-lo, basta usar o comando python monbol.py

Eis o código-fonte: monbol.tar.bz2 (12 MB)

Spacewar

Este jogo é uma releitura do clássico Spacewar! criado para o DEC PDP-1 em 1961.

O jogo consiste em um pequeno espaço no qual duas naves espaciais atacam-se atirando uma na outra. No centro da tela existe uma estrela cuja gravidade atrai tanto as naves como o tiro que elas lançam. A nave que tocar na estrelas ou em um tiro inimigo explode.

O jogo pode ser jogado por uma ou duas pessoas. Se você jogar sozinho, irá enfrentar uma nave controlada pela inteligência artificial do jogo. Você precisa das bibliotecas de desenvolvimento do X11, ALSA e libvorbis. Para compilar, basta rodar make e make install.

Eis o download para o código-fonte: spacewar.tar.bz2 (67 KB)

Também tenho pacotes para Debian Lenny nas seguintes arquiteturas: i386 amd64

Utilitários

magic

Este programa foi criado para embaralhar cartas do jogo Magic: The Gathering. Embora na verdade possa ser usado para embaralhar qualquer baralho que contenha 60 cartas.

Primeiro posicione todas as cartas em cima de uma mesa criando 10 pilhas de 6 cartas cada uma. As pilhas devem ser posicionadas formando duas linhas e cinco colunas. Em seguida, rode o programa. Ele irá escolher uma carta aleatória (o algoritmo usado é o Mersenne Twister) e indicará em qual pilha ela está. Os números 1, 2 e 3 que podem aparecer sobre uma pilha servem para indicar respectivamente a primeira, segunda e terceira cartas. Já os números -1, -2 e -3 servem para indicar respectivamente a última, penúltima e antepenúltima carta da pilha.

Toda vez que uma carta for escolhida pelo programa, você terá ao todo 3 segndos para removê-la da pilha e colocar em uma nova pilha que formará seu baralho embaralhado. Depois deste tempo, uma nova carta é escolhida e indicada na tela.

Para instalar o programa, basta usar o comando make e, como root, make install.

Eis o código-fonte: magic.tar.bz2 (134 KB)

play

Este programa é um tocador de músicas no formato Ogg Vorbis. Ele decodifica arquivos neste formato convertendo o seu conteúdo para PCM usando a biblioteca vorbisfile. Em seguida, envia os bytes obtidos para a placa de som usando a biblioteca ALSA.

Este programa pode ser útil para pessoas interessadas em ter um programa tocador de músicas mais compacto e simples, sem o desperdício de recursos que vem com um programa com suporte à muitos formatos e muitas opções. Ou então pessoas que queiram um exemplo de código simples para aprender como criar um tocador de músicas.

Para usar o programa, basta invocá-lo pela linha de comando passando como argumento os arquivos com músicas ou sons a serem tocados. Para instalá-lo, basta usar os comandos make e make install (como root).

Eis o código-fonte: play.tar.gz (1,7 KB)

txt2tex

Uma das coisas que incomoda muitos ao usar TeX é a dificuldade ao utilizar caracteres acentuados. Às vezes, o trabalho de traduzir um arquivo txt para este formato torna-se algo grande demais. Para facilitar o trabalho e poupar tempo, fiz este pequeno programa que lê um arquivo passado como argumento e o imprime na saída padrão no formato TeX ajustando corretamente letras acentuadas e alguns outros caracteres especiais.

Para compilá-lo e instalá-lo, basta usar os comandos make e make install .

Eis o código-fonte: txt2tex.tar.gz (7,5 KB)

Weaver

Enqüanto desenvolvia os jogos mostrados acima, senti falta de um framework adeqüado para o desenvolvimento de jogos para Linux. Por isso, resolvi criar o meu próprio framework.

Weaver é um conjunto de bibliotecas para desenvolvimento de jogos + um script capaz de automatizar muitas tarefas de organização e de produção de jogos (como a criação de uma estrutura de diretórios, Makefiles).

Como este projeto é mais ambicioso que os demais, ele possui a sua própria página na Internet: Weaver.


XHTML 1.1 válido! CSS válido!