JavaFree.org | RubyOnBr.org

Jogo da velha no Ruby, deem uma olhada por favor.xD

Acompanhar Jogo da velha no Ruby, deem uma olhada por favor.xD 22 posts, 5 participantes

Hugolnxtechnoavatar32x3 HugoLnx 31 posts

Jogo da Velha em Ruby
Introdução: Esse é meu primeiro programa no ruby, e principalmente, é meu 1º programa numa linguagem orientada a objetos, se vcs puderem dar uma olhada no código fonte e me darem umas dicas, eu agradeço.
Descrição: É um projeto de jogo da velha q eu estou fazendo, pra ganhar prática no Ruby.xD
Num é nada de mais, mas espero q gostem.xD

Linguagem Utilizada: Ruby + Gtk
Versão: 1.0.0.0 Beta

Funções da versão 1.0.0.0

  • Player vs Player
  • Player vs CPU no nível Muito Fácil
  • Player vs CPU no nível Fácil
  • Player vs CPU no nível Médio
  • Multi-Idiomas[Inglês e Português]

Downloads:

Versão 1.0.0.0 – Executável
Descrição: É um executável com um mini interpretador do ruby que interpreta o código.
Tamanho: 5 Mb
Download

Versão 1.0.0.0 – Código Fonte
Descrição: É o código fonte do programa.xD
Tamanho: 24 Kb
Download

[TAGS]
HugoLnx / HugoLinux
Software
HL-Softwares
Jogo Velha
Tic tac toe
programa
ruby

 
Avatar Mereghost 1307 posts

Li as 10 primeiras linhas:

XOR já é implementando no ruby pelo ^. E também

A classe Human deveria ser Player, afinal CPU não é um tipo de humano.

Parei de ler aí.

 
Hugolnxtechnoavatar32x3 HugoLnx 31 posts

vlw kra, essa parada do xor, eu tinha procurado em td qnt é canto e num achei.xD
vlw mesmo, vo passar a fazer do modo Ruby agora. xD

 
Avatar Douglas (dorô) 138 posts

Coloca o código no github =)

 
Hugolnxtechnoavatar32x3 HugoLnx 31 posts

oq é github?
xD

 
Avatar nofxx 1256 posts

http://github.com

Cria uma contita, e use git! =D vai gostar.

Ah, tb confesso q nao li tudo… mas vamos de dicas em dicas, como faria o jack:

Tipo, nao use $globais…. soh.. don’t… heh.
Uma class Config e uma I18n fariam sucesso ae =D

 
Avatar nofxx 1256 posts

Ah, proposito.. documentacao o ruby tem uma certa formatacao, pq vira rdoc depois.

Os teus coments acho q vao deixar o rdoc doidinho…

 
Avatar nofxx 1256 posts

(Sem qrer mais ja cortando teu barado de ASCII ART ae ;)

 
Hugolnxtechnoavatar32x3 HugoLnx 31 posts

Overdose de Dicas.xDDDDDD
vlw aew pessoal, vo fazer uma versão nova, melhorando td isso q vcs tão falando, vlw pelas dicas, assim q eu terminar eu posto.

 
Avatar Douglas (dorô) 138 posts

Cara, esse artigo é bem interessante para quem está começando no git.

[]’s

 
Hugolnxtechnoavatar32x3 HugoLnx 31 posts

vlw aew pessoal, tao me ajudando pra kramba, melhorei o código fonte, e aprendi a mexer no GitHub, so num consegui aplicar essas dicas…

“Uma class Config e uma I18n fariam sucesso ae =D”

num entendi direito.xD Procurei oq era I18n, e vi q é algo que tem a ver com tradução, e tem a ver com o rails tb neh? Mas eu num consegui aplicar isso.xD

esse aki é o meu Projeto TicTacToe que eu botei o GitHub…
http://github.com/HugoLnx/Tic-Tac-Toe

mas se quiserem o link direto do código fonte…
http://github.com/HugoLnx/Tic-Tac-Toe/blob/master/Version%201.1.0.0/TicTacToe%20Source%20Code%20v1.1.0.0.rb

aki se quiserem, tem o link da documentação feita pelo RDoc…
http://www.4shared.com/file/134280616/301395af/TicTacToe_Documentation_v1100.html

 
Avatar Fernando Luizão 1353 posts

Cara, vc não tá usando git… vc tá controlando versão pelo nome de arquivo hehehe. As versões vc pode gerenciar usando tags, não precisa duplicar arquivos a cada versão. Aconselho ler um pouco mais sobre como trabalhar com git =).

 
Avatar Douglas (dorô) 138 posts

@hugolnx,

Não dispensa a leitura de um livro ou até mesmo de um bom tutorial. Mas recomendo esse screencast do Akita, ficou bom e didático. O video tem mais de uma hora de duração, mas vale a pena para entender o fluxo de trabalho do GIT.

[]’s

 
Avatar nofxx 1256 posts

Olá Hugo,

Tu nem precisa ver video nao, ja mando bem no github ;)
Só nao precisa por versao, o git guarda na tua maquina (e no server) cada commit que vc der =D

Uma classe config eu quis dize rpra evitar as globais. Por ex, vc criaria:

@conf = TicConfig.new(:opt => 1, :opt => true ……

Dae onde precisar, chama ela @config[:opt] .. Ou, pq nao, colocar um proproio metodo de classe na config, pra chamar assim:

Config.opt

Cara, nao tenho a minima ideia pq sugeri i18n… huahuea. acho q tva sem sono e viajei….

Ae, depois te dou uma mão pra gente transofrmar em GEM. Eh mto facil, usando o jeweler. Dae a galera pode instalar pra jogar assim:

gem install huglinux-TicTacToe

 
Avatar nofxx 1256 posts

Ah, lembrei agora… Por conta do finalizinho ae, tu vez varios metodos tipo:

def draw
draw(@idiom)

tal.

EH mto simples usar a I18n. : sudo gem install svenfuchs-i18n

require “i18n”

Coloque o path que vao ficar os “locales”:

I18n.load_path += Dir[File.join(File.dirname(FILE), ‘..’, ‘locales’, “*.{rb,yml}”)]

Escolha um locale:

I18n.default_locale = options[:i18n] || “pt_us”

O locale seria assim:

Vc chama assim:

I18n.t(:draw)
=> Voce empatou…

 
Hugolnxtechnoavatar32x3 HugoLnx 31 posts

vlw, ja ja vo ver isso aew. To meio atolado de deveres essa semana.xD

 
Avatar Fernando Luizão 1353 posts

Fiz um fork lá pra demonstrar o esquema das tags. Renomeei o arquivo para “source.rb” e apliquei as alterações nele, e criei tags para cada versão:

http://github.com/fernandoluizao/Tic-Tac-Toe/tree/0.9.0.0
http://github.com/fernandoluizao/Tic-Tac-Toe/tree/1.0.0.0
http://github.com/fernandoluizao/Tic-Tac-Toe/tree/1.1.0.0

É melhor trabalhar assim, porque dá pra acompanhar melhor as mudanças nos arquivos. Por exemplo, da versão 1.0.0.0 para a 1.1.0.0, essas foram as alterações.

Em relação ao código, uma coisa legal seria usar o pattern strategy , para cuidar do nível de dificuldade do jogo. O problema é que o código está misturando a lógica do jogo com a interface… tem que dar uma refatorada boa antes =).

 
Hugolnxtechnoavatar32x3 HugoLnx 31 posts

vi so o comecinho do vídeo, pra pegar o básico, pra num perder mt tempo aprendendo td sobre GitHub.xD
fiz lah o que vcs tavam falando, chequem pra mim se ta certo por favor. ^^
http://github.com/HugoLnx/Tic-Tac-Toe

 
Hugolnxtechnoavatar32x3 HugoLnx 31 posts

fiz a versão 1.2.0.0, onde eu criei duas classes, a Windows, que guarda todas as windows, e a classe Global, que guarda todas as variáveis que seriam globais.
Já atualizei o GitHub tb;

quanto ao i18n, ainda to tentando aki, ta dando um erro qnd eu uso o i18n(:draw).t.
Tipo…
Eu criei um arquivo chamado pt_en.rb, la escrevi…

igual foi mostrado.

ta dizendo q os : não são esperados. =P
e eu num consegui instalar a gem q vc falou, a tal da svenfuchs-i18n, num tava encontrando, então eu instalei a gem I18n.xD

vlw aew pela ajuda pessoal, to aprendendo pra kramba.=D
agora so vo responder de noite, tenho q ir pra escola [ja to até atrazado.uHAsuAHs]

 
Avatar nofxx 1256 posts

Ops.. tu soh inverteu as bolas… eh I18n.t() e nao I18n().t

 
Hugolnxtechnoavatar32x3 HugoLnx 31 posts

putz, é q eu tava com pressa pq tava atrazado pra escola.xDDDD
mas eu escrevi certo na hora de testar.xD

 
Hugolnxtechnoavatar32x3 HugoLnx 31 posts

consegui a parada do I18n, até adicionei + um idioma, espanhol.xD
vlw aew pelas dicas pessoal, e ainda estou aberto para + dicas.xDD

Obs.:
a versão nova [1.3.0.0] ja ta no GitHub
http://github.com/HugoLnx/Tic-Tac-Toe