Há algum tempo que eu estou querendo aprender a linguagem Ruby. Segundo dizem as artes do aprendizado, deve-se sempre partir de algo conhecido para algo não conhecido que queira-se aprender. Então resolvi começar com jRuby, implementação do Ruby em Java, que roda na JVM. Usando Swing, a SDK padrão do Java para interfaces gráficas.
Criei esse joguinho da velha (jrVeia) bem simples, que na verdade eu nem terminei ainda. Na verdade não mexi mais nele depois que eu comecei. Falta apenas a verificação do tabuleiro. Pretendo também, se der, implementar uma camada de rede, para poder jogar via direct ip (igual eu fiz com o VeiaOnline).
Mais detalhes: jrVeia.
Como já disse, comecei com esse joguinho só pra me familiarizar com a sintaxe do Ruby, uma vez que já conheço um pouco de Swing. Na verdade nem sei qual é a real aplicabilidade de linguagens interpretadas a jogos. Vou estudar mais isso, mesmo porque pretendo participar do Indie Bay Competition com Ruby e Gosu. Pode deixar que logo logo eu compartilho aqui o que eu aprendi.
Só para ilustrar o tópico, vou mostrar um código bem simples pra criar uma janela com jRuby e Swing:
# Diz que vamos usar as classes do Java
require 'java'
#
# Podemos usar puro Ruby na JVM, ou interagir completamente com classes em Java! \o/
#
# A classe principal, que herda da classe JFrame, exatamente como fazemos no Java...
class Window < javax.swing.JFrame
# Nosso construtor
def initialize
# Super Man - Nenhuma novidade aqui ^^
super("Hello World")
# Aqui muda, você pode chamar os métodos com o mesmo nome em java
# setSize, ou então chamar pelo padrão Ruby, set_size, que ele
# irá executar o método do mesmo jeito!
set_size(300, 300)
set_visible(true)
set_default_close_operation(javax.swing.JFrame::EXIT_ON_CLOSE)
# Vamos adicionar um textinho na janela
add(javax.swing.JLabel.new("Hello World - by CrociDB"))
end
end
# Aqui está o nosso "método main"
janela = Window.new
Só para vocês terem uma idéia da facilidade. Não esqueçam de dar uma olhadinha no código do jrVeia. E aguardem, logo sai um post açucarado sobre Gosu e Ruby. Até lá.

Contato