module Make10

Public Class Methods

make_all_pattern(nums) click to toggle source
# File lib/make10.rb, line 32
def make_all_pattern(nums)
  nums_list = []
  nums.permutation.each {|d| nums_list << d}
  nums_list
end
solve(*inputs) click to toggle source
# File lib/make10.rb, line 12
def solve(*inputs)
  nums_list = make_all_pattern(inputs)
  ans = []
  nums_list.each do |nums|
    @ops.each do |o1|
      @ops.each do |o2|
        @ops.each do |o3|
          @parentheses_patterns.each do |pattern|
            exp = sprintf(pattern, nums[0] , o1, nums[1], o2, nums[2], o3, nums[3])
            ans << exp.gsub(/0|\./, "") if eval(exp) == 10.0
          end
        end
      end
    end
  end

  return ans.uniq

end

Private Instance Methods

make_all_pattern(nums) click to toggle source
# File lib/make10.rb, line 32
def make_all_pattern(nums)
  nums_list = []
  nums.permutation.each {|d| nums_list << d}
  nums_list
end
solve(*inputs) click to toggle source
# File lib/make10.rb, line 12
def solve(*inputs)
  nums_list = make_all_pattern(inputs)
  ans = []
  nums_list.each do |nums|
    @ops.each do |o1|
      @ops.each do |o2|
        @ops.each do |o3|
          @parentheses_patterns.each do |pattern|
            exp = sprintf(pattern, nums[0] , o1, nums[1], o2, nums[2], o3, nums[3])
            ans << exp.gsub(/0|\./, "") if eval(exp) == 10.0
          end
        end
      end
    end
  end

  return ans.uniq

end