class DiceRoller

rolls dice and formats the results

Public Class Methods

new(four = 0, six = 0, eight = 0, ten = 0, twelve = 0, twenty = 0, percentile = 0, type = :sum, reroll = 10, minimum = 8, subtract = false) click to toggle source
# File lib/dice_roller.rb, line 3
def initialize(four = 0, six = 0, eight = 0, ten = 0, twelve = 0, twenty = 0, percentile = 0, type = :sum, reroll = 10, minimum = 8, subtract = false)
  results = DicePool.new(four, six, eight, ten, twelve, twenty, percentile).roll_pool

  case type
  when :sum
    # output each dice's value and the sum total
    results.four_result.each do |value|
      puts "four-sided dice: #{value}"
    end
    
    results.six_result.each do |value|
      puts "six-sided dice: #{value}"
    end
    
    results.eight_result.each do |value|
      puts "eight-sided dice: #{value}"
    end
    
    results.ten_result.each do |value|
      puts "ten-sided dice: #{value}"
    end
    
    results.twelve_result.each do |value|
      puts "twelve-sided dice: #{value}"
    end
    
    results.twenty_result.each do |value|
      puts "twenty-sided dice: #{value}"
    end
    
    results.percentile_result.each do |value|
      puts "percentile dice: #{value}"
    end
    
    puts "sum total: #{results.total}"
  when :successes
    # output the ten-sided dice's values and the
    # number of successes
    suxx = results.successes(minimum, reroll, subtract)

    results.ten_result.each do |value|
      puts "ten-sided dice: #{value}"
    end

    puts "successes: #{suxx}"
  end
end