class BCDice::DiceTable::D66ParityTable

出目の偶奇による場合分け機能をもつD66表

Public Class Methods

new(name, odd, even) click to toggle source

@param name [String] 表の名前 @param odd [Array<String>] 左ダイスが奇数だったときの次層テーブル(サイズ6) @param even [Array<String>] 左ダイスが偶数だったときの次層テーブル(サイズ6)

# File lib/bcdice/dice_table/d66_parity_table.rb, line 10
def initialize(name, odd, even)
  @name = name
  @odd = odd.freeze
  @even = even.freeze
end

Public Instance Methods

roll(randomizer) click to toggle source

表を振る @param randomizer [#roll_once] ランダマイザ @return [String] 結果

# File lib/bcdice/dice_table/d66_parity_table.rb, line 19
def roll(randomizer)
  dice1 = randomizer.roll_once(6)
  dice2 = randomizer.roll_once(6)

  if dice1.odd?
    second_table = @odd
  else
    second_table = @even
  end

  result = second_table[dice2 - 1]
  key = dice1 * 10 + dice2

  return RollResult.new(@name, key, result)
end