Exemplo n.º 1
0
        private void SetStatistics(SetDigit setDigit)
        {
            var digit = setDigit.Digit;

            statistics[digit - 1] = 1;
            Draw();
        }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 6
0
        // 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();
            }
        }
Exemplo n.º 7
0
 private bool IsMyCell(SetDigit setDigit)
 {
     return setDigit.Row == row && setDigit.Col == col;
 }
Exemplo n.º 8
0
        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);
 }
Exemplo n.º 10
0
        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();
            }
        }