class AlexCodebreaker::Comparison
Public Class Methods
new(user_input, secret_code_for_comparison)
click to toggle source
# File lib/alex_codebreaker/comparison.rb, line 3 def initialize(user_input, secret_code_for_comparison) @user_input = user_input @secret_code_for_comparison = secret_code_for_comparison @matching = { place: 0, presence: 0 } end
Public Instance Methods
response()
click to toggle source
# File lib/alex_codebreaker/comparison.rb, line 9 def response place_matches presence_matches format_response end
Private Instance Methods
format_response()
click to toggle source
# File lib/alex_codebreaker/comparison.rb, line 36 def format_response AlexCodebreaker::Modules::Settings::MATCHING[:place] * @matching[:place] + AlexCodebreaker::Modules::Settings::MATCHING[:presence] * @matching[:presence] end
place_matches()
click to toggle source
# File lib/alex_codebreaker/comparison.rb, line 17 def place_matches @user_input.each_with_index do |value, index| next unless value == @secret_code_for_comparison[index] @secret_code_for_comparison[index] = nil @user_input[index] = nil @matching[:place] += 1 end end
presence_matches()
click to toggle source
# File lib/alex_codebreaker/comparison.rb, line 27 def presence_matches @user_input.compact.each do |value| if @secret_code_for_comparison.include?(value) @matching[:presence] += 1 @secret_code_for_comparison.delete_at(@secret_code_for_comparison.index(value)) end end end