public bool Solve() { var puzzleIterator = new PuzzleIterator(_puzzle); puzzleIterator.MoveNext(); ReduceCandidates(); return(SolveCellsRecursively(new PuzzleIterator(puzzleIterator))); }
private bool FindNextUndefinedCell(PuzzleIterator iterator) { while (iterator.MoveNext()) { if (iterator.Current.Value == CellValue.Unknown.Value) { return(true); } } return(false); }
public bool PuzzleIsCompleted() { var iterator = new PuzzleIterator(_puzzle); while (iterator.MoveNext()) { if (iterator.Current.Value == 0) { return(false); } } return(true); }
public void MoveNext_NotLastElement_ReturnsTrue() { Assert.IsTrue(_iterator.MoveNext()); }