99 bottles of coke

"99 Bottles of coke" is a traditional reverse counting song.

It is popular to sing on long trips, as it is repetitive and easy to memorize but -- it can take a long time to sing.

Lets try and make it run a little quicker using code:

Write a function that takes the number of bottles as an argument and sings the song starting from the number you've passed all the way to the end (ie, 0).

The song's lyrics are as follows:

99 bottles of coke on the wall, 99 bottles of coke.
Take one down, pass it around, 98 bottles of coke on the wall...

The same verse is repeated, each time with one bottle fewer, until there are none left.

Bear in mind, not all verses are the same. The verse for 1 bottle is as follows:

1 bottle of coke on the wall, 1 bottle of coke.
Take it down and pass it around, no more bottles of coke on the wall.

The verse for 0 bottles is as follows:

No more bottles of coke on the wall, no more bottles of coke.
Go to the store and buy some more, 99 bottles of coke on the wall.

Bonus:

  • Be able to count between a range of numbers (ie, 20 to 10).
  • Make the song verses' text color alternate between blue and red.
  • Make the last line of the song green.