【正文】
比賽時,label1會出現(xiàn)對應(yīng)的說明,情形如圖8所示: 圖8.“人”獲得勝利時窗口情形人輸?shù)舯荣悤r,情形如圖9所示 和棋時,情形如圖10所示: 圖11所示為最終游戲界面,圖12為最終設(shè)計窗口 比較圖圖112,不難發(fā)現(xiàn)最終設(shè)計的模板中比原先的多了4個Label控件和2個Timer控件。這樣,不僅僅是寫出了判斷輸贏的程序,而且十分簡潔,別人看的話也是一目了然。這段時間翻的vb書可以跟期末考試之前一學(xué)期翻的vb一樣多了。在起初設(shè)計階段遇到很多困難,程序代碼出錯,輸入出錯,遺漏語句,if語句嵌套邏輯不合理等等,但在自己的不斷檢查和修改下,最終完成了整個程序的設(shè)計。男孩子都是比較愛玩的,我也不例外。計算機會首先選擇最中間位置落子,若中間已被人落子,計算機會在第一格中落子 If a(5).Tag = 0 Then sel = 5 Else sel = 1 End If Else For i = 1 To 9 If a(i).Tag = 0 Then sel = i Exit For End If Next i For i = 1 To 9 Step 2 If a(i).Tag = 0 Then sel = i Exit For End If Next i For i = 1 To 9 If i = 5 Then 39。是狼就要練好牙,是羊就要練好腿。 課程設(shè)計最終還是完成了,在這個炎熱的季節(jié)里,收獲的成果的確讓我感到一陣清涼,有機會的話,真心想嘗試更高級一點的程序設(shè)計,雖然vb我掌握的還不夠深不夠多,但是我感興趣,興趣是最好的老師嘛。三個流程圖不不是很復(fù)雜,但對我這個相當(dāng)于從零開始的人來說,也著實花費一番功夫。在主體上插入具體的小程序,還是比較容易的,慢工出細活,尤為重要的是需要投入相當(dāng)一部分精力去精益求精,這樣你的成果才不會是毛糙的。從我的設(shè)計過程中就可以很明顯的看到,在人機互奕過程中,電腦的計算判斷前提是不讓玩家先獲得勝利贏。一是在游戲已經(jīng)有一方獲得勝利,但玩家試圖繼續(xù)在棋盤下棋時會跳出如下警告對話框: 第二個則是游戲剛開始,玩家沒選擇誰先開始下棋,就嘗試在棋盤上下棋,此次會彈出如下提示對話框: 第三個是游戲重置時,跳出的的提示對話框: 這三個對話框添加方法十分簡單,主要程序語句分別為: msg = MsgBox(游戲已結(jié)束,請重新開始!, 0 + 48, 警告) msg = MsgBox(請選擇誰先開始!, 0 + 48, 提示) msg = MsgBox(您確定要重新開始嗎?, vbYesNo, 提示) 就是幾行簡短的程序語句,整個游戲也變得略微豐富了些,而不是那么死板。當(dāng)“人”位置為(i,5)時,計算機會將(10i)位置占領(lǐng)。它的Tag屬性這里上面已經(jīng)詳細介紹了,這里就不再多提。二、設(shè)計思路與總體方案 用到哪些控件、難點分析、所使用的模塊、過程、變量、數(shù)組、自定義數(shù)據(jù)類型及其相互關(guān)系??必要時給出系統(tǒng)結(jié)構(gòu)圖等圖表。題目的難度相對不高,但牽涉到眾多的知識點。,我設(shè)計的“井字棋”游戲的棋盤是由一個Command控件數(shù)組來實現(xiàn)的。在棋盤繪制好,棋子設(shè)定好的情況下,如何來實現(xiàn)下棋的目的呢?這也是這個小游戲最難的地方。包含1置的勝利情況有(1,2,3)、(1,4,7)、(1,5,9)三種情況;包含5位置的勝利情況有(1,5,9)、(2,5,8)、(3,5,6)、(4,5,6)四種情況。前文中已經(jīng)提到用Command的Tag值來表示棋子,所以我們對于任意一個shuying(x,y,z)判斷是否a(x).Tag = a(y).Tag = a(z).Tag。對于這個情況,我尚未想到解決方法,嘗試了幾次均以失敗告終,這也是這個程序的另外一個不足之處吧。但是不代表成果是完美的。我看來,我已經(jīng)將自己的思路想法和設(shè)計過程很圓滿的表達出來了。電腦不能在這個格子上落子 sum = sum + 1 39。能干的人,不在情緒上計較,只在做事上認真;無能的人!不在做事上認真,只在情緒上計較。設(shè)置一個表達式用來存儲程序中需要的額外數(shù)據(jù),0代表人 Next i = If Option1(0).Value = True Then Call diannao End IfEnd SubPrivate Sub Form_Load() For i = 1 To 9 Set a(i) = Command1(i 1) 39。這些都不是很難。我做事喜歡迅速的完成而不是拖拉,所以連續(xù)兩個晚上弄的比較晚。本來,我也準備給這個游戲設(shè)計三個難度“Easy”、“Normal”、“Hard”,可惜做的過程中發(fā)現(xiàn),要實現(xiàn)這個目標,程序就要做大的改動,而且一改動我也沒辦法還原,還使得原本正常的程序出現(xiàn)錯誤而運行不了,所以后來就放棄了。這個真心是困擾我很久,而且沒用很好的辦法解決。Case 1 “人”有沒有占了(2,3)、(4,7)兩個位置,若是的話,計算機會在1位置落子,若不是,計算機會按照原來的程序從1到9在沒有落子位置落子;Case 2 “人”有沒有占了(1,3)位置,若是的話,計算機會在2位置落子,若不是,計算機會按照原來的程序從1到9在沒有落子位置落子;Case 3 “人”有沒有占了(1,2)、(6,9)兩個位置,若是的話,計算機會在3位置落子,若不是,計算機會按照原來的程序從1到9在沒有落子位置落子;Case 4 “人”有沒有占了(1,7)、(4,6)兩個位置,若是的話,計算機會在4位置落子,若不是,計算機會按照原來的程序從1到9在沒有落子位置落子;Case 6 “人”有沒有占了(3,9)位置,若是的話,計算機會在6位置落子,若不是,計算機會按照原來的程序從1到9在沒有落子位置落子;Case 7 “人”有沒有占了(1,4)、(8,9)兩個位置,若是的話,計算機會在7位置落子,若不是,計算機會按照原來的程序從1到9在沒有落子位置落子;