請問:數獨的VB程式要怎麼寫?
一定要VB程式碼喔!
數獨 是在一個9×9的方格內填1~9的數字的遊戲,其中,這81個方格又被分成了9個「九宮格的區域」,規則是:
1.同一行不能有一樣的數字
2.同一列不能有一樣的數字
3.同一個九宮格內不能有一樣的數字
4.要把81個格子完全填滿
之前爬過文,有大大用VB寫出來,
但是當我看到他放了820個LABEL~
我的臉當場變成~~~~~~~~"囧"
我希望能用81個TEXTBOX當輸入數字的空格,
用一個COMMAND BUTTEN 當確定,按下去出現答案
另外用一個COMMAND BUTTEN當清除空格。
PS:我是企管系學生,不知道為什麼教授要我們寫那麼難的程式,
所以拜託各位大大了!。・゚゚・(>_<;)・゚゚・。
2005-12-12 10:46:33 · 6 個解答 · 發問者 燃燒吧!小宇宙 1 in 電腦與網際網路 ➔ 程式設計
教授是要我們用EXCEL的VBA分析工具箱做的
感覺跟VB一模一樣
但是功能沒有VB好......= =a
2005-12-12 16:55:57 · update #1
請下面的"零"大大,
能不能把執行檔和FRM檔給在下,
非常感謝你!
2005-12-20 13:01:05 · update #2
Option Explicit: DefLng A-Z
Dim 宮格(-1 To 81), 檢查(81 * 30), 狀態$, 步驟, 過關, doEv
Private Sub Command1_Click()
Call 準備: Call 處裡: Call 秀出
End Sub
Sub 準備()
Dim 格, 數, X, Y, X1, Y1, 列, 行, 內列, 內行
For 數 = 0 To 81 * 30: 檢查(數) = -1: Next
For 格 = 0 To 80: 數 = 0
X = 格 Mod 9: Y = 格 \ 9
For 列 = 0 To Y - 1
檢查(格 * 30 + 數) = 列 * 9 + X: 數 = 數 + 1
Next
For 行 = 0 To X - 1
檢查(格 * 30 + 數) = Y * 9 + 行: 數 = 數 + 1
Next
'--------------------------------
X1 = X Mod 3: Y1 = Y Mod 3
For 內列 = 0 To Y1
For 內行 = 0 To 2
If 內列 < Y1 Or 內行 < X1 Then
If 內列 <> Y1 And 內行 <> X1 Then
檢查(格 * 30 + 數) = ((Y \ 3) * 3 + 內列) * 9 + (X \ 3) * 3 + 內行
數 = 數 + 1
End If
End If
Next
Next
Next
步驟 = -1: 狀態 = "下一步驟"
End Sub
Sub 處裡()
Do
Select Case 狀態
Case "下一步驟"
步驟 = 步驟 + 1
If 步驟 >= 81 Then
狀態 = "找到答案"
Else
宮格(步驟) = 0: 狀態 = "下一個數"
End If
Case "下一個數"
宮格(步驟) = 宮格(步驟) + 1:
If 宮格(步驟) > 9 Then
狀態 = "上一步驟"
Else
Call 條件檢查: If 過關 Then 狀態 = "下一步驟"
End If
Case "上一步驟"
步驟 = 步驟 - 1:
If 步驟 < 0 Then 狀態 = "運算完畢" Else 狀態 = "下一個數"
End Select
Loop Until 狀態 = "找到答案" Or 狀態 = "運算完畢"
End Sub
Sub 秀出()
Dim 格, 數, 列, 行
Cls
For 列 = 0 To 8
For 行 = 0 To 8
Print 宮格(列 * 9 + 行);
Next: Print
Next
End Sub
Sub 條件檢查()
Dim 數
過關 = True
For 數 = 步驟 * 30 To 步驟 * 30 + 29
If 宮格(步驟) = 宮格(檢查(數)) Then 過關 = False: 數 = 步驟 * 30 + 30
Next
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
End
End Sub
2005-12-25 12:35:27 補充:
燃燒吧!小宇宙 ,我不知道要怎樣貼上執行檔和FRM檔,請教我,或說明你執行上遇到什麼問題.
2005-12-26 13:47:12 補充:
燃燒吧!小宇宙 ,我以寄出執行檔,表單只要一個Command1,表單的屬性AutoRedraw = true
執行時按Command1,表單左上角就出現答案
1 2 3 4 5 6 7 8 9
4 5 6 7 8 9 1 2 3
7 8 9 1 2 3 4 5 6
2 1 4 3 6 5 8 9 7
3 6 5 8 9 7 2 1 4
8 9 7 2 1 4 3 6 5
5 3 1 6 4 2 9 7 8
6 4 2 9 7 8 5 3 1
9 7 8 5 3 1 6 4 2
2005-12-19 20:13:24 · answer #1 · answered by ? 2 · 0⤊ 0⤋
能給我整個專案擋嗎??
great497@yahoo.com.tw
2011-12-21 16:36:03 · answer #2 · answered by 小卡 1 · 0⤊ 0⤋
我也要執行檔hpsno1@yahoo.com.tw
2006-05-27 23:47:21 · answer #3 · answered by ? 1 · 0⤊ 0⤋
我也要執行檔n4224132@yahoo.com.tw
2006-01-09 13:22:28 · answer #4 · answered by ? 1 · 0⤊ 0⤋
用電子信箱寄給我就好了
我的信箱:
n124248997008@yahoo.com.tw
我有做過幾遍,但是按下確定都沒反應,謝謝零大大了。
2005-12-26 03:39:42 · answer #5 · answered by 燃燒吧!小宇宙 1 · 0⤊ 0⤋
我之前在微風論壇有做過此題目,基本上是使用暴力法跟聯集法解題,類似走迷宮方式讓他從1跑到9,一直去測試,如果錯誤再返回,不過我是用MSFlexGrid來建立方格,並自動建立資料庫來儲存題目,你不妨參考看看:
http://bbs.wefong.com/viewthread.php?tid=533628
2005-12-12 12:09:20 · answer #6 · answered by W.J.S. 7 · 0⤊ 0⤋