class Codebreaker::Marker
Attributes
match[RW]
Public Class Methods
new(guess, secret_code)
click to toggle source
# File lib/codebreaker/marker.rb, line 6 def initialize(guess, secret_code) @guess = guess @secret_code = secret_code @match = [] end
Public Instance Methods
find_matches()
click to toggle source
# File lib/codebreaker/marker.rb, line 12 def find_matches compared_guess = @guess.zip @secret_code exact_matches, number_matches = compared_guess.partition { |arr| arr[0] == arr[1] } @match << '+' * exact_matches.size mark_minusses(number_matches) unless number_matches.size.zero? end
mark_minusses(number_matches)
click to toggle source
# File lib/codebreaker/marker.rb, line 19 def mark_minusses(number_matches) secret_code, guess = number_matches.transpose guess.each do |number| next unless secret_code.include? number @match << '-' secret_code[secret_code.find_index(number)] = nil end end
result()
click to toggle source
# File lib/codebreaker/marker.rb, line 28 def result find_matches @match.join end