Some refactoring to make consistent findBest/Worst/ActualScore methods.
Documents the scoring methods.
Consolidates to a single sumOfCardsIn: method to reduce code duplication.
Updates the code comment for runInOrderedSet to reflect the revised logic from last night.
Strips a TODO-style #warning I no longer think is true, because the current method of getting frequency passes all test cases, and ‘correcting’ the off-by-one fails a bunch of them.
More refactoring: moves building all valid melds out into its own method.
Condenses building the collection of all valid and potential melds-of-melds into a single method called in evaluateHand.
Removes an out-of-date comment line (we’re finding valid value sets as well as valid runs here).
Strips some old debug logging lines.
Logical reorganization: groups together all the methods that have to run to find potential melds into one method called by evaluateHand, just like the one to find valid melds.
Hand method reorganization — restructures the code to flow more logically (methods called by one method always come before it, and in the right order) and adds pragma marks to divide up the different logical tasks.
Adds rudimentary code comments to every single function and method in the hand class.