Example #1
0
        private bord solver(int[] counter, bord bor)
        {
            counter = increment(counter);
            if (bor.isFull())
            {
                return bor;
            }

            while (bor.isOccu(counter))
            {
                counter = increment(counter);
            }
            for (int i = 1; i < 10; i++)
            {
                if (bor.check(counter, i))
                {
                   bor.setValue(counter, i);

                   bor = solver(counter, bor);
                   if (bor.isFull())
                   {
                       return bor;
                   }
                }

            }
            bor.removeValue(counter);
            counter = decrement(counter);
            while (this.fixedValues[counter[0], counter[1]])
            {
                counter = decrement(counter);
            }

            return bor;
        }