sexta-feira, 18 de junho de 2010

PDCurses: Uma biblioteca em C para trabalhar com o console

Bom dia programadores C/C++.

Hoje vou escrever um artigo sobre uma biblioteca que dá de 1000 na famosa (ou infame) biblioteca conio. É a PDCurses, que vem de Public Domain Curses.




PDCurses é uma biblioteca de programação que está no domínio público - public domain - ou seja, ela não tem dono e é grátis pra fazer o que você bem entender. Foi desenvolvida usando a linguagem C e serve para programar nos ambientes DOS, Windows, X11 e SDL.

PDCurses substitui 100% da biblioteca conio, que é muito antiga e depende de funções da BIOS do antigo DOS, ou seja, programas escritos encima de conio não são portáveis e eu recomendo ir até a pasta onde você instalou essa biblioteca e pressionar SHIFT+DEL, e em seguida clicar em OK (para excluí-la definitivamente do seu HD). Além de dar de 1000 a 0 na conio, PDCurses adiciona MUITAS outras funções tão úteis que você vai se apaixonar por ela!

Em suma, esqueça que conio existe (porque 99,9% dos programadores já esqueceram que ela existe), e use PDCurses.

O objetivo dessa biblioteca é fornecer funções para permitir a manipulação de cores e caracteres no console do sistema. Pra quem não entendeu, o console do sistema seria o Prompt de Comando ou Linha de Comando no Windows. Você pode fazer desde simples programas Hello World até aplicações usando janelas ou jogos, tudo rodando numa janelinha de console do sistema.

Entre outras coisas, PDCurses implementa rotinas eficientes e adequadas para você poder desenvolver aplicações ou jogos usando janelas, cores, entrada de dados pelo teclado, obtenção de dados da janela do console, etc.

Enquanto o desenvolvimento da biblioteca Curses original encerrou em meados dos anos 90, o desenvolvimento das versões derivadas NCurses e PDCurses continuou. PDCurses implementa a maioria das funções disponíveis na biblioteca Curses original para X/Open e System V R4. O desenvolvimento iniciou-se em 1987 para suportar o editor THE. A biblioteca suporta diversos compiladores para essas plataformas. A versão para X11 permite recompilar programas Curses em modo texto para produzir aplicações nativas do sistema X11.


Bom, agora chega de papo-furado e vamos aos links para download!


Clique no link abaixo para fazer o download do DevPak (pacote do Dev-C++):
http://prdownloads.sourceforge.net/devpaks/pdcurses-3.2-1mol.DevPak

Clique no link abaixo para fazer o download (se tiver problemas com o DevPak):
https://sourceforge.net/projects/pdcurses/files/pdcurses/2.5/pdc25_vc_w32.zip/download

Clique no link abaixo para fazer o download da documentação completa:
http://pdcurses.sourceforge.net/doc/PDCurses.zip

Clique no link abaixo para visitar o site oficial da biblioteca:
http://pdcurses.sourceforge.net/index.html


Como instalar?

Depois de baixar o DevPak, abra o Dev-C++ e vá até Ferramentas > Package Manager. Clique no botão Install e então procure pelo arquivo do DevPak no seu HD, no local onde você o salvou. Assim, o Dev-C++ automaticamente instala a biblioteca PDCurses pra você. Agora só falta configurá-la para uso.

Como configurar?

Na verdade, a configuração é automática depois da instalação do DevPak no Dev-C++. Sempre que você quizer desenvolver usando PDCurses no seu programa, basta clicar em Arquivo > Novo > Projeto, depois você clica na aba "Other" e lá vai estar um ícone igual à imagem que você viu aqui no começo dessa postagem, e embaixo do ícone diz "Curses Application". Daí é só você selecionar o ícone, dar um nome para o seu projeto, selecionar a linguagem (C ou C++) e dar um OK. Inclusive, vai abrir um programa de exemplo no editor, pra você já ir se acostumando :P

Se por acaso você for em Arquivo > Novo > Projeto, clicar na aba "Other", e o ícone da PDCurses não estiver lá, então isso significa que você não instalou o DevPak corretamente. Se for o caso, tente instalar novamente. Ou se tudo isso falhar, me envie um e-mail, que eu resolvo.

E se eu não uso o Dev-C++, como eu faço?

Bom, se você não usa o Dev-C++, então primeiro faça o download do Dev-C++ e passe a usá-lo, porque no Windows ele é a única IDE que presta :P

Mas eu não uso Windows!!!

Nesse caso, você pode esquecer o DevPak e baixar a versão zipada da biblioteca, com os DLLs, cabeçalhos, etc. Mas eu infelizmente não vou poder te ajudar com a instalação e configuração, porque eu não sei instalar nem configurar essa biblioteca sem o DevPak :P Desculpe :'(

Ah, e se você não usa Windows, eu aconselho a pegar a biblioteca NCurses, e não PDCurses.
O link do site oficial de NCurses é esse: http://www.gnu.org/software/ncurses/ncurses.html

Pra terminar este artigo, se você quer ver um exemplo do tipo de aplicação que você pode desenvolver usando esta biblioteca, confira o meu programa Map Editor, que faz uso intenso das rotinas da PDCurses! E se quizer o código-fonte para ver um detalhado exemplo do uso da biblioteca, é só pedir (deixe comentário ou me envie um e-mail).


Clique abaixo para conferir Map Editor escrito, em PDCurses:



Enfim, espero que consigam instalar e configurar PDCurses. E esqueça conio, ok?
Qualquer dúvida, manda pra mim.