Пример #1
0
        private void Game_Load(object sender, EventArgs e)
        {
            SudokuStandart d = new SudokuStandart();

            BaseGrid = new int[9, 9];
            d.GenBase(BaseGrid, 3, 9);
        }
Пример #2
0
        private void Sudoku16x16_Click(object sender, EventArgs e)
        {
            Sudoku9x9.Enabled   = true;
            Sudoku16x16.Enabled = false;
            SudokuStandart d = new SudokuStandart();

            BaseGrid = new int[16, 16];
            d.GenBase(BaseGrid, 4, 16);
        }
Пример #3
0
        private void Generate_Click(object sender, EventArgs e)
        {
            int rs;
            int bl;

            if (Sudoku9x9.Enabled == false)
            {
                rs = 9;
                bl = 3;
            }
            else
            {
                rs = 16;
                bl = 4;
            }
            SudokuStandart d = new SudokuStandart();

            SudokuGrid.Enabled = true;
            //BaseGrid = new int[rs, rs];
            //d.GenBase(BaseGrid, bl, rs);


            int c;

            for (int k = 1; k <= 1000; k++)
            {
                c = r.Next(1, 6);

                switch (c)
                {
                case 1: d.Transp(BaseGrid, rs); goto case 5;

                case 2: d.SwapRow(BaseGrid, bl, rs, r); goto case 3;

                case 3: d.SwapCol(BaseGrid, bl, rs, r); goto case 1;

                case 4: d.SwapCols(BaseGrid, bl, rs, r); goto case 2;

                case 5: d.SwapRows(BaseGrid, bl, rs, r); break;
                }
            }

            SudokuGrid.RowCount                 = rs;
            SudokuGrid.ColumnCount              = rs;
            SudokuGrid.AllowUserToAddRows       = false;
            SudokuGrid.AllowUserToDeleteRows    = false;
            SudokuGrid.AllowUserToResizeRows    = false;
            SudokuGrid.AllowUserToResizeColumns = false;

            int w = SudokuGrid.Width;
            int h = SudokuGrid.Height;

            for (int i = 0; i < rs; i++)
            {
                for (int j = 0; j < rs; j++)
                {
                    SudokuGrid[i, j].Value             = BaseGrid[i, j];
                    SudokuGrid.Columns[i].Width        = w / rs;
                    SudokuGrid.Rows[i].Height          = h / rs;
                    SudokuGrid[i, j].Style.BackColor   = Color.White;
                    SudokuGrid[i, j].ReadOnly          = false;
                    SudokuGrid.Rows[i].DividerHeight   = 0;
                    SudokuGrid.Columns[i].DividerWidth = 0;
                }
            }

            int a;
            int b;

            for (int s = 0; s < (rs * rs - 15); s++)
            {
                a = r.Next(0, rs);
                b = r.Next(0, rs);

                SudokuGrid[a, b].Value = " ";
            }
            p = 0;
            for (int i = 0; i < rs; i++)
            {
                for (int j = 0; j < rs; j++)
                {
                    if (SudokuGrid[i, j].Value.ToString() != " ")
                    {
                        SudokuGrid[i, j].ReadOnly        = true;
                        SudokuGrid[i, j].Style.BackColor = Color.LightGray;
                        p++;
                    }
                }
            }
            Test.Enabled = true;
            o            = 10;
            Trys.Text    = o.ToString();
            st           = 0;
            time         = 0;
            for (int i = 1; i < bl; i++)
            {
                SudokuGrid.Rows[bl * i - 1].DividerHeight   = 2;
                SudokuGrid.Columns[bl * i - 1].DividerWidth = 2;
            }
        }