From c04c4c470583310428aa32d719ac693ddf34155e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elomar=20Fran=C3=A7a?= Date: Fri, 24 Apr 2009 22:50:06 -0300 Subject: [PATCH] =?UTF-8?q?Adicionando=20vers=C3=A3o=20simplificada=20do?= =?UTF-8?q?=20Dwemthys=20Array?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dwemthy_1/coelho.rb | 37 ++++++++++++++++++++++++++++++ dwemthy_1/criatura.rb | 51 +++++++++++++++++++++++++++++++++++++++++ dwemthy_1/monstros.rb | 53 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 141 insertions(+) create mode 100755 dwemthy_1/coelho.rb create mode 100755 dwemthy_1/criatura.rb create mode 100644 dwemthy_1/monstros.rb diff --git a/dwemthy_1/coelho.rb b/dwemthy_1/coelho.rb new file mode 100755 index 0000000..e3a0fcb --- /dev/null +++ b/dwemthy_1/coelho.rb @@ -0,0 +1,37 @@ +class Coelho < Criatura + attr_accessor :bombas + + def initialize + @vida = 15 + @forca = 3 + @carisma = 25 + @arma = 2 + @bombas = 3 + end + + def espadada(inimigo) + lutar(inimigo, 20) + end + + def boomerang(inimigo) + lutar(inimigo, 10) + end + + def come_alface(inimigo) + alface = rand(carisma) + puts "[O alface da vida recuperou #{alface} pontos de vida seus]" + @vida += alface + lutar(inimigo, arma) + end + + def solta_bomba(inimigo) + if @bombas.zero? + puts "[Hey! Você está sem bombas]" + lutar(inimigo, 0) + return + end + @bombas -= 1 + lutar(inimigo, 50) + end +end + diff --git a/dwemthy_1/criatura.rb b/dwemthy_1/criatura.rb new file mode 100755 index 0000000..dcb74b9 --- /dev/null +++ b/dwemthy_1/criatura.rb @@ -0,0 +1,51 @@ +# Apenas uma simples e singela criatura +class Criatura + + # define métodos de escrita e leitura para as variáveis de instancia + attr_accessor :vida, :forca, :carisma, :arma + + # Inicializacao: qualquer criatura tem ao menos 1 em cada + def initialize + @vida = 1 + @forca = 1 + @carisma = 1 + @arma = 1 + end + + # Este método aplica um golpe recebido durante uma luta. + def golpear(dano) + aumento_poder = rand(carisma) + if aumento_poder % 9 == 7 + @vida += aumento_poder / 4 + puts "[Aumento de poderes mágicos de #{self.class}:#{aumento_poder}!]" + end + @vida -= dano + puts "[#{self.class} está morto.]" if @vida <= 0 + end + + def luta_sem_arma(inimigo) + lutar(inimigo, @arma) + end + + private + # Este método obtém uma rodada em uma luta. + def lutar(inimigo, arma) + if vida <= 0 + puts "[#{self.class} está muito morto para lutar!]" + return + end + + # Ataca o oponente + seu_golpe = rand(forca) + arma + puts "[Você golpeou com #{seu_golpe} pontos de dano!]" + inimigo.golpear(seu_golpe) + + # Retaliação + p inimigo + if inimigo.vida > 0 + inimigo_golpe = rand(inimigo.forca) + inimigo.arma + puts "[Seu inimigo golpeou com #{inimigo_golpe} pontos de dano!]" + golpear(inimigo_golpe) + end + end +end diff --git a/dwemthy_1/monstros.rb b/dwemthy_1/monstros.rb new file mode 100644 index 0000000..c22cabf --- /dev/null +++ b/dwemthy_1/monstros.rb @@ -0,0 +1,53 @@ +class MacacoIndustrialEntusiasmante < Criatura + def initialize + @vida = 46 + @forca = 35 + @carisma = 91 + @arma = 2 + end +end + +class AnjoDosAnoes < Criatura + def initialize + @vida = 540 + @forca = 6 + @carisma = 144 + @arma = 50 + end +end + +class TentaculoViceAssistenteEOmbudsman < Criatura + def initialize + @vida = 320 + @forca = 6 + @carisma = 144 + @arma = 50 + end +end + +class CervoDeDentes < Criatura + def initialize + @vida = 655 + @forca = 192 + @carisma = 19 + @arma = 109 + end +end + +class IntrepidoCiclistaDecomposto < Criatura + def initialize + @vida = 901 + @forca = 560 + @carisma = 422 + @arma = 105 + end +end + +class Dragao < Criatura + def initialize + @vida = 1340 # escamas duras + @forca = 451 # veias ressaltadas + @carisma = 1020 # sorriso dentado + @arma = 939 # cospe fogo + end +end