Árvore de Laranja interativo

Publicado por Santiago Staviski (última atualização em 10/07/2010)

[ Hits: 8.051 ]

Homepage: http://allenkonstanz.blogspot.com

Download arvore.rb

Download arvoreV2.rb (versão 2)




Um programa de brincadeira para aprender sobre uso de objetos, classes, métodos e atributos.

  



Versões atualizadas deste script

Versão 2 - Enviado por Santiago Staviski em 06/07/2010

Changelog: Todos os métodos estão dentro da classe agora. Nenhuma variável global é usada.

Download arvoreV2.rb


Esconder código-fonte

class ArvoreDeLaranja
   def initialize altura
      @altura = altura
      @anos = 1
      @numero_de_laranjas = 0
      puts 'Altura da é ' + @altura + ' metros'
   end
   def crescer
      passar_um_ano
      puts 'Um ano se passou sua árvore agora tem ' +@anos.to_s+' anos'
      puts 'E tem '+@altura.to_s+' metros de altura'
      puts
      menu
      
   end
   
   def pegar_laranjas
      puts 'Quantas laranjas deseja colher?'
      pegar = gets.chomp.to_i
      if (pegar>@numero_de_laranjas)
         puts 'A árvore não tem laranjas suficientes'
         puts
         menu
      elsif (pegar<=@numero_de_laranjas)
         @numero_de_laranjas = @numero_de_laranjas-pegar
         puts 'Que laranja deliciosa!'
         puts 'Agora a árvore só tem '+@numero_de_laranjas.to_s+' laranjas.'   
         puts
         menu      
      end
   end
   
   def contar_laranjas
      puts 'A árvore tem atualmente '+@numero_de_laranjas.to_s+' laranjas'
      puts
      menu
   end
   
   private 
   
   def passar_um_ano
      @anos = @anos+1   
      @numero_de_laranjas = 0   
      if (@anos >2 and @anos <5)
         @numero_de_laranjas = rand(15)+1
         @altura = @altura.to_i+rand(3)+1
      else
         @numero_de_laranjas = rand(30)+1
      end
      if (@anos>10)
      puts 'A árvore com altura de '+@altura.to_s+' metros de altura e '+@anos.to_s+' anos morreu!'
      exit #sai do programa
      end
            
   end
   
   
   
end

def menu
      puts'"Suas opções são:"'
       puts'""'
      puts '1) Passar um ano'
      puts '2) Contar laranjas'
      puts '3) Colher laranjas'
      puts '0) Sair do programa'
      puts
      puts 'Escolha uma opção: '
      opcao = gets.chomp.to_i
      while not (0 <= opcao and opcao <= 3)
         puts 'Escolha uma opção de 0 a 3: '
         opcao = gets.chomp.to_i         
       end

         if opcao ==1
            $arvore.crescer
         elsif opcao ==2
            $arvore.contar_laranjas
         elsif opcao ==3
            $arvore.pegar_laranjas
         elsif opcao ==0
            puts 'Você está saindo do programa'
         end
      end


#programa começa aqui:
puts 'Quantos metros sua árvore terá inicialmente? '
metros = gets.chomp
$arvore = ArvoreDeLaranja.new metros.to_s
puts
menu

Scripts recomendados

Inversor de links com Shoes

Módulos em Ruby

Scan Port Interno

Web Crawler em Ruby com Open-URI e Nokogiri

Utilização de Classes em Ruby


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts