Sha256: 6a9d79a3bc15072c939b411825b0d4c9acc46786570174c7f55901bda027d91a
Contents?: true
Size: 1.47 KB
Versions: 2
Compression:
Stored size: 1.47 KB
Contents
class Dice def initialize(faces=6, dices=1) Dice::Config.faces = faces Dice::Config.dices = dices end def roll(faces=preferred_faces, dices=preferred_dices) get_result(faces, dices) end def method_missing(method, *args, &block) if method =~ /roll_d(\w+)/ roll($1.to_i) elsif method =~ /roll_(\w+)_d(\w+)/ roll($2.to_i, translate_value($1)) elsif method =~ /roll_(\w+)/ roll(preferred_faces,translate_value($1)) else super end end private def preferred_faces Dice::Config.faces end def preferred_dices Dice::Config.dices end def get_result(faces, dices) (1..dices).inject(0) {|a, b| a + rand(faces) + 1 } end def translate_value(number) case number when 'one' value = 1 when 'two' value = 2 when 'three' value = 3 when 'four' value = 4 when 'five' value = 5 when 'six' value = 6 when 'seven' value = 7 when 'eight' value = 8 when 'nine' value = 9 when 'ten' value = 10 when 'eleven' value = 11 when 'twelve' value = 12 when 'thirteen' value = 13 when 'fourteen' value = 14 when 'fifteen' value = 15 when 'sixteen' value = 16 when 'seventeen' value = 17 when 'eighteen' value = 18 when 'nineteen' value = 19 when 'twenty' value = 20 else value = number.to_i end value end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rdice-0.0.3 | lib/dice/dice.rb |
rdice-0.0.2 | lib/dice/dice.rb |