Sha256: 5a9d5e15429ff439c5e5f13fc3ca25b742a7f3e99a8aacd2976cfec114dd0dd9
Contents?: true
Size: 813 Bytes
Versions: 1
Compression:
Stored size: 813 Bytes
Contents
# frozen_string_literal: true module Codebreaker class CodeMatcher EXACT = '+' NON_EXACT = '-' attr_reader :guess, :secret_code def match(secret_code, guess) @secret_code = secret_code.split('') @guess = guess.split('') handle_matched_digits.join + handle_matched_digits_with_wrong_position.join end private def handle_matched_digits secret_code.map.with_index do |_, index| next unless secret_code[index] == guess[index] @guess[index], @secret_code[index] = nil EXACT end end def handle_matched_digits_with_wrong_position guess.compact.map do |number| next unless @secret_code.include?(number) @secret_code.delete_at(secret_code.index(number)) NON_EXACT end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
codebreaker_manfly-0.1.2 | lib/codebreaker/code_matcher.rb |