Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a draft pull request for use ONLY as placeholder for comments.
The code is NOT ready for merging.
The improvements done in nestedChains branch compared to master
class DigitCellsthat holds alive pencilmarks ordered by value then by cell.class HintsCachethat collects hints found by particular algorithm for particular grid state for reusing.private Grid initialGrid- a reference to a grid state after last applied eliminations,private DigitCells dCells- a reference to current grid state inDigitCellsform.if (Settings.getInstance().Fixed14Chaining() == 1).Solver.getBatchDifficultyrequired for handling the globalHintsCache.ChainingincludingDigitCellsfor search acceleration,HintsCacheresulting in almost doubling the speed,saveGrid,lastGrid,lastHintsafter replacing functionalities related to them by better ones,signaturerequired byHintsCache,The changes that are not done but are required before merging
HintsCachereset between puzzles and purge between applying hint eliminations. Reason for not implementing this is the variety of loops that recently appeared and are difficult to track.HintsCache.Possible further improvements based on the changes
Grid.initialGridwithin hints collection algorithm for comparison between initial grid state and eventually locally modified one. Removal of local clones of the grid where possible, or at least reduce cloning to making a local copy instead of making and then restoring a backup.Grid.dCells, after single earlier initialization, in all solving techniques that benefit of it.HintsCacheby more techniques after implementing asignaturefor the respective technique.