Package com.act365.sudoku

Interface Summary
IState The IState interface is implemented by all the state types used within strategy types to track possible Su Doku solutions.
IStrategy A strategy is an algorithm that solves Su Doku problems.

Class Summary
CellState CellState records the number of candidates remain for each separate cell on the grid.
Composer A Composer object attempts to compose valid Su Doku puzzles with the MostCandidates strategy.
ControlContainer A ControlContainer instance contains the various buttons and text fields that sit underneath the Su Doku grid and control its operation.
FirstAvailable The 'FirstAvailable' strategy always selects the first valid choice it finds in any situation - it doesn't make any attempt to rank the various alternatives.
Grid A Grid object represents a partially-filled Su Doku grid.
GridContainer The GridContainer class displays a Su Doku grid.
InvulnerableState InvulnerableState records the number of cells that would remain unresolved for each given move (ie each cell/value pair).
LeastCandidatesCell The LeastCandidatesCell strategy calculates the number of seemingly valid candidates (of course, for a problem with a unique solution, there is only one strictly valid candidate for each cell - a candidate is deemed 'seemingly valid' if it isn't blatantly contradicted by another cell in that row, column or subgrid) for each cell in the grid, and fills the cells with the least number of possible candidates first.
LeastCandidatesHybrid LeastCandidatesHybrid combines the Least Candidates Cell and Least Candidates Number strategies.
LeastCandidatesNumber The LeastCandidatesNumber strategy calculates, for each combination of number and sector (where a sector is a generic term that covers rows, columns and subgrids), the number of valid candidate cells and fills the the sectors with the least number of possible candidate cells first.
MaskFactory The MaskFactory class iterates through the complete set of possible masks (a mask is a boolean[][] array that indicates whether the corresponding cells in Su Doku grids should have their initial values exposed) of a given size.
MostCandidates The MostCandidates strategy makes the move at any timestep that will eliminate the greatest number of remaining candidates.
NumberState NumberState records the number of candidates remain for each value/sector on the grid, where a sector is any row, column or subgrid.
Solver A Solver instance solves a grid on a thread that exits gracefully if interrupted.
Strategy Provides a single point of access to the various strategy classes.
StrategyBase StrategyBase handles several thread-related function common to most implementors of IStrategy.
SuDoku The SuDoku app displays a Su Doku solver in a new window.
SuDokuApplet Creates an applet that displays a Su Doku solver.
SuDokuClipboard The SuDokuClipboard implements its own clipboard in a seperate window in order to work around the security restrictions that affect access to the system clipboard from an applet.
SuDokuContainer A SuDokuContainer contains two components - a GridContainer and a ControlContainer.
Traversal A Traversal object is used to store the moves made during an attempt to solve a Su Doku puzzle.