Class: Codebreaker::Core

Inherits:
Object
  • Object
show all
Defined in:
lib/entities/core.rb

Constant Summary collapse

GUESSED_PLACE =
'+'
GUESSED_PRESENCE =
'-'
CB_ARRAY_SIZE =
4
GAME_NUMBER_RANGE =
(1..6).freeze

Instance Method Summary collapse

Instance Method Details

#check(cb_numbers, guess_arr) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/entities/core.rb', line 13

def check(cb_numbers, guess_arr)
  result = ''
  code_guess_arr = cb_numbers.zip(guess_arr)
  code_after_each = []
  guess_after_each = []
  code_guess_arr.each do |unite_arr|
    if unite_arr.uniq.size == 1
      result += GUESSED_PLACE
    else
      code_after_each << unite_arr.first
      guess_after_each << unite_arr.last
    end
  end
  guess_after_each.each { |elem| result += GUESSED_PRESENCE if code_after_each.uniq.include?(elem) }
  result
end

#generate_secret_codeObject



9
10
11
# File 'lib/entities/core.rb', line 9

def generate_secret_code
  CB_ARRAY_SIZE.times.map { rand(GAME_NUMBER_RANGE) }
end