class GemCodebreaker::CodeMaker

Attributes

empty_match[R]
minus_match[R]
plus_match[R]

Public Class Methods

new(game_code, user_code) click to toggle source
# File lib/gem_codebreaker/classes/code_maker.rb, line 7
def initialize(game_code, user_code)
  @game_code = game_code
  @user_code = user_code
  @plus_match = 0
  @minus_match = 0
  @empty_match = 0
end

Public Instance Methods

calculate_result_code() click to toggle source
# File lib/gem_codebreaker/classes/code_maker.rb, line 15
def calculate_result_code
  count_plus_marker
  count_minus_and_empty_answer
end

Private Instance Methods

count_minus_and_empty_answer() click to toggle source
# File lib/gem_codebreaker/classes/code_maker.rb, line 28
def count_minus_and_empty_answer
  return if @game_code.nil?

  @game_code.each do |secret_code_item|
    if @user_code.include?(secret_code_item)
      @minus_match += 1
      @user_code.delete_at(@user_code.index(secret_code_item))
    else
      @empty_match += 1
    end
  end
end
count_plus_marker() click to toggle source
# File lib/gem_codebreaker/classes/code_maker.rb, line 22
def count_plus_marker
  data = @game_code.zip(@user_code)
  data.delete_if { |game_code_item, user_code_item| @plus_match += 1 if game_code_item == user_code_item }
  @game_code, @user_code = data.transpose
end