谁能告诉我数独游戏的编程思维啊
发布网友
发布时间:2022-05-12 07:12
我来回答
共1个回答
热心网友
时间:2022-04-25 01:07
一、解数独
1、标记
2、利用各种方法减少标记数量,例如显性数对删减法、*唯一数法、*数对法、区域删减法、区块删减法、三四链数删减法等等
3、填充,利用唯一值法,如果那个标记中只有一个可填了,这就是结果了。
4、假设法,如果各种方法(至少你知道的)都用了还是没有唯一数,那只能假设了,按一定顺序某个单元格标记中假设一个就是要填充的数,然后重复上面的步骤,如果得到无解(就是出现某个单元格的没有可填的数),那就退回,换一个数继续。(一般这个过程用递归完成)
二、如何生成题目
会解数独后,生成就不是问题了,我的方法是分为两步首先随机填充1-9到第一行,然后用上诉方法产生一个解。再次,随机一个一个数删除,每删除一个数重复上诉方法,看看是否是唯一解,如果是继续删除(不是就恢复,删其它的),直到达到一定目的为止。这样就产生一个数独题目。