《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于VB2005的五子棋游戲設(shè)計
基于VB2005的五子棋游戲設(shè)計
來源:微型機與應(yīng)用2014年第4期
陳偉康
(汕尾職業(yè)技術(shù)學(xué)院, 廣東 汕尾516600)
摘要: 參考社會上流行的五子棋游戲,使用VB2005進行程序模擬設(shè)計,,用數(shù)組的變換實現(xiàn)查找功能,,可增加學(xué)生學(xué)習(xí)編寫程序的興趣,,提高《面向?qū)ο蟪绦蛟O(shè)計》課程教學(xué)的效果。
Abstract:
Key words :

摘  要: 參考社會上流行的五子棋游戲,,使用VB2005進行程序模擬設(shè)計,,用數(shù)組的變換實現(xiàn)查找功能,可增加學(xué)生學(xué)習(xí)編寫程序的興趣,,提高《面向?qū)ο蟪绦蛟O(shè)計》課程教學(xué)的效果,。
關(guān)鍵詞: 五子棋游戲; VB2005,; 循環(huán); 數(shù)組

    隨著微軟公司的VS.net系列不斷推出,,VS.net在游戲編程方面的強大特性逐漸顯露出來,,強大功能使之非常適用于各類游戲的開發(fā),本文介紹的是用VB2005模擬系統(tǒng)自帶的掃雷游戲設(shè)計與實現(xiàn),。
1 Visual Studio.NET2005簡介
    Visual Basic.NET以Visual Studio.NET為基礎(chǔ),,是Visual Studio.NET的主要組成部分。它雖然從Visual Basic 6.0發(fā)展而來,,但并不是對Visual Basic 6.0的簡單改良,,而是從基礎(chǔ)開始建立了一個新的平臺。Visual Basic.NET是在現(xiàn)有Visual Basic 6.0基礎(chǔ)之上的一次重大飛躍,,它是一個全新的平臺,,而不是Visual Basic 6.0的一個升級版本。VB2005 是Visual Studio.NET 2005的其中一部分,,主要是以VB2005編寫程序的模式,。
2 五子棋游戲的設(shè)計與實現(xiàn)
    五子棋是起源于中國古代的傳統(tǒng)黑白棋種之一。現(xiàn)代五子棋日文稱之為“連珠”,,英譯為“Renju”,,英文稱之為“Gobang”或“FIR”(Five in a Row的縮寫),亦有“連五子”,、“五子連”,、“串珠”,、“五目”、“五目碰”,、“五格”等多種稱謂,。
    五子棋不僅能增強思維能力,提高智力,,而且富含哲理,,有助于修身養(yǎng)性。五子棋既有現(xiàn)代休閑的明顯特征“短,、平,、快”,又有古典哲學(xué)的高深學(xué)問“陰陽易理”,;它既有簡單易學(xué)的特性,,為人民群眾所喜聞樂見,又有深奧的技巧和高水平的國際性比賽,;它的棋文化源淵流長,,具有東方的神秘和西方的直觀;既有“場”的概念,,亦有“點”的連接,。它是中西文化的交流點,是古今哲理的結(jié)晶,。
    五子棋游戲是社會上流行的一個簡單游戲,,大多數(shù)的人都玩過,游戲的規(guī)則也是很多人都會,,即在一個規(guī)定的二維數(shù)組中,,橫豎撇捺的5個連續(xù)一樣就為勝利。使用VB2005設(shè)計與實現(xiàn)的該游戲既實現(xiàn)了游戲規(guī)則的自動設(shè)定,,又實現(xiàn)了五子棋游戲的各項功能,。
2.1 功能設(shè)計
    五子棋游戲主要有以下功能模塊:(1)級別/等級分管理:設(shè)置五子棋游戲的棋盤大小,根據(jù)游戲者自選等級(程序中暫時設(shè)置了3個等級:初級,,棋盤的維數(shù)是10×10二維,,計算機的自動計算水平簡單,玩家能簡單贏取勝利,,以吸引玩家的注意與好奇;中級,,棋盤的維數(shù)是20×20二維,計算機的自動計算水平有所提高,,玩家不能簡單贏取勝利,,需要用一定的時間與計算才能取得勝利;高級,棋盤的維數(shù)是30×30二維,計算機的自動計算水平為最高,,玩家需要用更多的時間與計算才能取得勝利),使得游戲更加公平合理,。(2)游戲英雄榜:可以存儲游戲者前10名成績。(3)背景顏色:游戲者可以通過按鈕選擇喜歡的游戲背景顏色,。(4)棋子與鼠標(biāo)的背景選擇與更改:選擇玩家喜歡的棋子背景與鼠標(biāo)圖案,,玩家可以選擇先后下棋,以更好地吸引玩家進行游戲。(5)背景音樂:在五子棋游戲進行過程中還提供背景音樂,背景音樂可由游戲者設(shè)置,。(6)幫助文檔:為游戲者提供文檔幫助信息,,包括游戲簡介、界面的使用,、鼠標(biāo)和鍵盤的操作,、游戲規(guī)則、疑難問答,、版本信息等,。
2.2 界面設(shè)計
    游戲界面采用VB.NET2005實現(xiàn)。以初級為例,棋盤為100個的一維數(shù)組,即有100個圖片,在圖1中變換為10×10二維數(shù)組,。

2.3 主要算法設(shè)計
    (1)分別隨機生成100個一維數(shù)組picturebox控件,,把一維數(shù)組轉(zhuǎn)變成10×10二維數(shù)組擺放。在picturebox控件中默認(rèn)顯示為白色背景,,如果用鼠標(biāo)點擊每個圖片就會變成黑色的圓圈,。主要的玩法是,查找周圍橫豎撇捺的連續(xù)相鄰的5個位置的圖片是否相同,,如果相同則勝出,,游戲結(jié)束。所以游戲的主要算法是實現(xiàn)了一個位置的周圍橫豎撇捺的連續(xù)相鄰的5個位置的查找,。如圖2所示。

 

 

    在一個二維的數(shù)組中,,把橫豎撇捺分為4種情況,,橫的時候是把所有的數(shù)組位置查找出來。例如以10×10的數(shù)組為例,,把橫的情況放入一個二維數(shù)組中進行判斷,,利用多重循環(huán)查找連續(xù)5個有相同的標(biāo)記的就為勝出,就是在二維數(shù)組中的每一行進行判斷,,假設(shè)黑棋為1,,白旗為0,只要判斷1與0的個數(shù)即可,,主要關(guān)鍵代碼如下:
      For i = 1 To 10                                     ′橫豎的判斷
            For j = 1 To 6
                For t = j To j + 4
                    p = p + pd(i, t)           ′橫進行判斷的數(shù)組
                    p1 = p1 + pd(t, i)        ′豎進行判斷的數(shù)組
                    If p = 5 Or p1 = 5 Then
                                 ′判斷是否5個連續(xù)相同
                          MsgBox("結(jié)束")
                           p = 0
                            p1 = 0
                    End If
                Next
              p = 0
             p1 = 0
      Next
    Next
    (2) 通過相同的方法判斷出豎,、撇和捺的情況,就可以判斷勝負(fù),主要的算法是用數(shù)組與數(shù)字替換方法,,實現(xiàn)了對兩個玩家的情況判斷,。在人機對決時,計算機玩家可以使用一個隨機的生成落子的位置,,在生成的位置時要分為難度不一等情況,,還要在生成位置中判斷是否存在有棋子,不能重復(fù)放入棋子,,再使用一個計時器控件編寫自動判斷勝負(fù)情況,。本程序在VB2005.NET中調(diào)試運行正常,很好地實現(xiàn)了五子棋的功能,。
    (3) 五子棋的難度等級是使用一個函數(shù)來完成的,,如果出現(xiàn)而立三三、三四,、四四等情況,,就可認(rèn)為勝出。本程序只是實現(xiàn)了3種情況,,還有些情況沒有完成,。例如沒有把程序改成網(wǎng)絡(luò)版,現(xiàn)在只是單機版,;在難度等級設(shè)計中的函數(shù)還不是很完善,,在今后的編寫中將繼續(xù)完善本程序。
3 主要VB2005技術(shù)及編程
    在五子棋游戲中應(yīng)用到了很多的VB2005技術(shù),,使用一維數(shù)組變換生成二維數(shù)組的棋盤,;利用樹結(jié)構(gòu)實現(xiàn)幫助文檔;通過輸入輸出流讀取葉節(jié)點文檔,;采用選項板實現(xiàn)版本信息,;利用多媒體控件實現(xiàn)背景音樂等。使用到了圖片的對應(yīng)綁定顯示,、圖標(biāo)的變換,、數(shù)組變換、游戲的提示,、多媒體播放控件等,。整個游戲綜合性比較強,涉及到控件運用,、算法應(yīng)用,、代碼整理等內(nèi)容,能夠很好地運用VB2005設(shè)計程序,,提高編程能力,,增加學(xué)習(xí)者的興趣,。
    讓學(xué)生參考案例程序進行修改與擴展,起到了舉一反三的效果,,反復(fù)調(diào)試無錯誤的情況下,,使用VB2005程序自帶的打包安裝工具進行打包,再讓學(xué)生熟悉一個軟件的正常安裝與卸載測試,;還有寫出規(guī)范的Word文檔程序設(shè)計說明書,,提交為大作業(yè);最后可以在課堂中集中演示作品并講解,,加強學(xué)生的記憶,更好地提高教學(xué)效果與教學(xué)質(zhì)量,。
    本設(shè)計的程序還存在很多的不足,例如在計算速度上沒能更好地提高效率,,程序擴展案例不夠豐富,。但是在今后的教學(xué)中將不斷完善本程序,使五子棋游戲程序成為一個更好的教學(xué)輔助工具,,希望通過這個實例能夠提高學(xué)生學(xué)習(xí)編寫程序的興趣,,讓更多的人學(xué)習(xí)與運用VB2005編程。
參考文獻
[1] 靳廣斌.Visual Basic 2005程序設(shè)計案例教程[M].北京:北京大學(xué)出版社,,2008.
[2] Microsoft.VB.NET程序設(shè)計語言[M]. 北京:高等教育出版社,,2004.
[3] 孔長征.VB.NET編程實例教程[M].北京:北京希望電子出版社,2002.
[4] 柯勝,,孫進,,鄧志良. 基于Qt4的掃雷游戲的設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2012,31(16):6-8.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。