資源簡介
在VS2012環境下采用C#編寫,能夠求解9*9和更高階的數獨,同時能夠生成不同難度的數獨(不是采用載入現有謎題的方式),參考兩篇知網論文的算法,生成高難度數獨時時間會消耗比較長,存在繼續優化的空間。

代碼片段和文件信息
//調試開關
#undef?DEBUG
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Threading.Tasks;
using?System.Windows.Forms;
using?System.Collections;
using?System.IO;
namespace?Soduku
{
????public?partial?class?MainForm?:?Form
????{
????????public?MainForm()
????????{
????????????InitializeComponent();
????????????for?(int?i?=?0;?i?????????????{
????????????????proAns[i]?=?new?Chart();
????????????}
#if?DEBUG
????????????solveTest();
#endif
????????}
????????const?int?RANK?=?9;//數獨的階數
????????const?int?MAX?=?100;//最多的可行解數量,超出則報錯
????????const?int?GENNUM?=?20;//初始化時隨機填數的數量
????????enum?Diffcult?{?EASY?=?40?GENERAL?=?50?HARD?=?60?SPECIAL?=?74?};//數獨的難度,挖去多少數字
????????//enum?Diffcult?{?EASY?=?60?GENERAL?=?90?HARD?=?120?SPECIAL?=?160?};//數獨的難度,挖去多少數字
????????enum?State?{?UNFINISH?SUCCESS?FAIL?};//任意時刻數獨的狀態
????????static?int[]?table?=?new?int[RANK?RANK];//數獨表,空白元素為0
????????static?int[]?answer?=?new?int[RANK?RANK];//完整的九宮格
????????static?int[]?player?=?new?int[RANK?RANK];//玩家輸入的答案
????????string?curBox?=?““;?//當前處理的textbox的名稱
????????static?int?solved?=?0;//記錄解的個數
????????static?int[]?ans;
????????//存儲所有可能的解
????????class?Chart
????????{
????????????public?int[]?ans;
????????????public?Chart()
????????????{
????????????????ans?=?new?int[RANK?RANK];
????????????}
????????}
????????static?Chart[]?proAns?=?new?Chart[MAX];
#if?DEBUG
????????//測試數獨,為法國決賽題,含24個數字,有唯一解
????????int[]?test?=?new?int[NN]
????????{
????????????{000750000}
????????????{030048020}
????????????{100000006}
????????????{040000008}
????????????{790000031}
????????????{200000070}
????????????{500000007}
????????????{080320040}
????????????{000069000}
????????};
????????//高階數獨求解測試
????????int[]?test?=?new?int[N?N]
????????{
????????????{160009007110060001}
????????????{070900128320016060}
????????????{00200601160800400}
????????????{1086111421516413009070}
????????????{120001300111000800016}
????????????{0100070159011000120}
????????????{001328319514161261100}
????????????{001600001010000800}
????????????{1411903401280750612}
????????????{001200005600001500}
????????????{0010171513624129111400}
????????????{35761181021310140090}
????????????{1500701031209020010}
????????????{02501200141500403160}
????????????{001116010941462012700}
????????????{4381200013700014000}
????????};
????????void?solveTest()
????????{
????????????Soduku_Gen(test);
????????????sloved?=-1;
????????????for(int?i=0;i ????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-03-21?10:25??Soduku_v5\
?????文件?????????586??2016-03-16?11:34??Soduku_v5\1.txt
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\Setup1\
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\Setup1\Express\
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\Setup1\Express\Interm\
?????文件???????40960??2015-09-09?01:01??Soduku_v5\Setup1\Setup1\Express\Interm\_IsIcoRes.Exe
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\Setup1\Express\SingleImage\
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\Setup1\Express\SingleImage\DiskImages\
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\Setup1\Express\SingleImage\DiskImages\DISK1\
?????文件?????2067408??2015-11-13?16:35??Soduku_v5\Setup1\Setup1\Express\SingleImage\DiskImages\DISK1\setup.exe
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\Setup1\Express\SingleImage\LogFiles\
?????文件???????12196??2015-11-13?16:35??Soduku_v5\Setup1\Setup1\Express\SingleImage\LogFiles\11-13-2015?04-35-45?下午.txt
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\Setup1\Express\SingleImage\Reports\
?????文件???????14068??2015-11-13?16:35??Soduku_v5\Setup1\Setup1\Express\SingleImage\Reports\11-13-2015?04-35-51?下午.htm
?????目錄???????????0??2016-03-21?10:25??Soduku_v5\Setup1\Setup1\Express\SingleImage\TestTools\
?????目錄???????????0??2015-11-20?16:46??Soduku_v5\Setup1\Setup_soduku\
?????目錄???????????0??2015-11-20?17:35??Soduku_v5\Setup1\Setup_soduku\Express\
?????目錄???????????0??2015-11-20?17:36??Soduku_v5\Setup1\Setup_soduku\Express\Interm\
?????文件???????40960??2015-09-09?01:01??Soduku_v5\Setup1\Setup_soduku\Express\Interm\_IsIcoRes.Exe
?????目錄???????????0??2015-11-20?17:35??Soduku_v5\Setup1\Setup_soduku\Express\SingleImage\
?????目錄???????????0??2015-11-20?17:35??Soduku_v5\Setup1\Setup_soduku\Express\SingleImage\DiskImages\
?????目錄???????????0??2015-11-20?17:36??Soduku_v5\Setup1\Setup_soduku\Express\SingleImage\DiskImages\DISK1\
?????文件?????2071016??2015-11-20?17:36??Soduku_v5\Setup1\Setup_soduku\Express\SingleImage\DiskImages\DISK1\setup.exe
?????目錄???????????0??2015-11-20?17:35??Soduku_v5\Setup1\Setup_soduku\Express\SingleImage\LogFiles\
?????文件???????12228??2015-11-20?17:36??Soduku_v5\Setup1\Setup_soduku\Express\SingleImage\LogFiles\11-20-2015?05-35-45?下午.txt
?????目錄???????????0??2015-11-20?17:36??Soduku_v5\Setup1\Setup_soduku\Express\SingleImage\Reports\
?????文件???????14068??2015-11-20?17:36??Soduku_v5\Setup1\Setup_soduku\Express\SingleImage\Reports\11-20-2015?05-36-08?下午.htm
?????目錄???????????0??2016-03-21?10:25??Soduku_v5\Setup1\Setup_soduku\Express\SingleImage\TestTools\
?????文件??????610098??2015-11-15?12:14??Soduku_v5\Setup1\Setup_soduku.isl
?????文件????????1825??2015-11-15?12:14??Soduku_v5\Setup1\Setup_soduku.isproj
............此處省略106個文件信息
- 上一篇:C#圖書管理系統三層架構
- 下一篇:S7.NET-EXE.rar
評論
共有 條評論