Skip to content

Instantly share code, notes, and snippets.

@wnoizumi
Created July 19, 2012 20:57
Show Gist options
  • Save wnoizumi/3146765 to your computer and use it in GitHub Desktop.
Save wnoizumi/3146765 to your computer and use it in GitHub Desktop.
JokenPo kata using ruby
class JokenPo
@@precedencia = {
:pedra => :tesoura,
:papel => :pedra,
:tesoura => :papel
}
def self.jogar(jogador1, jogador2)
return :empate if jogador1 == jogador2
p = @@precedencia[jogador1]
return :jogador1 if p == jogador2
return :jogador2
end
end
require_relative("joken_po")
describe JokenPo do
context "Empate" do
it "Pedra com pedra deve retornar empate" do
JokenPo.jogar(:pedra, :pedra).should == :empate
end
it "Papel com papel deve retornar empate" do
JokenPo.jogar(:papel, :papel).should == :empate
end
it "Tesoura com tesoura deve retornar empate" do
JokenPo.jogar(:tesoura, :tesoura).should == :empate
end
end
context "Jogador1 ganha" do
it "Pedra com tesoura deve retornar jogador1" do
JokenPo.jogar(:pedra, :tesoura).should == :jogador1
end
it "Papel com pedra deve retornar jogador1" do
JokenPo.jogar(:papel, :pedra).should == :jogador1
end
it "Tesoura com papel deve retornar jogador1" do
JokenPo.jogar(:tesoura, :papel).should == :jogador1
end
end
context "Jogador2 ganha" do
it "Pedra com papel deve retornar jogador2" do
JokenPo.jogar(:pedra, :papel).should == :jogador2
end
it "Papel com tesoura deve retornar jogador2" do
JokenPo.jogar(:papel, :tesoura).should == :jogador2
end
it "Tesoura com pedra deve retornar jogador2" do
JokenPo.jogar(:tesoura, :pedra).should == :jogador2
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment