Class MasterMindSolver
Interactive object which helps you solve a Master Mind puzzle.
Info:
- Copyright: 2021 Damian Monogue,2008,2009 Konstantinos Asimakis for code used to turn an index number into a guess (indexToGuess method)
 - Author: Damian Monogue 
 
Methods
| mastermindsolver:new(options) | Creates a new Master Mind solver | 
| mastermindsolver:reducePossible(guess, coloredPins, whitePins) | Function used to reduce the remaining possible answers, given a guess and the answer to that guess. | 
| mastermindsolver:checkLastSuggestion(coloredPins, whitePins) | Function which assumes you used the last suggested guess from the solver, and reduces the number of possible correct solutions based on the answer given | 
| mastermindsolver:getValidGuess(useActions) | Used to get one of the remaining valid possible guesses | 
Methods
- mastermindsolver:new(options) line 81
 - 
    Creates a new Master Mind solver
    
Parameters:
- options
            table
         table of configuration options for the solver
 
option name description default places How many spots in the code we're breaking? 4 items The table of colors/gemstones/whatever which can be part of the code {"red", "orange", "yellow", "green", "blue", "purple"} template The string template to use for the guess. Within the template, |t is replaced by the item. Used as the command if autoSend is true "|t" autoSend Should we send the guess directly to the server? false allowDuplicates Can the same item be used more than once in a code? true singleCommand If true, combines the guess into a single command, with each one separated by the separator false separator If sending the guess as a single command, what should we put between the guesses to separate them? " "  
 - options
            table
         table of configuration options for the solver
 
 - mastermindsolver:reducePossible(guess, coloredPins, whitePins) line 178
 - 
    Function used to reduce the remaining possible answers, given a guess and the answer to that guess.  This is not undoable.
    
Parameters:
- guess table guess which the answer belongs to. Uses numbers, rather than item names. IE { 1, 1, 2, 2} rather than { "blue", "blue", "green", "green" }
 - coloredPins number how many parts of the guess are both the right color and the right place
 - whitePins number how many parts of the guess are the right color, but in the wrong place
 
Returns:
- 
        true if you solved the puzzle (coloredPins == number of positions in the code), or false otherwise
    
 
 - mastermindsolver:checkLastSuggestion(coloredPins, whitePins) line 202
 - 
    Function which assumes you used the last suggested guess from the solver, and reduces the number of possible correct solutions based on the answer given
    
Parameters:
- coloredPins number how many parts of the guess are both the right color and the right place
 - whitePins number how many parts of the guess are the right color, but in the wrong place
 
Returns:
- 
        true if you solved the puzzle (coloredPins == number of positions in the code), or false otherwise
    
 
See also:
 - mastermindsolver:getValidGuess(useActions) line 208
 - 
    Used to get one of the remaining valid possible guesses
    
Parameters:
- useActions boolean if true, will return the guess as the commands which would be sent, rather than the numbered items