Module: Make10

Defined in:
lib/make10.rb

Class Method Summary collapse

Class Method Details

.make_all_pattern(nums) ⇒ Object



32
33
34
35
36
# 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) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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