Class: Stattr::DiceRoll

Inherits:
Object
  • Object
show all
Defined in:
lib/stattr.rb

Overview

Represents a single instance of the result of a dice roll

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sides = Game.dice_sides, count = Game.dice_num) ⇒ Object

New instance of DiceRoll.

def initialize(sides=DICE_SIDES, count=1)

Parameters:

  • sides (Integer) (defaults to: Game.dice_sides)
  • count (Integer) (defaults to: Game.dice_num)


60
61
62
63
# File 'lib/stattr.rb', line 60

def initialize(sides=Game.dice_sides, count=Game.dice_num)
  @sides = sides
  @count = count
end

Instance Attribute Details

#countObject

The number of die being rolled.



51
# File 'lib/stattr.rb', line 51

attr_accessor :sides, :count

#sidesObject

The number of sides the dice in this roll have.



51
52
53
# File 'lib/stattr.rb', line 51

def sides
  @sides
end

Class Method Details

.new_roll(sides = Game.dice_sides, count = Game.dice_num) ⇒ Object

Roll a new die.

Parameters:

  • sides (Integer) (defaults to: Game.dice_sides)
  • count (Integer) (defaults to: Game.dice_num)

Returns:

  • (Object)

    DiceRoll object



71
72
73
74
# File 'lib/stattr.rb', line 71

def self.new_roll(sides = Game.dice_sides, count=Game.dice_num)
  # make a new dice object, then roll it.
  new(sides, count).roll
end

Instance Method Details

#rollInteger

Adds the rolls from rolls together.

Returns:

  • (Integer)

    combined rolls



88
89
90
# File 'lib/stattr.rb', line 88

def roll
  rolls.inject(0) { |total, d| total += d }
end

#rollsInteger

From 1 to count, that many [sides] sided die.

Returns:

  • (Integer)

    Gives each outcome to Roll.



80
81
82
# File 'lib/stattr.rb', line 80

def rolls
  (1..count).map { |d| rand(sides) + 1 }
end