class Matching
Attributes
game[R]
Public Class Methods
new(game)
click to toggle source
# File lib/services/matching_service.rb, line 4 def initialize(game) @game = game end
Public Instance Methods
check_the_code()
click to toggle source
# File lib/services/matching_service.rb, line 38 def check_the_code @secret_code_clone = game.secret_code.clone exact_matches.length.times { @pluses += '+' } rest_matches.compact.length.times { @minuses += '-' } end
create_response()
click to toggle source
# File lib/services/matching_service.rb, line 8 def create_response @pluses = '' @minuses = '' check_the_code "#{@pluses}#{@minuses}" end
current_secret_number(index)
click to toggle source
# File lib/services/matching_service.rb, line 30 def current_secret_number(index) game.secret_code.at(index) end
current_user_number(index)
click to toggle source
# File lib/services/matching_service.rb, line 34 def current_user_number(index) game.user_code.at(index) end
exact_matches()
click to toggle source
# File lib/services/matching_service.rb, line 15 def exact_matches exact_matches = [] game.secret_code.each_index do |index| if current_secret_number(index) == current_user_number(index) exact_matches.push(current_secret_number(index)) remove_verified_number(current_user_number(index)) end end exact_matches end
remove_verified_number(number)
click to toggle source
# File lib/services/matching_service.rb, line 44 def remove_verified_number(number) game.user_code[game.user_code.index(number)] = nil @secret_code_clone[@secret_code_clone.index(number)] = nil end
rest_matches()
click to toggle source
# File lib/services/matching_service.rb, line 26 def rest_matches @secret_code_clone & game.user_code end