数独空白 - c ++

时间:2016-01-26 22:58:19

标签: c++ random sudoku

我必须编写一个程序,它接收一个Sudoku方块(填充所有插槽)并随机分配25个空格来填充。这是我到目前为止,但因为此代码有机会生成相同的位置在阵列中我不止一次得到不同数量的空白(17-21)。我想知道是否有一种简单的方法可以让它输出25个空白,无论如何。如果数组中的任何位置的值为零,则我的打印功能会插入空白。

void insertBlanks(int square[9][9])
{
    srand(time(NULL));
    int i = 0;
    while(i < 25)
    {
        int tempOne = rand() % 9;
        int tempTwo = rand() % 9;
        square[tempOne][tempTwo] = 0;
        i = i + 1;
    }
}

1 个答案:

答案 0 :(得分:3)

您应该检查是否已经存在0。

if(square[tempOne][tempTwo] != 0)
{
  square[tempOne][tempTwo] = 0;
  i = i + 1;
}