Hi --
On Thu, 8 Nov 2007, Thufir wrote:
> The below uses pseudo-random number generation to populate an array
> with various monsters, all inherit from Creature. Can a list of
> classes which inherit from Creature be generated automagically? There
> must be a better technique to fill the array then the case
> statement...
>
>
> C:\code>
> C:\code>
> C:\code>type Driver.rb
> require 'ArrayOfCreatures'
>
> require 'Creature'
> require 'AssistantViceTentacleAndOmbudsman'
> require 'Dragon'
> require 'DwarvenAngel'
> require 'TeethDeer'
>
>
>
> puts "\nquantity of creatures:"
> numOfCreatures = gets.chomp.to_i
>
>
> someCreatures = ArrayOfCreatures.new
>
>
> 0.upto(numOfCreatures) do |i|
>
> creatureType = Kernel.rand(4)
>
> case creatureType
> when 0
> someCreatures[i]=AssistantViceTentacleAndOmbudsman.new
> when 1
> someCreatures[i]=Dragon.new
> when 2
> someCreatures[i]=DwarvenAngel.new
> when 3
> someCreatures[i]=TeethDeer.new
> end
> end
>
> someCreatures.toString
Here's one possibility (untested):
creatures = ArrayOfCreatures.new
creature_classes = [AssistantViceTentacleAndOmbudsman, Dragon,
DwarvenAngel, TeethDeer]
puts "\nquantity of creatures:"
num_of_creatures = gets.to_i
num_of_creatures.times do |i|
creatures[i] = creature_classes[rand(4)].new
end
David
--
Upcoming training by David A. Black/Ruby Power and Light, LLC:
* Advancing With Rails, Edison, NJ, November 6-9
* Advancing With Rails, Berlin, Germany, November 19-22
* Intro to Rails, London, UK, December 3-6 (by Skills Matter)
See
http://www.rubypal.com for details!