ソルバーの基本クラスについてはCell
、 、ValidationRegion
、Board
、およびPattern
をメイン クラスとして使用するとよいでしょう。
Cell
: セルの現在の値、セルの残りの可能な値、およびセルが固定されているかどうかを示します。
ValidationRegion
: の適切な 9 への参照がありCells
ますBoard
。このクラスは、規則が同じであるため、水平、垂直、または正方形の領域を表しているかどうかを実際に知る必要はありません。このクラスには、リージョンの現在の状態が可能であることを確認するための validate() メソッドがあります。
Board
: の全体のレイアウトを持ち、参照によって適切なを渡すことによりCells
、固定を適切に初期化します。また、ソリューションに到達するか、ソリューションが不可能であると判断されるまで、事前に定義された順序で適用されるメソッドもあります (したがって、ブルート フォース パターンは最後の努力である必要があります)。ValidationRegions
Cells
solve
Patterns
Pattern
apply(Board)
:指定されたパターンを指定されたボード オブジェクトに適用するメソッドを持つ抽象クラス(可能性Cells
が 1 つしか残っていないことがわかっている場合は、可能性を削除して設定します)。Sudoku Dragon - Sudoku StrategyからOneChoicePattern
、SinglePossibilityPattern
、OnlySquareRule
、 などのパターンを実装する可能性があります。