Example #1
0
        public void initializeBord()
        {
            line[] rows = { new line(), new line(), new line(), new line(), new line(), new line(), new line(), new line(), new line() };

            line[] cols = { new line(), new line(), new line(), new line(), new line(), new line(), new line(), new line(), new line() };

            box[] boxes = { new box(), new box(), new box(), new box(), new box(), new box(), new box(), new box(), new box() };

            cell[,] bord = new cell[9, 9];

            for (int i = 0; i < 9; i++)
            {
                for (int ii = 0; ii < 9; ii++)
                {

                    int index;

                    if (i < 3)
                    {
                        if (ii < 3)
                        {
                            index = 0;
                        }
                        else if (ii < 6)
                        {
                            index = 1;
                        }
                        else
                        {
                            index = 2;
                        }
                    }
                    else if (i < 6)
                    {
                        if (ii < 3)
                        {
                            index = 3;
                        }
                        else if (ii < 6)
                        {
                            index = 4;
                        }
                        else
                        {
                            index = 5;
                        }
                    }
                    else
                    {
                        if (ii < 3)
                        {
                            index = 6;
                        }
                        else if ( ii < 6)
                        {
                            index = 7;
                        }
                        else
                        {
                            index = 8;
                        }
                    }

                    bord[i, ii] = new cell(rows[i], cols[ii], boxes[index], 0);
                }
            }

            bord bordid = new bord(bord);
            this.board = bordid;
            this.fixedValues = new bool[9, 9];
        }
Example #2
0
 private void fillSolution(bord bordid)
 {
     for (int i = 0; i < 9; i++)
     {
         for (int ii = 0; ii < 9; ii++)
         {
             int index = (i * 9) + ii;
             int[] c = { i, ii };
             this.UIbox[index].Text = bordid.getValue(c);
             this.UIbox[index].Enabled = false;
         }
     }
 }
Example #3
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;
        }
Example #4
0
 private bool checkCorrectness(bord test)
 {
     if (!test.isFull())
     {
         return false;
     }
     return true;
 }