版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生畢業(yè)設(shè)計(jì)</b></p><p> 學(xué) 院: 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 設(shè)計(jì)題目: 多人分組對(duì)戰(zhàn)俄羅斯方塊的研究與實(shí)現(xiàn) </p&g
2、t;<p> 專(zhuān) 題: </p><p> 指導(dǎo)教師: 職 稱(chēng): 講師 </p><p> 2008 年 6 月 徐州</p><p><b> 畢業(yè)設(shè)計(jì)任務(wù)書(shū)</b></p>
3、<p> 任務(wù)下達(dá)日期: 2008 年 1 月 15 日</p><p> 畢業(yè)設(shè)計(jì)日期: 2008 年 2 月 25 日至 2008 年 6 月 20 日</p><p> 畢業(yè)設(shè)計(jì)題目: 多人分組對(duì)戰(zhàn)俄羅斯方塊的研究與實(shí)現(xiàn)</p><p><b> 畢業(yè)設(shè)計(jì)專(zhuān)題題目:</b></p><p
4、> 畢業(yè)設(shè)計(jì)主要內(nèi)容和要求:</p><p> 軟件系統(tǒng)應(yīng)提供一個(gè)方便實(shí)用的用戶(hù)界面。</p><p><b> 實(shí)現(xiàn)多人網(wǎng)絡(luò)對(duì)戰(zhàn)。</b></p><p> 根據(jù)消層情況獲得道具,并能夠使用道具進(jìn)行攻擊。</p><p><b> 可以進(jìn)行分組對(duì)戰(zhàn)</b></p>&
5、lt;p> 認(rèn)真工作,依照任務(wù)進(jìn)度表按時(shí)完成任務(wù)</p><p> 6. 論文要闡述系統(tǒng)開(kāi)發(fā)所用到的理論,介紹整個(gè)軟件開(kāi)發(fā)的過(guò)程。</p><p> 7. 進(jìn)行系統(tǒng)需求分析,系統(tǒng)分析,系統(tǒng)設(shè)計(jì)。</p><p> 8. 介紹開(kāi)發(fā)過(guò)程中用到的關(guān)鍵技術(shù)以及遇到的困難和解決的方法。</p><p> 9. 論文要求內(nèi)容規(guī)范。
6、</p><p> 畢業(yè)設(shè)計(jì)要求采用的技術(shù)有:一種程序開(kāi)發(fā)語(yǔ)言及相關(guān)開(kāi)發(fā)工具,Scoket編程技術(shù),軟件工程知識(shí)。</p><p> 院長(zhǎng)簽字: 指導(dǎo)教師簽字:</p><p><b> 摘 要</b></p><p> 俄羅斯方塊游戲是一種比較經(jīng)典的游戲,研究它具有一定的價(jià)
7、值和意義。但目前的俄羅斯方塊多以單機(jī)版為主,游戲交互性弱、可玩性差,存在很大的弊端。利用網(wǎng)絡(luò)通信技術(shù)、圖形界面、多媒體等技術(shù)可以支持多人分組對(duì)戰(zhàn),提高游戲的可玩性,彌補(bǔ)傳統(tǒng)俄羅斯方塊的不足。</p><p> 本文在分析研究傳統(tǒng)俄羅斯方塊的基礎(chǔ)上,借助C/S軟件模型,將CSocket套接字技術(shù)移植到俄羅斯方塊中實(shí)現(xiàn)了多人分組對(duì)戰(zhàn)模式。將傳統(tǒng)的人機(jī)對(duì)戰(zhàn)變成人與人對(duì)戰(zhàn),增強(qiáng)了游戲的交互性。利用GDI圖形界面繪制技術(shù)
8、和多媒體技術(shù)使游戲畫(huà)面變得更加生動(dòng),并且動(dòng)態(tài)顯示各游戲玩家的游戲進(jìn)展情況,改善了玩家的視覺(jué)、聽(tīng)覺(jué)感受。游戲中的各個(gè)玩家通過(guò)自定義消息來(lái)進(jìn)行交互,他們可以組隊(duì)進(jìn)行游戲,可分為自由人、藍(lán)隊(duì)、橙隊(duì)和紅隊(duì)。各玩家之間除了可以相互聊天外,還可以相互攻擊和援助。</p><p> 實(shí)驗(yàn)表明,經(jīng)過(guò)擴(kuò)展后的俄羅斯方塊游戲畫(huà)面更加活潑,游戲方式更加靈活,游戲的交互性更強(qiáng),游戲可玩性大大提高。</p><p&g
9、t; 關(guān)鍵詞:多人分組對(duì)戰(zhàn)俄羅斯方塊;CSocket技術(shù);GDI圖形繪制;多媒體技術(shù) </p><p><b> ABSTRACT</b></p><p> Tetris game is a classic game .It is valuable to research. But current games are mainly single plane ve
10、rsion, lack of interaction, and can not be played easily. By using network communication technology, graphical interface, multimedia and other technology, the game introduced in this paper can support group antagonizing,
11、 be more easily played and make up the shortcomings of traditional versions.</p><p> Based on the analysis of traditional versions, CSocket is transplanted to the game to achieve groups antagonizing mode, w
12、hich changes the traditional man-machine model into man-man model and enhance the interaction in the game. GDI and multimedia technologies make the game more lively, display the progress of every player dynamically and i
13、mprove the visual and auditory experience. The various players interact by customizing the information in the game. They can team up for the game. There are fr</p><p> The experiments show that the expansio
14、n can make the game more lively, make it more flexible in playing the game, make the game more interactive and enable the game to be played more easily.</p><p> Keywords: Tetris of more groups antagonizing;
15、 CSocket; GDI graphics rendering; Multimedia technology</p><p><b> 目 錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 俄羅斯方塊游戲簡(jiǎn)介1</p><p> 1.2 多人分組
16、對(duì)戰(zhàn)俄羅斯方塊與傳統(tǒng)俄羅斯方塊的異同2</p><p> 1.3 本論文的主要內(nèi)容與組織結(jié)構(gòu)3</p><p> 2 多人分組對(duì)戰(zhàn)俄羅斯方塊的分析與設(shè)計(jì)4</p><p> 2.1 多人分組對(duì)戰(zhàn)俄羅斯方塊的設(shè)計(jì)原理4</p><p> 2.2 需求分析8</p><p> 2.2.1 數(shù)據(jù)流圖9&
17、lt;/p><p> 2.2.2 數(shù)據(jù)字典11</p><p> 2.3 概要設(shè)計(jì)12</p><p> 2.3.1 功能定義12</p><p> 2.3.2 游戲框架設(shè)計(jì)14</p><p> 2.3.3 技術(shù)、風(fēng)險(xiǎn)預(yù)測(cè)15</p><p><b> 3 詳細(xì)設(shè)計(jì)
18、17</b></p><p> 3.1 系統(tǒng)組成及功能描述17</p><p> 3.2 系統(tǒng)登錄模塊設(shè)計(jì)17</p><p> 3.3 游戲算法實(shí)現(xiàn)模塊19</p><p> 3.4 網(wǎng)絡(luò)通信模塊23</p><p> 3.5 游戲界面繪制模塊25</p><p&
19、gt; 3.5.1 游戲初始界面25</p><p> 3.5.2 游戲準(zhǔn)備界面27</p><p> 3.5.3 游戲開(kāi)始界面28</p><p> 3.5.4 游戲結(jié)束界面32</p><p> 4 多人分組對(duì)戰(zhàn)俄羅斯方塊的實(shí)現(xiàn)36</p><p> 4.1 多人分組對(duì)戰(zhàn)俄羅斯方塊的實(shí)現(xiàn)原理
20、36</p><p> 4.2 多人分組對(duì)戰(zhàn)俄羅斯方塊核心功能實(shí)現(xiàn)37</p><p> 5 系統(tǒng)測(cè)試與維護(hù)40</p><p> 5.1 軟件測(cè)試概述40</p><p> 5.2 多人分組對(duì)戰(zhàn)俄羅斯方塊測(cè)試40</p><p> 5.2.1 登錄階段測(cè)試40</p><p&g
21、t; 5.2.2 游戲開(kāi)始前的準(zhǔn)備階段測(cè)試41</p><p> 5.2.3 游戲進(jìn)行階段測(cè)試42</p><p> 5.2.4 游戲結(jié)束階段測(cè)試42</p><p><b> 結(jié)論43</b></p><p><b> 參考文獻(xiàn)44</b></p><p&g
22、t;<b> 英文原文45</b></p><p><b> 中文譯文50</b></p><p><b> 致 謝53</b></p><p><b> 1 緒論</b></p><p> 1.1 俄羅斯方塊游戲簡(jiǎn)介 </p>
23、;<p> “俄羅斯方塊”由莫斯科科學(xué)學(xué)院程序員Alexei Pajitnov所設(shè)計(jì)。1985年6月工作于莫斯科科學(xué)計(jì)算機(jī)中心的阿列克謝·帕基特諾夫在玩過(guò)一個(gè)拼圖游戲之后受到啟發(fā),從而制作了一個(gè)以Electronica 60(一種計(jì)算機(jī))為平臺(tái)的俄羅斯方塊的游戲。后來(lái)經(jīng)瓦丁·格拉西莫夫(Vadim Gerasimov)移植到PC上,并且在莫斯科的電腦界傳播。實(shí)際上,在游戲發(fā)明后的數(shù)年間,“俄羅斯方塊”
24、成了無(wú)數(shù)場(chǎng)專(zhuān)利官司和法律糾紛的目標(biāo),而許多公司也不遺余力地上陣廝殺,想要將游戲的創(chuàng)意據(jù)為己有。一個(gè)最初的版本是Spectrum Holobyte為IBM兼容機(jī)開(kāi)發(fā)的游戲。1988年,“俄羅斯方塊”在街機(jī)上也變得非常流行,這都要?dú)w功于Atari,因?yàn)樗麄儼l(fā)布了一個(gè)能讓兩名玩家同時(shí)游戲的版本。 </p><p> 還是在1988年,Tengen為任天堂娛樂(lè)系統(tǒng)發(fā)布了“俄羅斯方塊”的一個(gè)優(yōu)秀版本,但它很快便從貨架上撤
25、掉了,因?yàn)槿翁焯弥缚卦摴厩址赴鏅?quán)。后來(lái),任天堂把那個(gè)版本的“俄羅斯方塊”換成了自己的版本,可是新版本卻缺乏Tengen版的雙人對(duì)打模式和出色的音樂(lè)。到了1989年,任天堂著手將一個(gè)移動(dòng)版本的“俄羅斯方塊”與當(dāng)時(shí)嶄新的GBA系統(tǒng)捆綁出售。GBA后來(lái)成為有史以來(lái)銷(xiāo)售成績(jī)最佳的游戲系統(tǒng),對(duì)此,“俄羅斯方塊”作出了不小的貢獻(xiàn)。 這次產(chǎn)權(quán)爭(zhēng)奪,幾家歡喜,幾家哀愁,幾家公司倒閉,幾家公司賺錢(qián),其中的是是非非,一言難盡。</p>
26、<p> 目前“俄羅斯方塊”游戲已經(jīng)有了很大的發(fā)展。國(guó)內(nèi)從以前的掌上游戲移</p><p> 植到了電腦、手機(jī)等平臺(tái)。游戲的畫(huà)面、功能都有了很大的提高。例如有名的QQ游戲中的“火拼俄羅斯方塊”、邊鋒游戲大廳中的“俄羅斯方塊”等。國(guó)外“俄羅斯方塊游戲”也有很大發(fā)展。電腦上、手機(jī)上、PSP上、各種網(wǎng)站上都有它的身影?!岸砹_斯方塊”游戲從誕生到現(xiàn)在已經(jīng)幾十年了,它一直伴隨著我們,一直在不斷的成長(zhǎng)。沒(méi)有人
27、認(rèn)為它會(huì)消失,將來(lái)它也會(huì)不斷的發(fā)展下去。隨著高科技電子產(chǎn)品的不斷涌現(xiàn),“俄羅斯方塊”將以他們?yōu)檩d體繼續(xù)隨時(shí)間洪流傳播到世界的每一個(gè)角落?!岸砹_斯方塊”不僅會(huì)擴(kuò)大傳播介質(zhì),同時(shí)自身的功能的多樣化、界面的美化、操作的簡(jiǎn)化、特效、魔法等技術(shù)都會(huì)在將來(lái)得到很大的發(fā)展。例如可以將游戲地圖變成各種各樣的形狀而不再是單一的矩形地圖;還可以改變游戲時(shí)運(yùn)動(dòng)方塊的形狀;也可以增加鍵盤(pán)鼠標(biāo)事件并以特殊的功能去響應(yīng)這樣的事件(例如連續(xù)點(diǎn)擊鼠標(biāo)時(shí)可以使運(yùn)動(dòng)方塊發(fā)
28、射子彈等)。</p><p> “俄羅斯方塊游戲”早在十幾年前它就風(fēng)靡全球,成為大家津津樂(lè)道的話(huà)題。從掌上游戲機(jī)到PC機(jī),從單調(diào)的黑白畫(huà)面到絢麗多彩的QQ游戲畫(huà)面?!岸砹_斯方塊”始終跟隨著人們一起發(fā)展、進(jìn)步。許多游戲轟轟烈烈的誕生沒(méi)多久就悄然而去,然而“俄羅斯方塊”卻長(zhǎng)久不衰,仿佛它已經(jīng)成為了我們的一部分,將永遠(yuǎn)伴隨著我們?nèi)ラ_(kāi)辟未來(lái),帶給我們更多的歡笑?!岸砹_斯方塊”是一款集休閑、娛樂(lè)、益智于一體的游戲,適合各
29、種人群。它的實(shí)現(xiàn)方法簡(jiǎn)單,但靈活多變,通過(guò)研究“俄羅斯方塊”,在原來(lái)的技術(shù)上演變出更多、更新的版本也是一件很有意義的事情。同時(shí),由于“俄羅斯方塊”的廣泛傳播也帶來(lái)了很大的商業(yè)價(jià)值。怎樣開(kāi)發(fā)出更新、更吸引人的“俄羅斯方塊”游戲也成為許多游戲公司的首要任務(wù)。</p><p> 1.2 多人分組對(duì)戰(zhàn)俄羅斯方塊與傳統(tǒng)俄羅斯方塊的異同</p><p> 多人分組對(duì)戰(zhàn)俄羅斯方塊是傳統(tǒng)單機(jī)版俄羅斯方
30、塊的擴(kuò)展,因此,它們具有許多相似之處。同時(shí),多人分組對(duì)戰(zhàn)俄羅斯方塊游戲的設(shè)計(jì)原理又有了很大的改變,游戲方式也不再相同,它們也有許多不同的地方。</p><p><b> (1) 相同點(diǎn):</b></p><p> 1) 游戲算法相同:多人分組對(duì)戰(zhàn)俄羅斯方塊與傳統(tǒng)俄羅斯方塊主要的相同點(diǎn)在游戲算法上。經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,俄羅斯方塊游戲的算法已經(jīng)發(fā)展成熟,因此本文并沒(méi)有作
31、多大的改變。游戲算法主要由運(yùn)動(dòng)方塊的隨機(jī)產(chǎn)生、方塊下移、左移、右移、直接下落、變換、方塊觸界檢測(cè)、消層等多個(gè)模塊組成。它們的實(shí)現(xiàn)原理基本相同。</p><p> 2) 游戲邏輯相同:游戲從運(yùn)動(dòng)方塊的產(chǎn)生、消層到游戲結(jié)束,整過(guò)流程是相同的。</p><p><b> (2) 異同點(diǎn):</b></p><p> 1) 設(shè)計(jì)模式不同:傳統(tǒng)俄羅斯
32、方塊游戲多是單機(jī)版,只能供一個(gè)人游玩;而多人分組對(duì)戰(zhàn)俄羅斯方塊是基于C/S的設(shè)計(jì)模式,支持網(wǎng)絡(luò)互聯(lián),可以多人游玩。</p><p> 2) 對(duì)戰(zhàn)模式不同:傳統(tǒng)俄羅斯方塊游戲是人機(jī)對(duì)戰(zhàn),缺乏交互性;而多人分組對(duì)戰(zhàn)俄羅斯方塊是多人分組對(duì)站。即最多六個(gè)玩家可以以自由人、澄隊(duì)、藍(lán)隊(duì)、紅隊(duì)四種身份進(jìn)行游戲。</p><p> 3) 游戲交互程度不同:傳統(tǒng)俄羅斯方塊主要是人機(jī)交互,形式比較單調(diào),且
33、交互較少;而多人分組對(duì)戰(zhàn)俄羅斯方塊游戲主要是人與人的交互,且交互形式多樣,比較靈活。例如玩家之間可以相互聊天等。</p><p> 4) 游戲的趣味性不同:傳統(tǒng)俄羅斯方塊游戲游戲方式較單一,趣味性較低;而多人分組對(duì)戰(zhàn)俄羅斯方塊中每個(gè)玩家都可以看見(jiàn)其他玩家的游戲進(jìn)行情況,對(duì)手較多,且還有敵友之分,游戲中可以獲得道具,并使用道具對(duì)敵方進(jìn)行攻擊,對(duì)盟友或自己進(jìn)行援助,再加上游戲音效。使游戲玩家始終感覺(jué)到他不是一個(gè)人在
34、游戲,而是身處一個(gè)團(tuán)隊(duì)中共同游戲,這樣使游戲趣味性大大增加。</p><p> 5) 游戲結(jié)束方式不同:傳統(tǒng)俄羅斯方塊游戲沒(méi)有游戲勝負(fù)之分,以方塊到達(dá)游戲區(qū)域頂端為游戲結(jié)束,以游戲消層數(shù)量來(lái)計(jì)算游戲得分;而多人分組對(duì)戰(zhàn)俄羅斯方塊以方塊到達(dá)游戲區(qū)域頂端作為本游戲玩家游戲結(jié)束的標(biāo)志,但并不作為游戲勝負(fù)的依據(jù)。游戲以最終存活下來(lái)的一個(gè)分組作為游戲的勝利方,其他玩家作為游戲失敗方。且游戲得分不以消層數(shù)量為計(jì)算依據(jù),而是
35、以游戲名次來(lái)計(jì)算。并且游戲結(jié)束后會(huì)將游戲結(jié)果寫(xiě)入數(shù)據(jù)庫(kù),并重新顯示玩家的游戲基礎(chǔ)信息。</p><p> 總之,多人分組對(duì)戰(zhàn)俄羅斯方塊游戲和傳統(tǒng)俄羅斯方塊游戲相比有了很大的進(jìn)步,提高了游戲方式的多樣化,增加了游戲的趣味性,使游戲具有了更大的可玩性。</p><p> 1.3 本論文的主要內(nèi)容與組織結(jié)構(gòu)</p><p> 本文主要介紹了利用CSocket、GDI
36、、多媒體技術(shù)對(duì)傳統(tǒng)俄羅斯方塊進(jìn)行擴(kuò)展,形成多人分組對(duì)戰(zhàn)俄羅斯方塊的具體原理和方法。</p><p> 全文主要分為五部分。第一章為緒論,簡(jiǎn)單介紹了俄羅斯方塊的起源及發(fā)展歷程,比較了傳統(tǒng)俄羅斯方塊與多人分組對(duì)戰(zhàn)俄羅斯方塊的異同,明確了研究俄羅斯方塊的意義和方向。指出了本文所要做的工作。第二章介紹了多人分組對(duì)戰(zhàn)俄羅斯方塊的設(shè)計(jì)原理,包括實(shí)現(xiàn)需要的技術(shù)介紹。在對(duì)設(shè)計(jì)原理進(jìn)行分析的基礎(chǔ)上,初步設(shè)計(jì)了多人分組對(duì)戰(zhàn)俄羅斯方
37、塊游戲系統(tǒng)需求分析、功能定義、游戲框架等,并對(duì)系統(tǒng)開(kāi)發(fā)中需要的技術(shù)和可能承擔(dān)的風(fēng)險(xiǎn)進(jìn)行預(yù)測(cè)。第三章是全文最主要的部分,主要介紹了多人分組對(duì)戰(zhàn)俄羅斯方塊游戲的實(shí)現(xiàn)過(guò)程。本章分為五個(gè)小節(jié),第一小節(jié)是對(duì)整個(gè)系統(tǒng)功能的概述,其余四小節(jié)分別從四個(gè)模塊對(duì)游戲的實(shí)現(xiàn)進(jìn)行了分析介紹。全章以模塊化分析的方式系統(tǒng)的闡明了該系統(tǒng)的組成及實(shí)現(xiàn)過(guò)程。第四章、第五章是在系統(tǒng)各功能設(shè)計(jì)已經(jīng)完成的基礎(chǔ)上,對(duì)游戲系統(tǒng)的集成和測(cè)試。介紹了游戲的工作流程和游戲運(yùn)行階段的維護(hù)
38、。最后,總結(jié)了本次畢業(yè)設(shè)計(jì)的主要內(nèi)容和成果。</p><p> 全文從俄羅斯方塊的歷史介紹到多人分組對(duì)戰(zhàn)俄羅斯方塊的實(shí)現(xiàn)闡述,從游戲系統(tǒng)的功能設(shè)計(jì)到系統(tǒng)集成測(cè)試,由淺入深,循序漸進(jìn)的闡明了整個(gè)系統(tǒng)的設(shè)計(jì)原理和實(shí)現(xiàn)過(guò)程。</p><p> 2 多人分組對(duì)戰(zhàn)俄羅斯方塊的分析與設(shè)計(jì)</p><p> 2.1 多人分組對(duì)戰(zhàn)俄羅斯方塊的設(shè)計(jì)原理</p>&
39、lt;p> 多人對(duì)戰(zhàn)俄羅斯方塊游戲的設(shè)計(jì)是單機(jī)版俄羅斯方塊游戲設(shè)計(jì)的擴(kuò)展,在原來(lái)的基礎(chǔ)上加入網(wǎng)絡(luò)互聯(lián),使原來(lái)的人機(jī)交互模式變成了人人交互模式。也就是說(shuō)俄羅斯方塊游戲本身的算法沒(méi)有多大的變化,只是在其中融入了一些新的技術(shù)和新的游戲理念。如圖形界面、多媒體、多人分組等設(shè)計(jì)思想。</p><p> 多人分組對(duì)戰(zhàn)俄羅斯方塊游戲與單機(jī)版俄羅斯方塊游戲有很大的區(qū)別,它們的模型如圖2-1所示。</p>
40、<p> 圖2-1 單機(jī)版俄羅斯方塊游戲模型圖</p><p> 而多人分組對(duì)戰(zhàn)俄羅斯方塊游戲模型如圖2-2所示。</p><p> 圖2-2 多人分組對(duì)戰(zhàn)俄羅斯方塊游戲模型圖</p><p> 從圖2-1、2-2中可以看出兩種游戲模型有較大的差異,多人對(duì)戰(zhàn)俄羅斯方塊更加多樣化。單機(jī)版俄羅斯方塊游戲注重人機(jī)交互,而對(duì)人對(duì)戰(zhàn)俄羅斯方塊游戲注重人與人的
41、交互。</p><p> 多人分組對(duì)戰(zhàn)俄羅斯方塊游戲仍然設(shè)計(jì)為C/S模型【3】。服務(wù)器端主要功能是接受客戶(hù)端的連接,接收并處理客戶(hù)端發(fā)來(lái)的消息,將處理結(jié)果反饋給各客戶(hù)端??蛻?hù)端是游戲的主系統(tǒng),玩家首先通過(guò)登錄系統(tǒng)進(jìn)入游戲界面,通過(guò)各種操作完成游戲開(kāi)始前的準(zhǔn)備工作。當(dāng)所有玩家都準(zhǔn)備就緒后進(jìn)入游戲,此時(shí)玩家操作鍵盤(pán)來(lái)完成游戲。</p><p> 游戲游玩的原理如圖2-3所示。</p&
42、gt;<p> 圖2-3 多人分組對(duì)戰(zhàn)俄羅斯方塊游戲原理圖</p><p> 游玩游戲需要經(jīng)歷以下步驟:</p><p> (1) 在游戲服務(wù)器已經(jīng)建立的情況下,運(yùn)行客戶(hù)端進(jìn)入游戲登錄直系統(tǒng)。輸入服務(wù)器地址、用戶(hù)帳號(hào)、用戶(hù)密碼,進(jìn)入系統(tǒng)認(rèn)證狀態(tài)。登錄模塊從數(shù)據(jù)庫(kù)中提取用戶(hù)信息(ID、昵稱(chēng)、密碼、等級(jí)、積分、登錄標(biāo)志等)進(jìn)行驗(yàn)證【2】。驗(yàn)證通過(guò)則進(jìn)入游戲主系統(tǒng),否則返回初
43、始登錄界面。</p><p> 需要技術(shù):ADO遠(yuǎn)程連接數(shù)據(jù)庫(kù)、身份驗(yàn)證【1】。</p><p> 實(shí)現(xiàn)原理:在SQL2000上裝上SP4的補(bǔ)丁,利用成熟的ADO數(shù)據(jù)庫(kù)連接技術(shù),封裝ADO連接類(lèi),實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接;封裝CUser類(lèi)實(shí)現(xiàn)數(shù)據(jù)庫(kù)中userinfo數(shù)據(jù)表的讀寫(xiě),根據(jù)玩家輸入信息從數(shù)據(jù)庫(kù)讀取相應(yīng)內(nèi)容完成身份認(rèn)證。</p><p> (2) 通過(guò)身份認(rèn)證
44、后,進(jìn)入游戲主系統(tǒng),游戲根據(jù)玩家輸入的服務(wù)器地址連接到服務(wù)器。連接成功則初始化游戲界面,進(jìn)入游戲準(zhǔn)備狀態(tài),否則返回到游戲登錄初始界面或退出游戲。</p><p> 需要技術(shù):CSocket套接字技術(shù)【9】。</p><p> 實(shí)現(xiàn)原理:套接字(socket)是一種網(wǎng)絡(luò)編程接口,它是對(duì)通信端點(diǎn)的一種抽象,提供了一個(gè)發(fā)送和接收數(shù)據(jù)的機(jī)制。套接字技術(shù)最先應(yīng)用于unix系統(tǒng),后來(lái)移植到wind
45、ows系統(tǒng),有了Winsock API。經(jīng)過(guò)對(duì)Winsock API的低層封裝產(chǎn)生了CAsyncSocket類(lèi),經(jīng)過(guò)高層次的封裝產(chǎn)生了CSocket類(lèi)。 CSocket進(jìn)行通信的過(guò)程很簡(jiǎn)單。服務(wù)器首先啟動(dòng),通過(guò)調(diào)用socket函數(shù)建立一個(gè)套接口,然后調(diào)用bind函數(shù)將該套接口和本地網(wǎng)絡(luò)地址聯(lián)系在一起,再調(diào)用listen函數(shù)使套接口做好偵聽(tīng)的準(zhǔn)備,并規(guī)定它的請(qǐng)求隊(duì)列的長(zhǎng)度,之后就調(diào)用accept函數(shù)來(lái)接收連接??蛻?hù)端在建立套接口之后就可調(diào)
46、用connect函數(shù)來(lái)發(fā)送和接收數(shù)據(jù)。最后,待數(shù)據(jù)傳送結(jié)束后,雙方調(diào)用close函數(shù)關(guān)閉套接口【7】。</p><p> 它的原理如圖2-4所示。</p><p> 圖2-4 Winsock通信原理圖</p><p> CSocket通信技術(shù)類(lèi)似,通過(guò)編寫(xiě)ServerSocket類(lèi),并重載了OnAccept()函數(shù)實(shí)現(xiàn)服務(wù)器套接口的監(jiān)聽(tīng)。編寫(xiě)ClientSoc
47、ket類(lèi),并重載OnReceive()實(shí)現(xiàn)客戶(hù)端數(shù)據(jù)的接收【6】。</p><p> (3) 服務(wù)器連接成功后,將顯示游戲的初始界面。初始界面將根據(jù)玩家在數(shù)據(jù)庫(kù)保存的游戲基礎(chǔ)信息來(lái)顯示。同時(shí)登錄成功時(shí),客戶(hù)端將向服務(wù)器發(fā)送新玩家進(jìn)入游戲的消息,而服務(wù)起得到這個(gè)消息后經(jīng)過(guò)處理,再將處理結(jié)果發(fā)給其他的游戲玩家,這樣其他的游戲玩家就能看見(jiàn)有游戲玩家進(jìn)入游戲。此后,玩家可以操作游戲界面元素完成游戲開(kāi)始前的準(zhǔn)備。例如玩家
48、可以選擇分組、發(fā)送聊天、點(diǎn)擊開(kāi)始按鈕準(zhǔn)備就緒等。同樣,這些事件都將以消息的方式發(fā)送給服務(wù)器,服務(wù)器經(jīng)過(guò)處理后,將結(jié)果發(fā)往目標(biāo)玩家,目標(biāo)玩家就會(huì)了解到自己的游戲情況。</p><p> 需要技術(shù):GDI繪圖技術(shù)【5】、多緩沖繪圖技術(shù)、自定義消息。</p><p> 實(shí)現(xiàn)方法:GDI繪圖是Windows系統(tǒng)下較成熟的窗口繪圖技術(shù)。GDI處理來(lái)自Windows應(yīng)用程序的圖形函數(shù)調(diào)用,然后把這
49、些調(diào)用傳遞給合適的設(shè)備驅(qū)動(dòng)程序,有設(shè)備驅(qū)動(dòng)程序來(lái)執(zhí)行與硬件相關(guān)的函數(shù),并產(chǎn)生最后的輸出結(jié)果。GDI可以看作是一個(gè)應(yīng)用程序與輸出設(shè)備之間的中介,一方面。GDI向應(yīng)用程序提供了一個(gè)設(shè)備無(wú)關(guān)的編程環(huán)境,另一方面,它又以設(shè)備相關(guān)的格式和具體的設(shè)備打交道;多緩沖技術(shù)是以犧牲內(nèi)存為代價(jià)來(lái)消除屏幕的閃爍。單緩沖只有一個(gè)內(nèi)存DC,繪制完成后將該DC輸出到屏幕。而多緩沖有多個(gè)內(nèi)存DC和多幅位圖【4】,首先將所有的繪制操作在內(nèi)存中完成后,再將最終的位圖繪制
50、到屏幕。CSocket提供了Send()和Receive()函數(shù)用于數(shù)據(jù)的發(fā)送和接收。本游戲系統(tǒng)發(fā)送的消息較多,且消息各不相同。因此定義了消息格式,將各種消息的格式統(tǒng)一起來(lái)。</p><p> 例如:新玩家進(jìn)入游戲的消息:“infotype: INTO&group: CYA&”</p><p> 改變分組信息的消息:“infotype: GROU&group:
51、RED&”</p><p> 玩家退出游戲的消息:“infotype: QUIT&”</p><p> 玩家聊天的消息:“infotype: INFO&data: 我進(jìn)來(lái)了?!?lt;/p><p> 這樣的消息還有很多。以上的技術(shù)主要通過(guò)封裝CGame類(lèi)來(lái)實(shí)現(xiàn)。</p><p> (4) 當(dāng)所有進(jìn)入游戲的游戲玩家都
52、準(zhǔn)備就緒之后,就開(kāi)始游戲。游戲中玩家通過(guò)左右鍵、向下鍵來(lái)移動(dòng)運(yùn)動(dòng)方塊,向上鍵來(lái)變換方塊,空格鍵使方塊直接下落。并且根據(jù)玩家的操作不同播發(fā)不同的音樂(lè)。游戲中消層時(shí)可以獲得該層的道具,并通過(guò)1——6的數(shù)字鍵來(lái)使用道具,以達(dá)到相互攻擊和援助的目的。</p><p> 需要技術(shù):GDI繪圖技術(shù)、自定義消息、MCI多媒體技術(shù)【8】、道具技術(shù)。</p><p> 實(shí)現(xiàn)方法:MCI(Media Co
53、ntrol Interface,媒體控制接口)向Windows程序提供了在高層次上控制媒體設(shè)備接口的能力。程序不必關(guān)心具體設(shè)備,就可以對(duì)激光唱機(jī)(CD)、視盤(pán)機(jī)、波形音頻設(shè)備、視頻播放設(shè)備和MIDI設(shè)備等媒體設(shè)備進(jìn)行控制。對(duì)于程序員來(lái)說(shuō),可以把MCI理解為設(shè)備面板上的一排按鍵,通過(guò)選擇不同的按鍵(發(fā)送不同的MCI命令)可以讓設(shè)備完成各種功能,而不必關(guān)心設(shè)備內(nèi)部實(shí)現(xiàn)。比如,對(duì)于play【11】,視盤(pán)機(jī)和CD機(jī)有不同的反應(yīng)(一個(gè)是播放視頻,
54、一個(gè)播放音頻),而對(duì)用戶(hù)來(lái)說(shuō)卻只需要按同一按鈕。通過(guò)調(diào)用MCI的函數(shù)來(lái)實(shí)現(xiàn)音樂(lè)的播放;道具技術(shù)主要是利用隨機(jī)加入的方式,玩家每消掉一層方塊時(shí)就會(huì)產(chǎn)生隨機(jī)數(shù)量的道具方塊。玩家使用道具時(shí),游戲主要根據(jù)接收的消息,利用繪圖技術(shù)實(shí)現(xiàn)道具的功能。這些都在CGame類(lèi)【21】中實(shí)現(xiàn)。</p><p> (5) 當(dāng)只剩下一個(gè)分組每有結(jié)束游戲的時(shí)候,游戲結(jié)束,且該分組取得了游戲的勝利。游戲進(jìn)入結(jié)束清理、還原工作【17】。如計(jì)算
55、各玩家的游戲得分,并將得分寫(xiě)入數(shù)據(jù)庫(kù),同時(shí)更新玩家界面顯示的游戲基礎(chǔ)信息;繪制游戲結(jié)束界面等。</p><p> 需要技術(shù):半透明窗體、半透明繪圖技術(shù)【12】、MCI技術(shù)、自定義消息【14】。</p><p> 實(shí)現(xiàn)方法:半透明繪制技術(shù)主要是將原圖像素點(diǎn)顏色值與現(xiàn)圖對(duì)應(yīng)像素點(diǎn)顏色值進(jìn)行邏輯異或運(yùn)算形成新值來(lái)實(shí)現(xiàn)。</p><p> (6) 一局游戲結(jié)束后,玩家
56、還可以繼續(xù)進(jìn)行游戲,只要加入游戲的人數(shù)不少于兩人。</p><p> 多人分組對(duì)戰(zhàn)俄羅斯方塊游戲設(shè)計(jì)原理較簡(jiǎn)單,但里面的各種事件的處理較煩瑣,且涉及到的編程技術(shù)、技巧較多,稍不注意就可能出錯(cuò)。且作為游戲,系統(tǒng)運(yùn)行的穩(wěn)定性、異常處理、健壯性等也很重要。</p><p> 2.2 需求分析 </p><p> 俄羅斯方塊是我們耳熟能詳?shù)囊豢钚蓍e益智小游戲,老
57、少皆宜。在各大網(wǎng)站和對(duì)戰(zhàn)平臺(tái),以及掌機(jī)上都能見(jiàn)到它的身影。在它給廣大愛(ài)好者帶來(lái)歡樂(lè)的同時(shí),也創(chuàng)造了巨大的商業(yè)價(jià)值。開(kāi)發(fā)出一款的好的俄羅斯方塊游戲具有極大的意義。同時(shí)俄羅斯方塊游戲產(chǎn)生較早,設(shè)計(jì)較簡(jiǎn)單,各方面的技術(shù)已經(jīng)很成熟,要將現(xiàn)有的新技術(shù)加入到其中也是一件很容易的事情。從各方面來(lái)看開(kāi)發(fā)一款別開(kāi)生面的俄羅斯方塊游戲都是一個(gè)不錯(cuò)的選擇。</p><p> 然而,多人對(duì)戰(zhàn)俄羅斯方塊游戲是一種有別于傳統(tǒng)俄羅斯方塊的游
58、戲。傳統(tǒng)的俄羅斯方塊游戲多在掌機(jī)或街機(jī)上,只能由一個(gè)人游玩。游戲缺少玩家的交互,不免游戲單調(diào)。而多人分組對(duì)戰(zhàn)俄羅斯方塊游戲在原來(lái)的基礎(chǔ)上加入了網(wǎng)絡(luò)互聯(lián),可以支持多人分組對(duì)戰(zhàn)。增加了游戲玩家的交互,這是一種全新的設(shè)計(jì)理念。因此也使程序設(shè)計(jì)的難度大大增加。</p><p> 因此多人分組對(duì)戰(zhàn)俄羅斯方塊游戲應(yīng)具有下面的功能:</p><p> 能夠遠(yuǎn)程連接數(shù)據(jù)庫(kù)為用戶(hù)提供登錄驗(yàn)證及玩家游戲信
59、息保存的功能。</p><p> 正確的俄羅斯方塊游戲算法,使玩家能夠暢快的游玩游戲。</p><p> 實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián),可以支持多人對(duì)戰(zhàn),且多個(gè)玩家可以分組對(duì)戰(zhàn)。</p><p> 玩家可以獲得游戲道具,利用道具對(duì)對(duì)手進(jìn)行攻擊,對(duì)自己或盟友進(jìn)行援助。</p><p> 每個(gè)玩家都可以通過(guò)自己的游戲界面清楚的了解到其他玩家的游戲情況。&
60、lt;/p><p> 完善的記分系統(tǒng),能通過(guò)分組情況、游戲名次等信息計(jì)算出每個(gè)玩家的游戲得分,并將得分情況寫(xiě)入數(shù)據(jù)庫(kù)。</p><p> 游戲玩家中可以相互聊天,以此來(lái)增加游戲的交互性和趣味性。</p><p> 游戲要具有友好的人機(jī)界面,如動(dòng)畫(huà)光標(biāo)、音效等。</p><p> 游戲應(yīng)具有較強(qiáng)的健壯性,確保游戲正常運(yùn)行。</p>
61、;<p> 多人分組對(duì)戰(zhàn)俄羅斯方塊游戲的數(shù)據(jù)流程和遵循一般的C/S軟件模型。游戲分為服務(wù)器和客戶(hù)端兩個(gè)軟件。服務(wù)器主要用于接收從客戶(hù)端發(fā)來(lái)的消息,并對(duì)消息進(jìn)行判斷,根據(jù)消息類(lèi)型作出相應(yīng)的處理,將處理結(jié)果發(fā)送給目標(biāo)客戶(hù)端。而客戶(hù)端的功能主要是顯示游戲界面,獲取玩家的操作信息,根據(jù)玩家的操作作出相應(yīng)的處理,并將結(jié)果以消息的形式發(fā)送給服務(wù)器,使自己的游戲情況讓其他玩家了解。</p><p> 2.2.
62、1 數(shù)據(jù)流圖</p><p> 進(jìn)入游戲時(shí)首先要進(jìn)行登錄認(rèn)證,游戲以ADO數(shù)據(jù)庫(kù)連接技術(shù),遠(yuǎn)程連接到SQL2000數(shù)據(jù)庫(kù)。由于本系統(tǒng)不是管理系統(tǒng),只需要記錄游戲玩家的游戲信息,所以數(shù)據(jù)庫(kù)中只建立了一張userinfo數(shù)據(jù)表【11】。該表記錄了玩家?guī)ぬ?hào)、密碼、昵稱(chēng)、游戲等級(jí)、游戲積分、玩家性別等信息。該表主要用于玩家登錄時(shí)從中提取帳號(hào)、密碼等進(jìn)行驗(yàn)證;當(dāng)游戲結(jié)束時(shí)將游戲得分寫(xiě)入數(shù)據(jù)表中。</p>&
63、lt;p> 數(shù)據(jù)庫(kù)頂層數(shù)據(jù)流如圖2-5所示。</p><p> 圖2-5 數(shù)據(jù)庫(kù)頂層數(shù)據(jù)流圖</p><p> 一層數(shù)據(jù)流如圖2-6所示。</p><p> 圖2-6 數(shù)據(jù)一層數(shù)據(jù)流圖</p><p> 二層數(shù)據(jù)流如圖2-7、圖2-8所示。</p><p> 圖2-7 登錄子系統(tǒng)二層數(shù)據(jù)流圖</
64、p><p> 圖2-8 游戲初始化模塊二層數(shù)據(jù)流圖</p><p> 圖2-9 游戲處理模塊二層數(shù)據(jù)流圖</p><p> 2.2.2 數(shù)據(jù)字典</p><p><b> 表2-1 玩家信息</b></p><p><b> 表2-2 登錄信息</b></p>
65、;<p> 表2-3 游戲基礎(chǔ)信息 </p><p> 表2-4 游戲初始化信息</p><p> 表2-5 游戲處理信息</p><p> 表2-6 游戲結(jié)束信息</p><p><b> 2.3 概要設(shè)計(jì)</b></p><p> 2.3.1 功能定義 <
66、;/p><p> 多人對(duì)戰(zhàn)俄羅斯方塊游戲主要以網(wǎng)絡(luò)通信為基礎(chǔ)實(shí)現(xiàn)人與人的交互。它主要包含以下幾大功能模塊:</p><p> (1) 系統(tǒng)登錄模塊</p><p> 該模塊主要提供玩家進(jìn)入游戲時(shí)的認(rèn)證功能。首先建立SQL2000數(shù)據(jù)庫(kù),利用ADO遠(yuǎn)程連接技術(shù)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接。讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù)與用戶(hù)輸入數(shù)據(jù)進(jìn)行比較,如果正確就進(jìn)入游戲主系統(tǒng),否則將返回到登錄界面
67、。</p><p> 層次圖如圖2-9所示。</p><p> 圖2-10 登錄系統(tǒng)層次圖</p><p> (2) 俄羅斯算法模塊</p><p> 該模塊主要實(shí)現(xiàn)俄羅斯方塊游戲的控制。其中它又包括運(yùn)動(dòng)方塊的隨機(jī)產(chǎn)生、方塊下移、左移、右移、直接下落、變換、方塊觸界檢測(cè)、消層等多個(gè)模塊。運(yùn)動(dòng)方塊隨機(jī)產(chǎn)生主要是在一個(gè)運(yùn)動(dòng)方塊到底后,通過(guò)
68、Rand()方法產(chǎn)生下一個(gè)將要出現(xiàn)的方塊形狀【13】。下移、左移、右移、直接下落模塊主要是將運(yùn)動(dòng)方塊向下移動(dòng)一格、向左移動(dòng)一格、向右移動(dòng)一格、直接落到游戲池底。變換模塊主要是將當(dāng)前運(yùn)動(dòng)方塊劣時(shí)針?lè)较蛐D(zhuǎn)90度【15】。方塊觸界檢測(cè)模塊主要完成運(yùn)動(dòng)方塊是否運(yùn)動(dòng)到了游戲池的底部、左邊界、右邊界的判斷。消層模塊主要是當(dāng)運(yùn)動(dòng)方塊運(yùn)動(dòng)到了游戲池的底部后,檢測(cè)游戲池中的每一行,發(fā)現(xiàn)有滿(mǎn)行的層就消掉,并將該層上面的方塊逐層下移一行【19】。</
69、p><p> 模塊層次圖如圖2-10所示。</p><p> 圖2-11 俄羅斯方塊算法實(shí)現(xiàn)層次圖</p><p> (3) 網(wǎng)絡(luò)通信模塊</p><p> 網(wǎng)絡(luò)通信模塊主要完成服務(wù)器的建立、客戶(hù)端的連接以及各玩家的相互通信功能。它又分為服務(wù)器和客戶(hù)端兩個(gè)模塊。服務(wù)器完成網(wǎng)絡(luò)俄羅斯方塊服務(wù)器的建立,并等待客戶(hù)端的連接。同時(shí)接收客戶(hù)端發(fā)送過(guò)
70、來(lái)的消息,并對(duì)接收的消息進(jìn)行處理,將處理結(jié)果發(fā)送給目標(biāo)客戶(hù)端。客戶(hù)端模塊完成對(duì)指定服務(wù)器的連接,連接成功后,將玩家的游戲操作信息發(fā)送給服務(wù)器,通過(guò)服務(wù)器將這些消息傳達(dá)給其他的玩家【16】。</p><p> 模塊層次圖如圖2-11所示。</p><p> 圖2-12 網(wǎng)絡(luò)通信層次圖</p><p> (4) 游戲界面繪制模塊</p><p&
71、gt; 該模塊是游戲?qū)崿F(xiàn)的核心模塊,它本身并不實(shí)現(xiàn)一些游戲控制的功能。但是,它是其他模塊功能的體現(xiàn)。其他模塊都要受它的調(diào)用,從而形成一個(gè)游戲系統(tǒng)。該模塊的子模塊較多,例如初始界面繪制模塊、游戲開(kāi)始前的準(zhǔn)備界面繪制模塊、游戲準(zhǔn)備就緒界面繪制模塊、游戲開(kāi)始界面繪制模塊(其中又包括主游戲區(qū)域繪制、從游戲區(qū)域繪制等)、游戲結(jié)束繪制模塊等。該主模塊及其它的子模塊主要完成界面在不同事件響應(yīng)下游戲界面的繪制和音樂(lè)的播放功能【18】。</p&g
72、t;<p> 模塊層次圖如圖2-12所示。</p><p> 圖2-13 界面繪制模塊層次圖</p><p> 以上是游戲功能實(shí)現(xiàn)的主要模塊,它們經(jīng)過(guò)相互調(diào)用控制,協(xié)作分工最終完成了本游戲系統(tǒng)的設(shè)計(jì)。</p><p> 本系統(tǒng)采用Visual C++6.0開(kāi)發(fā)環(huán)境,C++為開(kāi)發(fā)語(yǔ)言,MFC為開(kāi)發(fā)庫(kù),SQL Server2000+SP4補(bǔ)丁為數(shù)據(jù)
73、庫(kù)進(jìn)行開(kāi)發(fā)【25】。</p><p> 2.3.2 游戲框架設(shè)計(jì) </p><p> 本游戲系統(tǒng)采用C/S軟件開(kāi)發(fā)模型,主要包括登錄認(rèn)證、游戲算法、網(wǎng)絡(luò)通信、界面繪制四大模塊【21】。</p><p> 系統(tǒng)層次圖如圖2-13所示。</p><p> 圖2-14 多人分組對(duì)戰(zhàn)俄羅斯方塊游戲?qū)哟螆D</p><
74、p> 本系統(tǒng)采用C/S軟件模型、單線(xiàn)程、阻塞式網(wǎng)絡(luò)通信的設(shè)計(jì)方式。服務(wù)器系統(tǒng)只有一個(gè)界面。系統(tǒng)調(diào)用網(wǎng)絡(luò)通信模塊中的服務(wù)器端模塊完成服務(wù)器的建立,并等待連接。當(dāng)連接成功客戶(hù)端發(fā)送消息過(guò)來(lái),系統(tǒng)調(diào)用消息處理模塊處理消息得到結(jié)果。最后調(diào)用消息收發(fā)模塊將消息發(fā)送出去??蛻?hù)端系統(tǒng)主要由兩個(gè)界面組成。一個(gè)登錄界面和一個(gè)游戲主界面。登錄界面調(diào)用登錄認(rèn)證模塊,完成身份認(rèn)證。認(rèn)證成功后進(jìn)入游戲主界面。主界面首先調(diào)用網(wǎng)絡(luò)通信模塊完成與服務(wù)器的連接,
75、并向服務(wù)器發(fā)送相應(yīng)的消息。連接成功后,系統(tǒng)調(diào)用界面繪制模塊中的初始界面繪制模塊完成初始界面的繪制。游戲開(kāi)始前,系統(tǒng)調(diào)用游戲準(zhǔn)備階段界面繪制模塊繪制界面。游戲開(kāi)始后將在調(diào)用游戲算法模塊控制游戲的同時(shí)調(diào)用游戲開(kāi)始界面繪制模塊顯示游戲進(jìn)度。游戲結(jié)束后,系統(tǒng)調(diào)用游戲記分模塊計(jì)算各玩家的最終得分,并調(diào)用游戲結(jié)束界面繪制模塊完成游戲結(jié)果畫(huà)面的繪制。</p><p> 2.3.3 技術(shù)、風(fēng)險(xiǎn)預(yù)測(cè) </p>
76、<p> 俄羅斯方塊游戲雖然很早就被發(fā)明了,經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展各種技術(shù)相對(duì)較成熟。俄羅斯方塊的游戲算法也基本定型。但是,本系統(tǒng)為多人對(duì)戰(zhàn)俄羅斯方塊游戲,和傳統(tǒng)的俄羅斯方塊有很大的不同,在原來(lái)的基礎(chǔ)上加入了很多新的技術(shù) 新的實(shí)現(xiàn)方法。然而,要將一些新的技術(shù)融入到俄羅斯方塊游戲中并非一件容易的事情。同時(shí),由于本人知識(shí)水平有限,對(duì)很多技術(shù)沒(méi)有掌握或不熟悉,這就使開(kāi)發(fā)本游戲存在一定的風(fēng)險(xiǎn),從而導(dǎo)致系統(tǒng)開(kāi)發(fā)的失敗或不完整。&
77、lt;/p><p> 本系統(tǒng)設(shè)計(jì)為四大模塊:系統(tǒng)登錄模塊、游戲算法模塊、網(wǎng)絡(luò)通信模塊、界面繪制模塊。在四個(gè)模塊中都用到了相應(yīng)的開(kāi)發(fā)技術(shù),也具有一定的開(kāi)發(fā)風(fēng)險(xiǎn)。</p><p> (1) 系統(tǒng)登錄模塊:</p><p> 技術(shù):ADO遠(yuǎn)程連接SQL2000技術(shù)。</p><p> 風(fēng)險(xiǎn):實(shí)現(xiàn)登錄信息的安全性較困難。</p>&
78、lt;p> (2) 游戲算法模塊:</p><p> 技術(shù):數(shù)組等基礎(chǔ)知識(shí)的操作。</p><p> 風(fēng)險(xiǎn):怎樣設(shè)計(jì)合理的游戲邏輯、怎樣設(shè)計(jì)各個(gè)子模塊、各個(gè)子模塊應(yīng)該怎樣協(xié)調(diào)工作使游戲正確、怎樣進(jìn)行觸界檢測(cè)等。</p><p> (3) 網(wǎng)絡(luò)通信模塊:</p><p> 技術(shù):CSocket套接字技術(shù)、自定義消息技術(shù)</
79、p><p> 風(fēng)險(xiǎn):怎樣實(shí)現(xiàn)消息收發(fā)的正確性、怎樣將接收的信息正確發(fā)送給邏輯目的玩家、怎樣實(shí)現(xiàn)不同信息的發(fā)送、信息收發(fā)出現(xiàn)異常怎么辦等。</p><p> (4) 界面繪制模塊:</p><p> 技術(shù):GDI繪圖技術(shù)、多緩沖繪圖技術(shù)、半透明繪圖技術(shù)、MCI多媒體技術(shù)、動(dòng)畫(huà)光標(biāo)技術(shù)。</p><p> 風(fēng)險(xiǎn):怎樣根據(jù)服務(wù)器發(fā)送的消息繪制界
80、面、怎樣將自己界面的繪制結(jié)果發(fā)送給其他玩家、怎樣實(shí)現(xiàn)游戲動(dòng)畫(huà)特效、怎樣實(shí)現(xiàn)多次繪圖屏幕不閃爍等。</p><p><b> 3 詳細(xì)設(shè)計(jì)</b></p><p> 3.1 系統(tǒng)組成及功能描述</p><p> 本游戲系統(tǒng)是在單機(jī)版俄羅斯方塊游戲的基礎(chǔ)上擴(kuò)展而來(lái)的多人分組對(duì)戰(zhàn)俄羅斯方塊游戲。它改變了傳統(tǒng)俄羅斯方塊人機(jī)對(duì)戰(zhàn)的游戲模式,實(shí)現(xiàn)了多
81、人對(duì)打的模式。</p><p> 本系統(tǒng)的主要功能是:多人一起加入游戲進(jìn)行對(duì)抗賽,至少兩人,最多六人。玩家可以自由選擇分組,可以分為自由人、澄色、藍(lán)色、紅色四種身份。開(kāi)始對(duì)戰(zhàn)后,各分組可以以獲得的道具相互攻擊,最后存活下來(lái)的一組游戲玩家成為最終勝利者,他們將平分其他失敗玩家扣除的分?jǐn)?shù)。游戲中玩家之間可以相互聊天等以此來(lái)達(dá)到游戲娛樂(lè)的目的。</p><p> 本系統(tǒng)的組成:本系統(tǒng)為C/S
82、軟件模型,主要由登錄模塊、游戲算法模塊、網(wǎng)絡(luò)通信模塊、界面繪制模塊四部分組成。其中每個(gè)模塊又包括各個(gè)小模塊。</p><p> 3.2 系統(tǒng)登錄模塊設(shè)計(jì)</p><p> 系統(tǒng)登錄模塊包括一個(gè)登錄界面用于接受玩家的輸入信息。包括:服務(wù)器IP地址、用戶(hù)帳號(hào)、用戶(hù)密碼。界面設(shè)計(jì)如圖3-1所示。</p><p> 圖3-1 登錄模塊界面設(shè)計(jì)圖</p>
83、<p> 登錄界面由一個(gè)對(duì)話(huà)框組成。玩家必須在用戶(hù)帳號(hào)、用戶(hù)密碼和服務(wù)地址對(duì)應(yīng)編輯框中輸入完整的登錄信息才能進(jìn)行登錄驗(yàn)證,否則將提示錯(cuò)誤信息。進(jìn)入登錄系統(tǒng)前,必須運(yùn)行SQL Server 2000數(shù)據(jù)庫(kù),且保證數(shù)據(jù)庫(kù)中的數(shù)據(jù)表正確無(wú)誤。</p><p> 該模塊需要的數(shù)據(jù)表如表3-1所示。</p><p> 表3-1 玩家信息表</p><p>
84、account :用戶(hù)帳號(hào);password :用戶(hù)密碼;byname :昵稱(chēng);grade :游戲等級(jí);integral :游戲積分;sex :用戶(hù)性別;flag :該用戶(hù)是否已經(jīng)登錄,為0表示還沒(méi)有登錄,為1表示已經(jīng)登錄。</p><p> 當(dāng)玩家完成登錄信息的輸入后,點(diǎn)擊登錄按鈕時(shí),系統(tǒng)將調(diào)用ADOConn類(lèi)遠(yuǎn)程連接到SQL Server2000數(shù)據(jù)庫(kù),此處采用ADO數(shù)據(jù)庫(kù)連接技術(shù)實(shí)現(xiàn)。如果連接成功將調(diào)用C
85、Users類(lèi)根據(jù)玩家輸入的用戶(hù)帳號(hào)去讀取password 字段和flag字段。如果讀取成功,說(shuō)明該用戶(hù)帳號(hào)存在,否則說(shuō)明帳號(hào)有誤。帳號(hào)正確時(shí),首先檢查flag字段是否為0。若flag為0,則說(shuō)明該用戶(hù)還沒(méi)有登錄游戲,接著將讀取的password 與用戶(hù)輸入的用戶(hù)密碼進(jìn)行比較,相等則登錄成功,并將flag字段值更新為1寫(xiě)入數(shù)據(jù)庫(kù)。不相等則登錄失敗,重新輸入登錄信息。若flag不為0,說(shuō)明該用戶(hù)已經(jīng)登錄,不能多次登錄,將提示信息錯(cuò)誤。返回登
86、錄初始狀態(tài),要求重新輸入登錄信息。若用戶(hù)登錄成功,系統(tǒng)將讀取byname 、grade 、integral 字段的信息并保存起來(lái)以便進(jìn)入游戲主模塊時(shí)繪制該玩家的游戲基礎(chǔ)信息。到此,登錄模塊所做的工作就完成了。</p><p> 該模塊的詳細(xì)流程圖如圖3-2所示。</p><p> 圖3-2 登錄模塊詳細(xì)流程圖</p><p> 3.3 游戲算法實(shí)現(xiàn)模塊<
87、/p><p> 算法實(shí)現(xiàn)模塊主要描述俄羅斯方塊游戲的實(shí)現(xiàn)原理。它包括運(yùn)動(dòng)方塊的隨機(jī)產(chǎn)生、方塊下移、左移、右移、直接下落、變換、方塊觸界檢測(cè)、消層等多個(gè)模塊。</p><p> 方塊隨機(jī)產(chǎn)生主要由GenerateDiamond()函數(shù)實(shí)現(xiàn)。本系統(tǒng)游戲區(qū)域由一個(gè)21*12的矩陣diamondsA[21][12]組成【22】。隨機(jī)方塊由一個(gè)4*4的矩陣cubeX[4][4]保存。在下一個(gè)方塊產(chǎn)生
88、前須將保存上一個(gè)方塊信息的cubeX[4][4]清零。然后,用Rand()函數(shù)隨機(jī)產(chǎn)生一個(gè)0到8之間的數(shù)字,每一個(gè)數(shù)字都對(duì)應(yīng)著一個(gè)不同形狀的方塊。同時(shí)隨機(jī)產(chǎn)生方塊的顏色(1到7,每個(gè)數(shù)字代表一種顏色)。隨機(jī)的數(shù)字產(chǎn)生后,方塊的形狀也就固定了。就用隨機(jī)產(chǎn)生的顏色值(1到7)填充cubeX[4][4]相應(yīng)的元素。這樣cubeX[4][4]就保存了下一個(gè)方塊的形狀、顏色等信息。接著將cubeX[4][4]矩陣隨機(jī)旋轉(zhuǎn),并將旋轉(zhuǎn)后的方塊移動(dòng)到c
89、ubeX[4][4]矩陣的最上方,這樣下一個(gè)方塊就產(chǎn)生了。最后初始化該方塊將第一次出現(xiàn)在游戲區(qū)域中的位置為游戲區(qū)域矩陣的第一行中間。同時(shí)擦除下一個(gè)待出現(xiàn)方塊提示區(qū)域原來(lái)的方塊,并將該方塊繪制上去。到此,下一個(gè)待出現(xiàn)的運(yùn)動(dòng)方塊就產(chǎn)生了。</p><p> 算法實(shí)現(xiàn)流程圖如圖3-3所示。</p><p> 圖3-3 方塊隨機(jī)產(chǎn)生接口流程圖</p><p> 方塊下
90、移、左移、右移、直接下落主要由Move()函數(shù)來(lái)實(shí)現(xiàn)。左移和右移時(shí),函數(shù)首先調(diào)用MeetBorder()函數(shù)進(jìn)行邊界檢測(cè),如果已經(jīng)到了左邊界或右邊界,就退出。否則就將游戲區(qū)域當(dāng)前顯示的運(yùn)動(dòng)方塊擦除,然后將該運(yùn)動(dòng)方塊的位置向左或向右移動(dòng)一格,最后在新的位置上重新畫(huà)出運(yùn)動(dòng)方塊,同時(shí)播放音效。下移時(shí),函數(shù)首先調(diào)用MeetBorder()函數(shù)進(jìn)行邊界檢測(cè),檢測(cè)是否已經(jīng)到了下邊界,如果到了下邊界,則調(diào)用LineDelete()進(jìn)行消層,調(diào)用Pro
91、pPaint()記錄獲得的道具,調(diào)用PropExplainPaint()繪制獲得的道具。如果沒(méi)有到下邊界,則退出。然后將游戲區(qū)域當(dāng)前顯示的運(yùn)動(dòng)方塊擦除,將該運(yùn)動(dòng)方塊的位置向下移動(dòng)一格,最后在新的位置上重新畫(huà)出運(yùn)動(dòng)方塊,同時(shí)播放音效。直接下落時(shí),函數(shù)首先擦除游戲區(qū)域當(dāng)前顯示的運(yùn)動(dòng)方塊,然后進(jìn)行循環(huán)進(jìn)行邊界檢測(cè),沒(méi)有到達(dá)下邊界就將運(yùn)動(dòng)方塊的當(dāng)前位置向下移動(dòng)一格,直到到達(dá)下邊界為止。最后在新的位置畫(huà)出運(yùn)動(dòng)方塊,進(jìn)行消層、記錄獲得的道具、畫(huà)出道
92、具。</p><p> 算法實(shí)現(xiàn)流程圖如圖3-4所示。</p><p> 圖3-4 Move函數(shù)實(shí)現(xiàn)流程圖</p><p> 方塊變換的實(shí)現(xiàn)見(jiàn)上圖,首先擦除游戲區(qū)域當(dāng)前的運(yùn)動(dòng)方塊,然后調(diào)用MeetBorder()進(jìn)行變換,MeetBorder()調(diào)用Rotatable()判斷能否變換。如果能變換,MeetBorder()中將當(dāng)前運(yùn)動(dòng)方塊逆時(shí)針旋轉(zhuǎn)90度角形成新
93、的方塊。最后將新的方塊繪制到游戲區(qū)域運(yùn)動(dòng)方塊原來(lái)的位置上。如果不能變換,則Move()函數(shù)中將剛才擦除的運(yùn)動(dòng)方塊重新繪制上去。</p><p> 方塊觸界檢測(cè)主要判斷當(dāng)前運(yùn)動(dòng)方塊是否到達(dá)了左邊界、右邊界、下邊界,同時(shí)兼有變換方塊的功能。函數(shù)首先將保存運(yùn)動(dòng)方塊信息的cubeX[4][4]矩陣的值移植到表示游戲區(qū)域的diamondsA[21][12]矩陣的相應(yīng)位置。如果方塊左移,則將cubeX[4][4]矩陣在di
94、amondsA[21][12]中左移一格,然后檢查cubeX[4][4]中所有值不為0的元素與diamondsA[21][12]中重合的元素的值是否為0,只要有一個(gè)不為0,則表示已經(jīng)到了左邊界或被其他方塊擋住了,不能左移。若都為0,說(shuō)明可以向左移。就將方塊向左移一格,并在新的位置繪制出運(yùn)動(dòng)方塊。向右移、向下移、變換的情況同理【27】。</p><p> 算法實(shí)現(xiàn)流程圖如圖3-5所示。</p>&l
95、t;p> 圖3-5 觸界檢測(cè)實(shí)現(xiàn)流程圖</p><p> 消層功能主要由LineDelete()函數(shù)實(shí)現(xiàn)。該函數(shù)實(shí)現(xiàn)的原理是:逐行遍歷diamondsA[21][12]矩陣,發(fā)現(xiàn)某一行為滿(mǎn)行就將該行消去。并逐一檢查該行的每一個(gè)元素,若發(fā)現(xiàn)為道具方塊,則將該道具加入道具數(shù)組中。然后將該行上面的行依次往下移一行,第一行元素的值變?yōu)槿?。并將變化后的diamondsA[21][12]矩陣?yán)L制到游戲區(qū)域。重復(fù)上
96、面的操作,直到檢查到diamondsA[21][12]的最后一行。完成后,將獲得的道具繪制到道具區(qū)域,并將記錄消層數(shù)量的變量的值增加相應(yīng)的值。隨機(jī)產(chǎn)生下一個(gè)方塊,最后檢查方塊是否已經(jīng)到了游戲區(qū)域頂部。若是則將EndFlag置1,表示游戲結(jié)束【26】。</p><p> 算法實(shí)現(xiàn)流程圖如圖3-6所示。</p><p> 圖3-6 消層實(shí)現(xiàn)流程圖</p><p>
97、 到此,俄羅斯方塊游戲的算法實(shí)現(xiàn)模塊就完成了,游戲系統(tǒng)將通過(guò)對(duì)上面各個(gè)功能模塊的調(diào)用實(shí)現(xiàn)游戲的運(yùn)行。</p><p> 3.4 網(wǎng)絡(luò)通信模塊</p><p> 網(wǎng)絡(luò)通信模塊是各個(gè)獨(dú)立游戲?qū)嶓w連接的紐帶。它的主要作用是將每個(gè)游戲玩家連接起來(lái),幫助他們傳遞信息,實(shí)現(xiàn)人與人之間的交互。從而提高游戲的趣味性、交互性、可玩性。具體的說(shuō)網(wǎng)絡(luò)通信模塊主要包括服務(wù)器和客戶(hù)端兩個(gè)模塊。服務(wù)器模塊用于建立
98、服務(wù)器為客戶(hù)端提供服務(wù),接收客戶(hù)端的連接,處理并轉(zhuǎn)發(fā)消息??蛻?hù)端模塊主要用于將客戶(hù)端連接到服務(wù)器,并將玩家的操作情況以消息的形式發(fā)送給服務(wù)器處理,最后接收服務(wù)器發(fā)送來(lái)的消息并處理。</p><p> 服務(wù)器建立:服務(wù)器端封裝CSocket類(lèi)分別生成了CClientSocket類(lèi)和CServerSocket類(lèi),并在CServerSocket類(lèi)中重載了OnAccept消息,在CClientSocket類(lèi)中重載了On
99、Receive消息。服務(wù)器的建立遵循CSocket編程的一般步驟,首先創(chuàng)建監(jiān)聽(tīng)套接字,調(diào)用Listen()監(jiān)聽(tīng)客戶(hù)端的連接【24】。有客戶(hù)端請(qǐng)求連接時(shí),調(diào)用Accept()接受客戶(hù)端的連接。連接成功后,就可以調(diào)用ReceiveData()接收已連接客戶(hù)端發(fā)送來(lái)的消息。服務(wù)器界面設(shè)計(jì)圖如圖3-7所示。</p><p> 圖3-7 服務(wù)器界面圖</p><p> 客戶(hù)端連接:客戶(hù)端封裝CS
100、ocket類(lèi)生成了CMysocket類(lèi),并重載了OnReceive消息。首先在游戲主系統(tǒng)中創(chuàng)建客戶(hù)端套接字,然后調(diào)用Connect()連接到指定的服務(wù)器,連接成功后,調(diào)用Send()將該玩家的游戲基礎(chǔ)信息發(fā)送到服務(wù)器。</p><p> 服務(wù)器端和客戶(hù)端消息的收發(fā):服務(wù)器建立成功,客戶(hù)端連接到服務(wù)器后,客戶(hù)端就可以向服務(wù)器發(fā)送消息。服務(wù)器重載ReceiveData()來(lái)接收客戶(hù)端發(fā)送的消息,利用Send()來(lái)發(fā)
101、送消息??蛻?hù)端也重載了ReceiveData()來(lái)接收服務(wù)器發(fā)送來(lái)的消息??蛻?hù)端發(fā)送來(lái)的數(shù)據(jù)較多,且數(shù)據(jù)樣式各不相同。因此,本系統(tǒng)自定義消息格式,統(tǒng)一數(shù)據(jù)的發(fā)送方式。</p><p> 消息格式為:infotype: 消息類(lèi)型&<標(biāo)志字段: >字段值&……<標(biāo)志字段: >字段值& <>標(biāo)記的內(nèi)容可有可無(wú)。</p><p
102、> 例如:當(dāng)玩家發(fā)送聊天信息時(shí),客戶(hù)端向服務(wù)器發(fā)送的消息為:"infotype: INFO&data: "+str。Str表示聊天信息字符串。</p><p> 服務(wù)器在ReceiveData()函數(shù)中接收到該消息后,語(yǔ)法分析該消息,讀取infotype字段的值,若為“INFO”,則服務(wù)器就知道發(fā)送過(guò)來(lái)的是聊天信息。接著就提取聊天信息“str”,將其發(fā)送到每一個(gè)連接到服務(wù)器的
103、客戶(hù)端。這樣每個(gè)客戶(hù)端都會(huì)在ReceiveData()中接收到該消息,客戶(hù)端再次對(duì)其進(jìn)行語(yǔ)法分析,讀取消息類(lèi)型字段,若為“INFO”就將聊天信息“str”寫(xiě)入到Richedit控件。</p><p> 除了聊天消息外還有很多消息,部分消息列舉如下:</p><p> 新玩家進(jìn)入游戲的消息:“infotype: INTO&group: CYA&”</p>&
104、lt;p> 改變分組信息的消息:“infotype: GROU&group: RED&”</p><p> 玩家退出游戲的消息:“infotype: QUIT&”</p><p> 使用道具的消息:"infotype: PROP&addr: "+m_address[p].Mid(0, m_address[p].GetLengt
105、h()-5)+m_proptype</p><p> 從游戲區(qū)域改變的消息:"infotype: DIAM&"</p><p> 游戲一個(gè)玩家結(jié)束的消息:="infotype: MEND&"+strtemp</p><p> 游戲勝利的消息:"infotype: WINN&"+
106、m_fen+"&"</p><p> 整個(gè)游戲結(jié)束的消息:"infotype: OVER&"+strtemp</p><p> 各種消息的收發(fā)和處理情況基本相似,由于內(nèi)容較多,這里就不再累述。</p><p> 網(wǎng)絡(luò)通信模塊的流程圖如圖3-8所示。</p><p> 圖3-8 網(wǎng)
107、絡(luò)通信模塊實(shí)現(xiàn)流程圖</p><p> 3.5 游戲界面繪制模塊</p><p> 游戲的最終目的是能給游戲玩家提供友好的視覺(jué)享受。因此,游戲界面的繪制尤為重要。前面各模塊的功能主要集中在游戲邏輯的實(shí)現(xiàn),那么游戲界面繪制模塊就是將看不見(jiàn)的游戲邏輯讓游戲玩家能夠看見(jiàn),從而幫助玩家正確的完成操作。該模塊貫穿整個(gè)游戲系統(tǒng),從進(jìn)入游戲到最后退出游戲都將用到該模塊來(lái)繪制游戲界面,顯示游戲進(jìn)行情況
108、。游戲界面繪制模塊實(shí)現(xiàn)較復(fù)雜,子模塊較多,提供的函數(shù)接口也很煩瑣。從游戲進(jìn)行的階段可以將該模塊大致分為以下幾個(gè)不同部分:游戲初始界面、游戲準(zhǔn)備界面、游戲開(kāi)始界面、游戲結(jié)束界面等。</p><p> 3.5.1 游戲初始界面</p><p> 該界面是登錄成功后,玩家第一次看見(jiàn)的游戲界面,此時(shí),游戲玩家沒(méi)有作出任何操作。界面效果圖如圖3-9所示。</p><p>
109、 圖3-9 游戲初始界面設(shè)計(jì)圖</p><p> 從圖中我們可以看到,效果圖主要由左邊標(biāo)記的2—6五個(gè)從游戲區(qū)域、中間標(biāo)記為1的主游戲區(qū)域、右邊的聊天窗口及分組選擇等按鈕組成。</p><p> 初始界面繪制原理是:當(dāng)玩家登錄成功后,系統(tǒng)顯示游戲主界面。首先創(chuàng)建第一重繪圖DC將一張游戲背景圖繪制到界面上,并初始化參數(shù)設(shè)置、快速幫助、最小化、最大化、關(guān)閉、發(fā)言、A、B、C、自由人、開(kāi)始
110、、退出等按鈕為INIT狀態(tài),練習(xí)按鈕為INVALID狀態(tài),接著調(diào)用InitPaint()函數(shù)根據(jù)它們的狀態(tài)繪制按鈕圖。聊天信息框中顯示事先準(zhǔn)備好的字符串。接著分別創(chuàng)建6個(gè)第二重繪圖DC,一個(gè)用于主游戲區(qū)域的繪制。當(dāng)玩家登錄時(shí)便從數(shù)據(jù)庫(kù)中提取出了該玩家的昵稱(chēng)、等級(jí)、積分等游戲基礎(chǔ)信息,且每個(gè)剛登錄的玩家的默認(rèn)身份都為自由人。此時(shí)直接將綠色背景圖繪制到主游戲區(qū)域的頭部以表明該玩家的分組情況,同時(shí)也將基礎(chǔ)信息繪制上去。主游戲區(qū)域中繪制暗色人物
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì) java實(shí)現(xiàn)俄羅斯方塊
- 俄羅斯方塊游戲畢業(yè)設(shè)計(jì)
- 俄羅斯方塊分組對(duì)抗游戲的實(shí)現(xiàn)畢業(yè)論文
- 俄羅斯方塊分組對(duì)抗游戲的實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)---俄羅斯方塊游戲java
- 畢業(yè)設(shè)計(jì)----基于arm的俄羅斯方塊游戲設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)--java的俄羅斯方塊界面設(shè)計(jì)與實(shí)現(xiàn)
- 《c++俄羅斯方塊》課程設(shè)計(jì)--俄羅斯方塊
- net俄羅斯方塊游戲設(shè)計(jì)與實(shí)現(xiàn)
- 俄羅斯方塊課程設(shè)計(jì)-- 用c++實(shí)現(xiàn)的俄羅斯方塊程序設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)java的俄羅斯方塊界面設(shè)計(jì)與實(shí)現(xiàn)
- 俄羅斯方塊
- 基于QT的俄羅斯方塊游戲設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì).doc
- 俄羅斯方塊的java實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---俄羅斯方塊游戲程序設(shè)計(jì)
- 基于java的俄羅斯方塊的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文俄羅斯方塊的實(shí)現(xiàn)系統(tǒng)
- 俄羅斯方塊畢業(yè)論文
- 基于java的俄羅斯方塊的設(shè)計(jì)與實(shí)現(xiàn)
- 基于java的俄羅斯方塊設(shè)計(jì)與實(shí)現(xiàn)sc
評(píng)論
0/150
提交評(píng)論