數獨(Sudoku,記憶中這個游戲也叫九宮格,可能是我記錯了,應該叫數獨比較准確)
),突然想起去年的時候,因為微博上一篇關於某個外國學者花費3個月,研究出一道只有一種答案的數獨題,然後自己一時熱血湧上,花了3個鐘寫了個程序解了這道題。
每一行、每一列、每一個九宮格中都含有1-9九個數字,且不重復。那就可以根據這一規則來制定解題的流程、邏輯。
_x = , _y = TextBox[,] _tbs = TextBox[_x, _y];
count = [] indexs = <> numbers = ( i = ; i < _x; ++ ( j = ; j < _y; ++ (.IsNullOrEmpty(_tbs[i, j].Text.Trim()) || !.TryParse(_tbs[i, j].Text.Trim(), ns = (ns.Count == (ns.Count <== [= (numbers == tb = _tbs[indexs[], indexs[= numbers[ (numbers.Count > = IList<> GetNums( x, cells = List<TextBox> xstart = x / * = y / * ( i = xstart, iend = xstart + ; i < iend; ++ ( j = ystart, yend = ystart + ; j < yend; ++ nums = List<> ( num = ; num <= ; ++ (nums.Contains(num)) isIn = ( index = ; index < _y; ++ (index != y && !.IsNullOrEmpty(_tbs[x, index].Text.Trim()) && .TryParse(_tbs[x, index].Text.Trim(), val) &&=== (isIn) ( index = ; index < _x; ++ (index != x && !.IsNullOrEmpty(_tbs[index, y].Text.Trim()) && .TryParse(_tbs[index, y].Text.Trim(), val) &&=== (isIn) tb = ( c (c != tb && !.IsNullOrEmpty(c.Text.Trim()) && .TryParse(c.Text.Trim(), val) &&=== (isIn)