下面来说一下实现数独项目的大致设计。
首先,整个项目大概包括两部分,生成数独和解数独,这两部分基本是相互独立的。所以,我将这两部分分别写一个函数,最后在main函数中分情况调用。
然后是解数独部分,解数独我分成两个函数,一个是回溯函数,一个是判断填入数字是否合法的判断函数。其中,回溯函数功能是实现数字的全覆盖。两函数关系是回溯函数调用判断函数。
最后是生成数独部分,生成数独部分我将之分为两部分,分别为生成1~9的全排列生成第一代数独、交换4~6和7~9行其中任意两行生成二代数独,两函数分别命名为permutation函数和jiaohuan函数,jiaohuan函数被permutation函数调用。
对于生成数独的单元测试,我准备用小用例(大概100组)来验证生成终局的正确性以及是否冲突,然后再用大用例(1e6组)来测试项目性能。
原文:https://www.cnblogs.com/bt1208-pan-blogs/p/8830294.html