Class: Mastermind::NaiveAlgorithm
- Inherits:
-
Object
- Object
- Mastermind::NaiveAlgorithm
- Defined in:
- lib/mastermind/AIsolver.rb
Instance Attribute Summary collapse
-
#possible_guesses ⇒ Object
Returns the value of attribute possible_guesses.
Instance Method Summary collapse
- #discard_invalid_guesses(incorrect_guess) ⇒ Object
-
#initialize(valid_letters) ⇒ NaiveAlgorithm
constructor
A new instance of NaiveAlgorithm.
- #next_guess ⇒ Object
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_guesses ⇒ Object
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_guess ⇒ Object
10 11 12 |
# File 'lib/mastermind/AIsolver.rb', line 10 def next_guess @possible_guesses[rand(@possible_guesses.size)] end |