module GooseGame class Dice QTY = 2 MAX = 6 attr_reader :d1, :d2 def self.roll new(*QTY.times.map { |_| rand(MAX) + 1 }) end def initialize(d1 = 0, d2 = 0) @d1, @d2 = *check_args(d1, d2) end def to_i [d1, d2].sum end private def check_args(*args) args.map { |arg| [arg.to_i.abs, MAX].min } end end end