private void SetStatistics(SetDigit setDigit) { var digit = setDigit.Digit; statistics[digit - 1] = 1; Draw(); }
private bool IsRowOrColOrBlock(SetDigit setDigit) { if (IsMyCell(setDigit)) return false; return setDigit.Row == row || setDigit.Col == col || setDigit.Block == block; }
private bool IsRowOrColOrBlock(SetDigit setDigit) { if (IsMyCell(setDigit)) { return(false); } return(setDigit.Row == row || setDigit.Col == col || setDigit.Block == block); }
private void SolveCell(SetDigit setDigit) { var digit = setDigit.Digit; if (!IsSolved(digit)) { possibleDigits.ToList() .ForEach(d => Publish(new StrikeDigit(row, col, d))); possibleDigits.Clear(); possibleDigits.Add(digit); Draw(); } }
// restrict possible digits for row, col, block private void RestrictPossibilities(SetDigit setDigit) { var digit = setDigit.Digit; if (possibleDigits.Contains(digit)) { possibleDigits.Remove(digit); if (possibleDigits.Count == 1) { Publish(new SetDigit(row, col, possibleDigits.First())); } Publish(new StrikeDigit(row, col, digit)); Draw(); } }
// restrict possible digits for row, col, block private void RestrictPossibilities(SetDigit setDigit) { var digit = setDigit.Digit; if (possibleDigits.Contains(digit)) { possibleDigits.Remove(digit); if (possibleDigits.Count == 1) Publish(new SetDigit(row, col, possibleDigits.First())); Draw(); } }
private bool IsMyCell(SetDigit setDigit) { return setDigit.Row == row && setDigit.Col == col; }
private void SolveCell(SetDigit setDigit) { var digit = setDigit.Digit; possibleDigits.Clear(); possibleDigits.Add(digit); Draw(); }
private bool IsMyCell(SetDigit setDigit) { return(setDigit.Row == row && setDigit.Col == col); }
private void SolveCell(SetDigit setDigit) { var digit = setDigit.Digit; if (!IsSolved(digit)) { // fix statistics to allow later evaluation of counts possibleDigits.ToList() .ForEach(d => Publish(new StrikeDigit(row, col, d))); possibleDigits.Clear(); possibleDigits.Add(digit); Draw(); } }