要做的工作
1.引數判別
2.生成並輸出數獨終局
(1)引數n;
(2)模板數獨;
(3)衍生數獨;
(4)建立衍生數獨
(5)輸出數獨終局
考慮設計那些物件呢?
1.引數識別物件:argcheck
變數(1)引數判別變數checkresualt
-----表明使用者引數的合法與否,辨別使用者想要做那種操作。
方法(1)建構函式argcheck(int arc = 0, char** argv = null)構建物件
(2) check()函式;對引數的合法性以及引數進行判斷,結果存入變數checkresualt
(3)getresualt();提供checkresualt
**如下:
class argcheck
//提供checkresualt
int getresult()
//對引數的合法性以及引數進行判斷,結果存入變數checkresualt並返回
int check();
};
int check()實現如下:
//對引數的合法性以及引數進行判斷,結果存入變數checkresualt並返回
int argcheck::check()
if (strcmp("-c", argv[1]) != 0 && strcmp("-s", argv[1]) != 0)//-s和-c檢查
if (strcmp("-c", argv[1]) == 0)
return checkresult = forc;
} else
}//判斷輸入是否問純數字
bool ispurenumber(char* s)
3數獨生成物件sudokufactory
功能描述:檢查剩餘需求量,生成新的數獨。
宣告**
class sudokufactory
// 檢查剩餘需求量
bool isenough()
//生成第乙個模板
void createfirstmodel();
//更新模板
void refreshmodel();
//在原始陣列基礎上進行變換並輸出36個排列
void newfrommodel();
//生成終局檔案
string createsudokufile();
string getsudokustore()
};
具體實現檢視專案sudoko.cpp檔案。
生成數獨終局原型基本完成,進入優化階段。
java 數獨遊戲生成
數獨程式 public class shudu public static void main string args else 填充成功 if iscorret i,j else 輸出結果 for int i 0 i 9 i system.out.println 是否滿足行 列和3x3區域不重複的...
軟體工程基礎 個人專案報告之生成數獨終局
專案位址 1 個人專案報告之可行性分析 需求分析 概要設計 2 個人專案報告之生成數獨終局 3 個人專案報告之生成終局 優化 4 個人專案報告之求解數獨 5 個人專案報告之求解 優化 6 個人專案報告之生成數獨題目 7 個人專案報告之單元測試及分支覆蓋率 解題思路 首先,我們應該明確一點的是,9 9...
數獨的生成與破解演算法分析
這樣減少了9個深度在破解,發現成功的概率還是只有50 左右,仍然還是會有近一半的可能陷入死迴圈的遞迴中,所以還是需要進一步減少深度。在此期間,我發現如果計算機能夠解出數獨,時間是幾百毫秒的,如果解不出,估計電腦燒起來了也動不了,所以這時候可以選擇折中的辦法,減少深度,增大重複計算的次數。也就是說在已...