private void RememberPossibleValue(CellValue value) { if (!CellValue.RealValue(value)) { return; } _memory[value] = Tristate.Yes; }
private bool IsImpossible(CellValue value) { if (!CellValue.RealValue(value)) { return(false); } return(CanBe(value) == Tristate.No); }
public void RememberValueCanNotBe(CellValue value) { if (!CellValue.RealValue(value)) { return; } if (Value != CellValue.Unknown) { return; } _memory[value] = Tristate.No; if (CountPossibleValues == 1) { Value = FirstPossibleValue; } }
public void RememberValueCanBe(CellValue value) { //Validate) if (!CellValue.RealValue(value)) { return; } if (IsImpossible(value)) { Process(); return; } //Do it !! RememberPossibleValue(value); if (!CellValue.RealValue(Value) && CountPossibleValues == 1) { Value = FirstPossibleValue; } }