gpt4 book ai didi

c++ - 如何隐藏数独表中的数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:27:55 26 4
gpt4 key购买 nike

我正在尝试编写一个程序,为用户提供一个数独谜题来解决。但我坚持按难度级别隐藏数字。我该怎么做?

最佳答案

假设你有一个 9x9 的整数矩阵

int sudoku[9][9];

并且这个矩阵填充了一个正确的数独,例如用 0 替换一些条目。请记住,数独通常围绕其中心对称。

// Hide (i,j) from solution
sudoku[i][j] = 0;
sudoku[8-i][8-j] = 0;

每次您从解决方案中隐藏两个数字时,请与您的求解器核实它是否仍然可以求解。最后,将困难与这样一个过程的一定循环量联系起来

for (k=0; k < difficulty; ) {
// randomly select (i,j) so that:
// - 0 <= i <= 4
// - 0 <= j <= 4
// - (i,j) != (4, 4)
// - solution[i][j] != 0 (i.e., (i, j) has not already been randomly selected
save1 = solution[i][j];
solution[i][j] = 0;
save2 = solution[8-i][8-j];
solution[8-i][8-j] = 0;

if (!can_be_solved(solution)) {
// (i, j) was not a good choice!
solution[i][j] = save1;
solution[8-i][8-j] = save2;
}
else {
// it's still OK, let's go one step further
k += 1;
}
}
//

}

关于c++ - 如何隐藏数独表中的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com