random

xLance em Python

xLance em Python

Considerando a dificuldade de instalar Gtk2Perl em Windows (não que eu use Windows, mas quero fazer softwares que sejam úteis para mais pessoas, mesmo que os softwares sejam simples e mínimos como os que faço, além do mais pode ser necessário fazer GUI para Windows onde trabalho...); e também a falta de uma distribuição com uma licença minimamente adequada do Perl para Windows (até hoje só encontrei o ActivePerl), comecei a estudar Python com interface tkinter (baseada no Tk).

O Python oferece instalador para Windows, que já vem com suporte a Tkinter. Ou seja, se eu faço um software em Python/Tkinter, é fácil rodá-lo lá também. Apesar do visual tosco que esses softwares adquirem, o que me importa hoje é a portabilidade (e ser uma boa linguagem de script também, nem me venham querendo empurrar Java...).

O primeiro teste com estas tecnologias foi a tentativa de refazer o simulador de lance de dados xlance, que faz tempo que fiz em Perl+Gtk (e recentemente atualizei para usar Gtk2). Vejam na imagem como ficou.

Ainda está incompleto: não sorteia nada, só números, nem lida com arquivo de configuração ainda. Mas é um começo e mostrou que a idéia de mudar pra Python/Tkinter pode mesmo ser uma boa.

Baixe o Python se quiser testar o xlance 0.11. Desta vez ainda está em apenas um arquivo de pouco mais de 100 linhas. Numa próxima versão mais completa, eu refaço pacote e coisa e tal...

xLance em Perl

xLance original

Já que o programa continua o mesmo em funcionalidades, segue aqui uma cópia do manual antigo:


X-Lancelot é um simulador de lances de dados, gerador de nomes e sorteador de algumas coisas.

Ele atualmente: gera nomes, simula qualquer lance de dados (qualquer número de dados, de qualquer tamanho) e é capaz de sortear um dia da semana, dia do mês, mês do ano, naipe de baralho ou carta.

O algoritmo para gerar nomes é uma modificação do Alnome, em Borland Delphi para MicroSoft Windows, do mesmo autor. Ele permite que se determine um número (fator "tamanho", mas não muito controlável). Os nomes gerados por este algoritmo, se for utilizado um "tamanho" grande, tendem a se tornar "grandes" (óbvio, não?) e também difíceis de se pronunciar. Pelo menos, exceto por algum bug (o W costuma fazer isso raras vezes), ele gera nomes ao menos "pronunciáveis".

Um arquivo .xlance na raíz do seu diretório $HOME será criado. Nele você poderá habilitar algumas coisas e configurar seu X-Lancelot, de um modo geral. A seguir será detalhado como personalizar o software, o que pode ser colocado dentro deste arquivo.

TITULO=Nome que apareerá na barra de título do programa
      FRASE=Mensagem que aparece entre os dois botões grandes
      ESTILO=VERBOSO
      DADO=2D25
      DADO=DIADASEMANA

Primeiramente, todas as quatro variáveis são opcionais e, se você já rodou o programa uma vez e não mexeu no arquivo, há de encontrá-lo vazio. Em TITULO e FRASE, qualquer valor pode ser colocado. Já se você quiser usar ESTILO, o sistema entenderá se é VERBOSO (ou TAGARELA) ou não. DADO é o único que permitirá que você coloque mais de um (todos os outros também permitem isso, na verdade, mas tratam apenas a última das atribuições). DADO representa um botão/dado e você pode substituir até todos os 12 que aparecem no canto direito da janela. Quanto aos valores, eles podem ser:

DadoO que é?
GERANOMEGera um nome de "tamanho" mais ou menos aleatório.
GERANOME-xGera um nome de "tamanho" x. Exemplo de uso: DADO=GERANOME-3.
NAIPESorteia um Naipe. Retorna um de: copas, ouros, paus e espadas.
CARTARetorna A, 2..10, J, Q ou K.
DIADASEMANARetorna um dia da semana entre domingo e sábado.
MESDOANORetorna um dos doze meses, sorteado.
DIADOMESEquivalente a um 1D31. Sorteia um número do intervalo [1..31]

Por ser em Gtk2Perl, o xlance precisa tanto do interpretador Perl como da interface Gtk2Perl para funcionar corretamente.

Subscribe to RSS - random

Warning: PHP Startup: Unable to load dynamic library '/opt/php56/lib/php/extensions/no-debug-non-zts-20131226/pdo.so' - /opt/php56/lib/php/extensions/no-debug-non-zts-20131226/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/opt/php56/lib/php/extensions/no-debug-non-zts-20131226/pdo_mysql.so' - /opt/php56/lib/php/extensions/no-debug-non-zts-20131226/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/opt/php56/lib/php/extensions/no-debug-non-zts-20131226/php_pdo_odbc.dll' - /opt/php56/lib/php/extensions/no-debug-non-zts-20131226/php_pdo_odbc.dll: cannot open shared object file: No such file or directory in Unknown on line 0