Sha256: 756786c996d8b94ae8fe46af756e6058ff50ecf80ee61d15cc7dcaf9e4133783

Contents?: true

Size: 836 Bytes

Versions: 1

Compression:

Stored size: 836 Bytes

Contents

# frozen_string_literal: true

module CodebreakerSmn
  class CodeHandler
    def self.process_guess(code, input)
      temp_code = code.clone
      input = input.split('').map(&:to_i)

      result = plus(temp_code, input) + minus(temp_code, input)

      yield(result)

      result
    end

    private

    def self.plus(code, input)
      input.collect.with_index do |char, index|
        if code.include?(char) && (code[index] == char)
          input[index], code[index] = nil
          '+'
        end
      end.join
    end

    def self.minus(code, input)
      input.compact!
      code.compact!
      code.collect.with_index do |char, index|
        if input.include?(char)
          code[index], input[input.index(char)] = nil
          '-'
        end
      end.join
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
codebreaker_smn-0.1.3 lib/codebreaker_smn/helpers/code_handler.rb