PyGod: Como sacanear seus amigos com Python!

Este blog deixou de ser mantido, mas o autor continua escrevendo aqui. Não deixe de assinar o novo feed!

Hmmm... isso aí é uma bichooooona!Pouco tempo depois de ganhar meu primeiro computador, um super 486 DX2 com 16MB de RAM, eu já tinha uma coleção razoável de disquetes onde eu armazenava tudo que era porcaria que eu encontrasse por aí, como fotos (é, esse tipo de foto mesmo), jogos e programas.

Toda coleção de disquetes digna de respeito compartilhava pelo menos uma característica em comum: dúzias dos já infames programas inutilitários. E a lista era longa, indo desde aqueles programas que mostram a ovelha Dolly andando pela tela até aqueles que fingem formatar o HD. (que atire a primeira pedra quem nunca enviou um desses para os “amigos”!)

Mas enfim, os meus inutilitários favoritos eram aqueles programas “inteligentes”, que pareciam ter a resposta para qualquer pergunta. Já perdi a conta de quantas vezes eu ouvi a frase “mas cadê a câmera?” ao mostrar esses programas para amigos e familiares! Ah, bons tempos aqueles… :)

Foi tomado por esse espírito de nostalgia que eu tive a idéia de tentar implementar um programa parecido em Python. O resultado dessa brincadeira, que chamei de PyGod por razões óbvias, pode ser conferido neste post!

O programa

A mecânica por trás desse tipo de programa é super simples. Cada tecla pressionada pelo usuário pode fazer com que o programa alterne entre dois “modos”:o modo de resposta e o modo de eco. No primeiro modo, o programa imprime uma pergunta aleatória na tela enquanto lê a resposta; já o segundo modo simplesmente ecoa as teclas pressionadas pelo usuário.

Os exemplos a seguir devem ajudá-lo a compreender melhor o que acontece.

1. Modo de resposta

A tela abaixo mostra como o programa reage a um usuário que conhece o truque.

Modo de resposta

Primeiramente, eu pressionei a tecla ; para entrar no modo de resposta. Em seguida, digitei a resposta (Daniel) para a pergunta desejada. Note que, conforme a resposta é digitada, o programa imprime uma pergunta pré-definida de modo que todos pensem que é você quem está digitando aquilo! Então, depois de digitada a resposta, eu pressionei a tecla ; novamente para voltar para o modo de eco (ver abaixo) e completei a pergunta.

2. Modo de eco

Já a tela abaixo mostra como o programa reage a um usuário que não conhece o truque.

Modo de eco

Como a resposta não foi digitada, o programa mostra uma mensagem qualquer.

Implementação

Grande parte do programa se resume a código para manipular o terminal através do módulo curses. A aplicação foi desenvolvida em Python 2.5.2 e testada no Ubuntu 8.04 LTS.

O código do programa está disponível para download na página de aplicações aqui do blog.

* PS: digite wtf e pressione ENTER para ver uma mensagem de ajuda!

Tags: , , , , , , , ,