Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming

Journal Inigo Montoya's Journal: 99 bottles of beer, in ruby

I recently came across this website about 99 bottles of beer in many different programming languages:

http://www.99-bottles-of-beer.net/
 
  which seems to have the most complete list (621 versions, albeit some dups).

However, I recently started to learn ruby this month, and I didn't like the ruby example at that site, so I thought I'd write my own. Here it is for all it's fun.

class Wall
  attr_reader :beers, :s
 
  def initialize
    @beers = 99
    @s = "s"
  end
 
  def getAbeer
    puts "#{beers} bottle#{s} of beer on the wall."
    puts "#{beers} bottle#{s} of beer."
    puts "Take one down, pass it around,"
    @beers = @beers - 1
    s = "s" unless @beers == 1
    puts "#{beers} bottle#{s} of beer on the wall.\n\n"
    @s = s
  end
 
  def noMoreBeer
    return @beers == 0
  end
end
 
wall = Wall.new
 
wall.getAbeer until wall.noMoreBeer

So, how did I do? I think mine is 99 times better than the one at that site. Yes, I know my version is not the most efficient because it has excess assignments. But it is clean and easy to read, without the clutter of if/then/endif statements. Besides, you want it to be slow and inefficient, the beer lasts longer :)

This discussion has been archived. No new comments can be posted.

99 bottles of beer, in ruby

Comments Filter:

Solutions are obvious if one only has the optical power to observe them over the horizon. -- K.A. Arsdall

Working...