Sha256: c660040a0522ae1fa20992a641e2bbe15a50a96baa7e3c510a0162c607c0c6df

Contents?: true

Size: 650 Bytes

Versions: 1

Compression:

Stored size: 650 Bytes

Contents

# frozen_string_literal: true

module GuessHandler
  def respond_to_guess(game, input, code)
    @result = []
    @numbers = input.split('').map(&:to_i)
    @code_clone = code.clone

    return 'win' if @numbers == code

    assess_guess(code, @numbers, '+')
    assess_guess(@code_clone.sort, @numbers.sort, '-')

    game.attempts[:available] -= 1
    game.attempts[:used] += 1
    game.attempts[:available].zero? ? 'loss' : @result.sort
  end

  def assess_guess(code, input, method)
    input.each_with_index do |element, index|
      if element == code[index]
        @result << method
        @code_clone[index] = 7
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
codebreaker_kirill-0.2.10 lib/codebreaker_kirill/guess_handler.rb