Class: Mastermind::NaiveAlgorithm

Inherits:
Object
  • Object
show all
Defined in:
lib/mastermind/AIsolver.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(valid_letters) ⇒ NaiveAlgorithm

Returns a new instance of NaiveAlgorithm.



5
6
7
8
# File 'lib/mastermind/AIsolver.rb', line 5

def initialize(valid_letters)
  @valid_letters = valid_letters
  @possible_guesses = valid_letters.repeated_permutation(4).to_a
end

Instance Attribute Details

#possible_guessesObject

Returns the value of attribute possible_guesses.



3
4
5
# File 'lib/mastermind/AIsolver.rb', line 3

def possible_guesses
  @possible_guesses
end

Instance Method Details

#discard_invalid_guesses(incorrect_guess) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/mastermind/AIsolver.rb', line 14

def discard_invalid_guesses(incorrect_guess)
  discarded_guesses = @possible_guesses.select do |guess|
    compare_result = CodeComparer.new(incorrect_guess.guess, guess).compare
    compare_result != incorrect_guess.result_hash
  end
  @possible_guesses -= discarded_guesses
end

#next_guessObject



10
11
12
# File 'lib/mastermind/AIsolver.rb', line 10

def next_guess
   @possible_guesses[rand(@possible_guesses.size)]
end