数独空白 - C++

Sudoku Blanks - c++

我必须编写一个程序,接受一个数独方块(所有槽都已填满)并随机分配 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;
    }
}

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

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