




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、沈陽理工大學(xué)學(xué)士學(xué)位論文I摘要現(xiàn)如今,不管在哪個小游戲網(wǎng)站上,“連連看”游戲總是受廣大玩家所喜愛。不分男女老少,適合大眾的集體休閑、趣味、益智和娛樂于一體的經(jīng)典小游戲。其老少皆宜的特點使得該款小游戲常常在游戲排名的前幾位。本游戲?qū)崿F(xiàn)了主菜單和界面的顯示、時間限制功能、能夠根據(jù)規(guī)則消除相同棋子、游戲升級功能、消除提示功能、棋子換盤功能、英雄榜的更新并且支持背景音樂播放功能。每消去一對棋子,游戲限制時間自動延長。當(dāng)時間全部消耗完的時候,游戲結(jié)束。在有限的時間內(nèi),消除全部棋子,自動升級,并重新開始新一個等級的游戲。每升一個等級,游戲的時間消耗就會變得更快。簡潔美觀的外表,加上引人入勝的功能,使得這款
2、小游戲的可玩性、娛樂性大大增加。關(guān)鍵字:連連看;娛樂;升級;棋子;可玩性沈陽理工大學(xué)學(xué)士學(xué)位論文IIABSTRACT Nowadays Link Game is preferred by game players as its seen on almost every mini-game website. Link Game is a classic game with the combination of relaxation, intelligence, entertainment and fun. And its very popular among people at all ages
3、, which is why it ranks before many other mini games. The main menu of the game is just on the corner of the viewing screen which makes it easy to operate the whole picture. And it has functions of time limit, game upgrading, the removal of hint, the change of images and the update of hero rank. It
4、also has background music. Every time a pair of images which have the same picture is eliminated, it adds some time accordingly. When time is up, the game is over. If all the images are eliminated within the game time, it upgrades automatically and it goes into another level of the game. Every step
5、forward the time become less. The concision of the game and its ingenious functions make it a successful mini game which more playable and more entertaining.Keyword:linking game; entertainment; upgrade; pawn;operability沈陽理工大學(xué)學(xué)士學(xué)位論文III目錄1 緒論.11.1 開發(fā)背景.11.2 目的和要求.11.3 國內(nèi)外研究現(xiàn)狀.21.4 可行性分析.31.5 分析結(jié)論.41.6
6、 方案論證.42 開發(fā)技術(shù)及開發(fā)環(huán)境.62.1 Visual Studio 6.0 簡介.62.2 Visual C+開發(fā)工具的特點.62.3 運行環(huán)境.73 系統(tǒng)需求分析及設(shè)計.83.1 系統(tǒng)功能需求.83.2 概要設(shè)計.103.2.1 總體設(shè)計.103.2.2 游戲菜單結(jié)構(gòu)的設(shè)計.113.3 連連看游戲的詳細(xì)設(shè)計.113.3.1 游戲各功能的設(shè)計描述.113.4 相關(guān)技術(shù)與重點難點.133.4.1 相關(guān)技術(shù).133.4.2 系統(tǒng)的重點難點.143.5 游戲各功能流程圖.153.6 主對話框的設(shè)計與實現(xiàn).193.6.1 主對話框的設(shè)計.193.6.2 主對話框的實現(xiàn).193.7 棋子類的設(shè)計
7、與實現(xiàn).203.7.1 棋子類的設(shè)計.203.7.2 棋子類的實現(xiàn).213.8 人機界面設(shè)計.234 連連看游戲的調(diào)試.254.1 主界面和界面顯示功能調(diào)試.254.2 消除相同棋子的功能調(diào)試.264.3 游戲升級功能的調(diào)試.274.4 消除提示功能調(diào)試.284.5 棋子換盤功能的調(diào)試.294.6 消除提示功能的調(diào)試.30結(jié)論.31致謝.33參考文獻(xiàn).34附錄 A 英語原文.35沈陽理工大學(xué)學(xué)士學(xué)位論文IV附錄 B 漢語翻譯.37沈陽理工大學(xué)學(xué)士學(xué)位論文01 緒論1.1 開發(fā)背景連連看的主要游戲規(guī)則來源于“四川麻將”,是給一堆圖案中的相同圖案進行配對的簡單游戲。網(wǎng)絡(luò)小游戲制作的目的是滿足了人們
8、休閑的需要,在緊張工作之余休閑類的小游戲能夠給人帶來最大程度的放松,也可以增進人們之間的交流,溝通,通過游戲還可以認(rèn)識更多的朋友,也可以到達(dá)跨省、跨市,甚至跨國間人們互相娛樂的目的。通過此次課題的設(shè)計,學(xué)習(xí)和掌握如何制作一款游戲軟件,熟悉游戲軟件制作的步驟,為以后的學(xué)習(xí)和工作打下基礎(chǔ)。1.2 目的和要求連連看游戲主要是鼠標(biāo)兩次點擊的圖片能否消去的問題。當(dāng)前,前提是點擊兩張相同的圖片,若點擊的是同一張圖片或者兩張不同的圖片,則不予處理。在兩張想同圖片所能連通的所有路徑中,如果存在一條轉(zhuǎn)彎點不多于兩個的路徑,就可以消去;如果沒有,則不予處理。此程序的課題內(nèi)容及目標(biāo)如下: 設(shè)計一款適合大眾的充滿集合
9、娛樂、休閑、趣味益智和娛樂于一體的單機小游戲。功能完善,可玩性高,界面美觀,操作簡單。(1) 能實現(xiàn)主菜單和界面的顯示(2) 隨機生成游戲界面,具有時間限制功能。(3) 方塊選中后圖片要有突出顯示。(4) 選擇兩個圖案相同的方塊,并以不超過兩個轉(zhuǎn)彎的連線將它們連接起來,便可以消除這對方塊,每一局里玩家需要在規(guī)定的時間內(nèi)消除所有的方塊,當(dāng)完成任務(wù)后,才能進入下一關(guān)卡。(5)當(dāng)出現(xiàn)無解的局面時,可以重新?lián)Q牌,當(dāng)時間為 0 時游戲結(jié)束。(6)選擇提示功能時,游戲自動突出顯示兩個可以消除的方塊,并且提示次數(shù)減少一次。(7) 英雄榜的更新,當(dāng)玩家當(dāng)前的記錄高于先前的記錄,在游戲結(jié)束時,自動更新英雄榜。(
10、8)支持背景音樂播放功能。沈陽理工大學(xué)學(xué)士學(xué)位論文11.3 國內(nèi)外研究現(xiàn)狀電腦游戲在我國起步雖晚,發(fā)展卻并不為慢。作為后來者,國內(nèi)業(yè)界同行們的信心、勇氣和緊迫感曾經(jīng)著實令玩家們欣慰。讓我們記住這些在國產(chǎn)游戲事業(yè)上曾經(jīng)灑過汗水的年輕人,正是他們的創(chuàng)新精神和勇氣,才使得國產(chǎn)游戲在并不寬松的環(huán)境下蓬勃發(fā)展至今。與單機游戲日漸衰落正相反的是,網(wǎng)絡(luò)游戲方興未艾,遍地開花。但是,與此同時, 我們也看到了,在繁榮的背后,潛在的危機, 一是來自國內(nèi)游戲制作者在游戲制作理念上的不足和困乏,另外就是資金問題,這兩方面與歐美游戲制作差距很大。在美國,集中了許多計算機軟件的設(shè)計人才,他們工作之余,時常喜愛編一種能與人
11、斗智的“游戲”,以此來鍛煉編程的能力。這種“游戲”花樣繁多,但其特點都是利用計算機軟件事先設(shè)計好的“分析”、“判斷”能力反過來與人較量。由于不斷修改更新,使計算機的“智力”水平與人難分高低。 連連看這款游戲來源于中國,現(xiàn)在已風(fēng)靡全世界。連連看游戲從出現(xiàn)到現(xiàn)在已經(jīng)更新了好多版本,比較知名的有蔬果連連看、水晶連連看、阿達(dá)連連看和寵物連連看等不同版本,現(xiàn)在已經(jīng)有 FLASH 版本,游戲起來更加方便,無需安裝,打開網(wǎng)頁即可游戲,最近更是出現(xiàn)網(wǎng)絡(luò)版本,QQ 連連看就是這樣一款連連看游戲的網(wǎng)絡(luò)版本,可以通過網(wǎng)絡(luò)與其他玩家一起進行游戲,而且地圖更為繁多,道具更為豐富,極大地增強了游戲的樂趣。今天,當(dāng)我們回顧
12、電子游戲最初為什么能吸引人,我們不難悟出這樣的道理:電子游戲滿足了人們對競爭和對抗的渴望,它總是給予競爭者以新的難題。同時,它還能為勝利者提供嶄新的畫面和音樂享受。沈陽理工大學(xué)學(xué)士學(xué)位論文21.4 可行性分析可行性分析(feasibility study ),世界上普遍采用的一種研究工程項目是否可行的科學(xué)。目的:它通過各種有效的方法,對工程項目進行分析,從技術(shù)、經(jīng)濟、財務(wù)等方面加以評價,最終給投資決策者提供是否選擇該項目進行投資的依據(jù)??尚行苑治龅慕裹c是:要站在咨詢的立場上;要有多種替代方案;對各種方案作經(jīng)濟比較;決定最佳投資時間和投資規(guī)模;提出可能實施的具體措施;著眼于資源的有效利用;站在中
13、立客觀立場上得出結(jié)論。經(jīng)濟可行性:開發(fā)本程序首先需要計算機一臺,奔騰 3 以上 CPU,256MB 以上內(nèi)存,40G 以上硬盤即可以,大約五千元左右。軟件方面,正版 Microsoft Visual C+ 6.0光盤價格為五千二百元,正版操作系統(tǒng) Windows XP 簡體中文專業(yè)版價格大約在兩千元左右,購買書籍二百元,開發(fā)此程序需要的時間大約需要三個月左右的時間,其中所消耗的人工費每月一千元,共計三千元,所以開發(fā)此游戲程序的成本共計一萬五千元四百元左右。開發(fā)出的產(chǎn)品倘若在因特網(wǎng)下載,一個注冊碼費用為十元,只需下載一千五百四十次即可收回成本。在高速發(fā)展的信息時代,一千五百四十次的下載不成問題。
14、所以,從經(jīng)濟角度來講,開發(fā)本程序是可行的。 技術(shù)可行性:設(shè)計連連看游戲程序需要通過菜單和鼠標(biāo)對游戲進行操控,游戲的界面需要大量的繪圖機制,以達(dá)到操作簡單、界面美觀的目的。Visual C+6.0 為用戶提供了一個可視化、通用的應(yīng)用程序集成開發(fā)環(huán)境Developer Studio(也俗稱 Visual Studio)。Developer Studio 包含了一個文本編輯器、資源編輯器、工程編譯工具、一個增量連接器、源代碼瀏覽器、集成調(diào)試工具以及一套聯(lián)機文檔(MSDN)。通過Developer Studio,開發(fā)人員可以完成項目工程的創(chuàng)建、程序的編輯、修改、運行和調(diào)試等各種操作。Developer
15、 Studio 采用標(biāo)準(zhǔn)的多窗口用戶界面,提供了大量實用工具以支持可視化編輯的特性,包括項目工作區(qū)、AppWizard(應(yīng)用程序向?qū)Вlass(類向?qū)В?、WizardBar(向?qū)Чぞ邨l)、ComponentGallery(組建畫廊)等。在ComponentGallery(組建畫廊)中,Visual C+6.0 為用戶提供了一組常用的應(yīng)用程序組件,分為兩類,分別是 Developer Studio Components 和 Register ActiveX Controls。其中 Developer Studio Components 包含了經(jīng)常使用的一些標(biāo)準(zhǔn)的 Windows 應(yīng)用程序特性
16、,例如,彈出菜單、剪貼板、對話條、啟動畫面、定制狀態(tài)條、日積月累對話框等,所以,可以通過 ComponentGallery 實現(xiàn)菜單制作、鼠標(biāo)操控等功能,而繪圖功能也可以沈陽理工大學(xué)學(xué)士學(xué)位論文3通過 Visual C+6.0 為用戶提供的 GDI 庫完全實現(xiàn)。對于菜單的制作通過默認(rèn)的框架結(jié)構(gòu)即可實現(xiàn),然后通過框架改造達(dá)到要求的條件。鼠標(biāo)交互功能的實現(xiàn)可以通過對鼠標(biāo)左鍵被按下時觸發(fā)的命令消息進行攔截,并重新寫該消息的處理函數(shù)實現(xiàn)。并且不會的地方可以問問老師或者同學(xué),此外開發(fā)該游戲的難度不大。因此,技術(shù)上是可行的。使用可行性:連連看游戲 ,只要將相同圖案的兩張方塊用三根以內(nèi)的直線連在一起就可以消
17、除,規(guī)則簡單容易上手。 游戲速度節(jié)奏快,畫面清晰可愛,適合不同年齡的玩家。豐富的道具加入,增強游戲的競爭性。多樣式的地圖,使玩家在各個游戲水平都可以尋找到挑戰(zhàn)的目標(biāo),長期地保持游戲的新鮮感。使用新穎的連擊積分規(guī)則,兩秒內(nèi)連擊次數(shù)越多得分越高,并且有提示和重列次數(shù)的獎勵,使游戲玩家在體會連擊的快感后,同時對自己的游戲速度,更有挑戰(zhàn)性和追求極速的欲望。對于用戶交互方式,這里選擇鼠標(biāo)交互方式。下面簡單描述一下通過實現(xiàn)的功能。鼠標(biāo)選取兩個圖案方塊后,程序?qū)⒆詣优袛嗨x定的兩個方塊是否能進行抵消操作,能進行則抵消。在游戲過程中,我們不斷重復(fù)上面描述的功能,直到游戲的勝利結(jié)束??梢哉f,對于玩家操作起來很容
18、易上手,即使是年齡大的玩家,也會通過很短時間的適應(yīng)而熟悉連連看游戲的操作。 所以,從操作可行性角度分析開發(fā)此程序是可行的。硬件方面:具備操作系統(tǒng) windows2000 版本以上。內(nèi)存要求 512M 以上,硬盤10G 以上,CPU 200MHZ 以上,顯卡緩存 128M 以上的 pc 機。1.5 分析結(jié)論以上對于開發(fā)此程序分別從技術(shù)角度、經(jīng)濟角度和操作性角度進行了全面的分析,技術(shù)上使用 Microsoft Visual C+ 6.0 進行開發(fā),通過網(wǎng)絡(luò)下載回收成本,游戲畫面美觀、操作性強,適合所有人不同年齡段的玩家進行娛樂??v上所述,以 Microsoft Visual C+ 6.0 為工具開
19、發(fā)連連看游戲的方案是可行的。1.6 方案論證在分析設(shè)計階段,有兩種方案可供選擇: 沈陽理工大學(xué)學(xué)士學(xué)位論文4 使用 Win32 應(yīng)用程序框架。Win32 是 Windows 的一個子系統(tǒng),也是最重要的一個。(還有 POSIX 子系統(tǒng)和OS/2 子系統(tǒng))Win32 子系統(tǒng)為應(yīng)用程序提供了使用系統(tǒng)資源的接口 Win32 API,Win32 API 是 Windows 用戶態(tài)下應(yīng)用程序編程的基礎(chǔ)。因此所有在 Win32API 基礎(chǔ)上的應(yīng)用程序都是 Win32 應(yīng)用程序。 使用 MFC 應(yīng)用程序框架。MFC(Microsoft Foundation Classes)微軟基礎(chǔ)類庫。這個類庫不光封裝了大多
20、數(shù)的 GUI 系統(tǒng)對象和數(shù)據(jù)結(jié)構(gòu),還為開發(fā)者提供了開發(fā)框架,使原本復(fù)雜繁瑣的Windows 開發(fā)(尤其使界面開發(fā))變得非常簡單。MFC 是對 API 的封裝,因此它能實現(xiàn)的功能只是 API 的子集。對于追求系統(tǒng)底層相關(guān)而且效率高的程序而言,MFC 不夠靈活而且開銷也大。但對于圖形界面開發(fā),如果沒有 MFC 而使用 API 的話那么開發(fā)起來非常困難。 在游戲的編寫中需要大量的圖形界面開發(fā),所以我們放棄第一種方案的設(shè)計思想,參考網(wǎng)絡(luò)上流行的連連看的游戲規(guī)則,采用第二種方案設(shè)計。沈陽理工大學(xué)學(xué)士學(xué)位論文52 開發(fā)技術(shù)及開發(fā)環(huán)境2.1 Visual Studio 6.0 簡介在全世界,Windows
21、操作系統(tǒng)被廣泛使用,Windows 平臺下的軟件開發(fā)也成為軟件開發(fā)人員的必備技能。Visual Studio 系列開發(fā)系統(tǒng)一直是在 Windows 操作系統(tǒng)下進行軟件開發(fā)的一套非常實用的工具集。其可以用來開發(fā)多種 Windows 下的軟件項目,包括 Windows 應(yīng)用程序、動態(tài)鏈接庫、Windows 服務(wù)、office 集成開發(fā)、數(shù)據(jù)庫項目開發(fā)等。Visual C+ 6.0 是微軟公司開發(fā)的面向 Windows 程序設(shè)計的一整套開發(fā)環(huán)境Visual Studio 中的一種開發(fā)工具。同時也是微軟公司向 Windows 操作系統(tǒng)(包括Windows NT、Windows2000、Windows
22、XP 等)出品的可視化的快速開發(fā)工具的產(chǎn)品。Visual C+是以可視化技術(shù)為基礎(chǔ),以 C+為主要編程語言,集成眾多工具的開發(fā)利器。其操作簡單,界面和功能設(shè)計符合程序員的開發(fā)習(xí)慣,同時配合使用微軟官方開發(fā)的幫助文檔 MSDN,可以給設(shè)計和開發(fā)工作帶來更大的便利。在一般的游戲設(shè)計中,Visual C+也是非常好的開發(fā)工具。2.2 Visual C+開發(fā)工具的特點Visual C+提供的 MFC 類庫,是一個很大的、擴展了的 C+類層次結(jié)構(gòu),其能使開發(fā) Windows 應(yīng)用程序變得更加容易。而且 MFC 在整個 Windows 家族中都是兼容的,也就是說,無論是 Windows98 還是 Wind
23、owsXP,所使用的 MFC 是兼容的。每當(dāng)新的Windows 版本出現(xiàn)時,MFC 也會得到修改以便使舊的編譯器和代碼能在新的系統(tǒng)中工作。MFC 也會得到擴展,添加新的特性、變得更加容易建立應(yīng)用程序。使用 MFC 的最大優(yōu)點是其做了所有最難做的事。MFC 中包含了成千上萬行正確的、優(yōu)化和功能強大的 Windows 代碼。其調(diào)用的很多成員函數(shù)可以幫助你完成自己可能很難完成的工作。一般性的界面開發(fā)工作也可以全部交給其來完成,用戶就只需在這些基礎(chǔ)上做出自己想要實現(xiàn)的功能即可。與其他開發(fā)工具相比,Visual C+完成Windows 圖形界面的程序所花費的時間要少得多。由于 MFC 編程方法充分利用了
24、面向?qū)ο蠹夹g(shù)的優(yōu)點,使得我們編程時極少需要關(guān)沈陽理工大學(xué)學(xué)士學(xué)位論文6心對象方法實現(xiàn)的細(xì)節(jié),同時類庫中的各種對象的強大功能足以完成程序中絕大部分所需的功能,這使得應(yīng)用程序中程序員所需編寫的代碼大為減少,有力地保證了程序的良好性和可調(diào)試性。近幾年經(jīng)過微軟公司不斷地完善,Visual C+在開發(fā)速度、程序執(zhí)行效率、程序文件大小與系統(tǒng)的集成性方面都有極大的提高,這使得其不但適應(yīng)開發(fā)一般的應(yīng)用軟件,還可以開發(fā)數(shù)據(jù)庫應(yīng)用軟件,同時更適合圖形圖像和文件壓縮等算法編程。另外由于其是微軟公司推出的,因此也能夠較好地與 Windows 平臺接合,深入操作系統(tǒng)的內(nèi)部和底層,實現(xiàn)高級程序設(shè)計要求,提高程序的運行效率
25、。2.3 運行環(huán)境運行環(huán)境首先需要操作系統(tǒng)的支持,開發(fā)本程序使用 Microsoft Windows XP 操作系統(tǒng),為使開發(fā)連連看游戲程序能穩(wěn)定運行,在硬件上至少需要奔騰 3CPU 做保證,內(nèi)存不低于 64MB,40G 硬盤空間,對顯卡要求不高,都能滿足顯卡需求,還有音響用于播放音樂。保證了以上的配置,就能保證使用 Microsoft Visual C+ 6.0 在 Microsoft Windows XP 系統(tǒng)中開發(fā)連連看游戲程序環(huán)境的可行性。沈陽理工大學(xué)學(xué)士學(xué)位論文73 系統(tǒng)需求分析及設(shè)計需求分析就是描述系統(tǒng)的需求,通過定義系統(tǒng)的關(guān)鍵域來建立模型,分析的根本目的是在開發(fā)者和提出需求的人之
26、間建立的一種理解和溝通機制。3.1 系統(tǒng)功能需求開發(fā)一款單機版的休閑類連連看游戲,該游戲具備的功能如下:(一)能夠顯示主菜單和界面 游戲需要提供主菜單讓玩家進行游戲設(shè)置,同時能夠顯示剩余時間、當(dāng)前游戲等級等相關(guān)信息到界面上。(2)能夠?qū)崿F(xiàn)時間限制功能能夠根據(jù)游戲狀態(tài)自動增加或者減少當(dāng)前時間限制長短。(3)能夠根據(jù)規(guī)則消除相同棋子游戲以鼠標(biāo)進行操作,第一次點擊棋盤中的棋子,該棋子此時為“被選中”狀態(tài),以特殊方式顯示出來;再次單擊其他棋子,若該棋子與被選中的棋子圖案相同,且把第一個棋子到第二個棋子連起來,中間的直線不超過 3 根,則消掉這一對棋子。并且當(dāng)前的時間限制長短增加,否則第一個棋子恢復(fù)成違
27、背選中狀態(tài),而第二個棋子變成被選中狀態(tài)。當(dāng)游戲時間全部消耗完時,則游戲結(jié)束。(4)游戲升級功能 當(dāng)游戲中的棋子全部消除完畢時,游戲等級上升一個等級。游戲等級沒增加一個等級,時間限制長度如表 3.1 所示。表 3.1 游戲等級與時間限制游戲等級時間限制長度游戲等級時間限制長度1120 秒670 秒2110 秒760 秒3100 秒850 秒490 秒940 秒580 秒1030 秒 沈陽理工大學(xué)學(xué)士學(xué)位論文8(5)消除提示功能 在游戲中,如果玩家覺得自己無法找到一對消除棋子時,可以使用快捷鍵(f5)調(diào)出游戲中的提示功能,來提醒當(dāng)前可消除的棋子。最多可使用 3 次。(6)棋子換盤功能如果玩家覺得自
28、己無法全部消除時,可以使用快捷鍵(f6)調(diào)用棋子換盤功能,重新把旗子隨機排列來繼續(xù)游戲,該功能最多可以使用 3 次。(7)英雄榜的更新當(dāng)有玩家得到的等級超過當(dāng)前記錄等級,在游戲結(jié)束時要求玩家把名字輸入并保存下來。游戲初始時記錄分?jǐn)?shù)線為 1 級。例如,第一個玩家的等級為 2 級,游戲結(jié)束時,那么這個玩家的等級將被保存下來作為最高游戲等級記錄。直到有玩家的等級超過 2 級,才能更新當(dāng)前記錄等級并在退出游戲等級時保存玩家名字及游戲等級。(8)游戲支持背景音樂功能通過主菜單,在游戲開始后,可以選擇播放或者禁止播放背景音樂。默認(rèn)為禁止播放。(9)游戲提供幫助說明文檔在游戲菜單中,提供一個使用說明項,以方
29、便對游戲不了解的玩家對游戲操作和使用。對于資源的需求,圖片資源必不可少,游戲中的小方塊是一組圖片資源,選用兩組圖案和排列完全相同但是背景色不同的兩組圖片作為小方塊的初始狀態(tài)和選定狀態(tài)。為了使游戲更具娛樂性,背景音樂及音效的添加也是必不可少的,所以此游戲程序也加入了的音樂文件資源沈陽理工大學(xué)學(xué)士學(xué)位論文93.2 概要設(shè)計3.2.1 總體設(shè)計 本程序共分為六個模塊,即主界面顯示模塊、棋子操作模塊、游戲升級模塊、播放音樂模塊、英雄榜模塊、幫助功能模塊。 連連看游戲的功能架構(gòu)(如圖 3.1 所示) 圖 3.1 連連看功能架構(gòu)連連看棋子操作功能棋子操作功能游戲升級功能播放音樂功能主界面顯示功能英雄榜功能
30、幫助功能棋子換盤棋子連接提示棋子顯示顯示菜單更新記錄沈陽理工大學(xué)學(xué)士學(xué)位論文103.2.2 游戲菜單結(jié)構(gòu)的設(shè)計連連看游戲菜單結(jié)構(gòu)的設(shè)計如圖 3.2 所示。 圖 3.2 游戲菜單結(jié)構(gòu)設(shè)計 當(dāng)用戶進入游戲界面,點擊游戲菜單里的“游戲”選項中的“開始”后,游戲正式開始。點擊菜單“游戲設(shè)置”里的背景音樂可以播放節(jié)奏感強烈的背景音樂。系統(tǒng)默認(rèn)設(shè)置為禁止播放背景音樂。當(dāng)玩家在游戲過程中遇到不能消除的棋子情況下,可以點擊菜單里的游戲幫助選項。英雄榜記錄了玩家游戲的最好記錄以及玩家的名字。3.3 連連看游戲的詳細(xì)設(shè)計3.3.1 游戲各功能的設(shè)計描述 在連連看游戲中,大致可以分為 8 個功能模塊。1.時間限制模
31、塊的算法設(shè)計 時間限制模塊的算法主要分為以下幾個步驟:(1)在游戲開始時,設(shè)置當(dāng)前時間(nOverTime)為 60 秒。(2)設(shè)定一個時間定時器 TIMER1,時間間隔為 1000 毫秒。連連看游戲游戲設(shè)置游戲幫助英雄榜ngb開始結(jié)束背景音樂幫助關(guān)于沈陽理工大學(xué)學(xué)士學(xué)位論文11(3)每當(dāng)?shù)谝淮螘r間間隔到時,就把當(dāng)前限制時間減少 1 秒。(4)如果游戲中有一對棋子消除時,就把限制時間增加 3 秒。例如,當(dāng)前限制時間為40 秒,這時有棋子被消除,那么限制時間變?yōu)?43 秒。(5)如果限制時間變成 0 秒,說明游戲結(jié)束,彈出結(jié)束提示對話框。如果當(dāng)前游戲等級超過記錄等級,還有彈出英雄榜對話框?qū)υ挕?
32、.消除相同棋子模塊的算法設(shè)計消除相同棋子模塊的算法主要分為以下幾個步驟:(1)當(dāng)鼠標(biāo)點擊棋子時,保存到棋子坐標(biāo)及類型到“第一次選中變量”中。(2)得到鼠標(biāo)第二次選中的棋子坐標(biāo)及類型。(3)比較兩次棋子類型,如果相同,轉(zhuǎn)步驟(4)。如果不相同,轉(zhuǎn)步驟(5)。(4)畫一條連接線,并消除這對棋子,退出等待下一次鼠標(biāo)選擇。(5)把鼠標(biāo)第二次選中的棋子坐標(biāo)及類型賦值給“第一次選中變量”。 3.游戲升級模塊的算法設(shè)計游戲升級模塊的算法主要分為以下幾個步驟:(1)保存當(dāng)前游戲等級和限制時間初始值。(2)當(dāng)游戲中的棋子全部被消除完畢時,就把當(dāng)前游戲等級增加一級。(3)把限制時間的初始值減少 10 秒。(4)調(diào)
33、用重新開始游戲接口函數(shù)。 4.消除提示模塊的算法設(shè)計消除提示模塊的算法主要分為以下幾個步驟:(1)判斷提示次數(shù)變量的值,如果等于 0,結(jié)束。(2)查找當(dāng)前棋盤中相同的棋子。(3)在相同棋子中,查找可以消除的棋子。(4)給出提示連線,提示次數(shù)變量減少 1. 5.棋子換盤模塊的算法設(shè)計棋子換盤模塊的算法主要分為以下幾個步驟:(1)保存當(dāng)前棋盤數(shù)組中的數(shù)據(jù)到臨時數(shù)組中。(2)循環(huán)地從臨時數(shù)組中,隨機取出數(shù)據(jù)保存到棋盤數(shù)組中。 沈陽理工大學(xué)學(xué)士學(xué)位論文12 6.英雄榜模塊的算法設(shè)計英雄榜模塊的算法主要分為以下幾個步驟:(1)在讀取配置文件(setup.ini),得到并顯示當(dāng)前最高等級和大名。(2)在玩
34、家結(jié)束游戲時,比較當(dāng)前用戶等級和最高等級。如果高于配置文件中的最高等級,就彈出“英雄榜”對話框,要求輸入玩家的名字,并連同玩家的等級保存到配置文件中。 7.音樂播放模塊和的算法設(shè)計音樂播放模塊比較簡單,只需要在用戶選擇音樂播放時,把音樂資源載入程序并播放。 8.幫助類模塊的算法設(shè)計幫助類模塊的算法也比較簡單,只要把相應(yīng)的對話框資源顯示出來就可以了。3.4 相關(guān)技術(shù)與重點難點3.4.1 相關(guān)技術(shù)GDI(Graphics Device Interface,圖形設(shè)備接口)主要負(fù)責(zé)在顯示屏幕和打印設(shè)備等方面輸出圖像信息,是一組通過 C+類實現(xiàn)的應(yīng)用程序編寫接口。作為一個設(shè)備接口,它可以使得開發(fā)人員在將
35、信息輸出于屏幕或打印機之時無需考慮具體的目標(biāo)輸出的硬件特性,只需調(diào)用 GDI 庫的一些方法進行操作即可,而具體的繪圖工作由特定的設(shè)備驅(qū)動來完成,從而使開發(fā)人員能輕松地在不同的硬件中做圖像繪制輸出。繪圖方案設(shè)計采用內(nèi)存位圖映射的方式,先將整個游戲區(qū)域的圖象繪制到內(nèi)存位圖中去,然后再一次性地將它加載到屏幕上予以顯示。先在內(nèi)存創(chuàng)建兩個內(nèi)存位圖,并對它們的圖象進行載入。在需要使用的時候,則可以從這些內(nèi)存位圖中直接去拷貝,并繪制到游戲區(qū)域內(nèi)存位圖中去。對框架位圖及人物位圖分別創(chuàng)建相應(yīng)的設(shè)備環(huán)境,并且為它們分配了關(guān)聯(lián)的內(nèi)存位圖變量。而對于游戲區(qū)域的繪制,亦為它創(chuàng)建了一個內(nèi)存設(shè)備環(huán)境以及關(guān)聯(lián)的內(nèi)存位圖。完成
36、以上工作后,需要在程序開始運行的時候,一次性地對它們進行適當(dāng)?shù)某跏蓟?。此游戲程序的關(guān)鍵在于游戲的繪圖方案,是此程序的難點,在此程序中的繪圖方案通過 GDI 技術(shù)實現(xiàn)。沈陽理工大學(xué)學(xué)士學(xué)位論文133.4.2 系統(tǒng)的重點難點此程序的重點是鼠標(biāo)的交互功能。通過 ClassWizard 對鼠標(biāo)左鍵被按下時觸發(fā)的命令消息進行攔截技術(shù)來實現(xiàn)。因為游戲的全部過程需要依靠鼠標(biāo)操作,所以鼠標(biāo)交互功能的設(shè)計是否人性化就成了此連連看游戲程序的重點。此程序的難點是連連看游戲程序的連接線功能。首先編寫一個創(chuàng)建路徑的類,通過這個類使游戲中消除小方塊時能夠找到一條可以連接的路徑進行連線,然后通過一個畫線的類進行連接。沈陽理
37、工大學(xué)學(xué)士學(xué)位論文143.5 游戲各功能流程圖(1)消除及時間限制功能流程圖。如圖 3.3 N圖 3.3 消除及限制時間功能流程圖游戲開始初始化棋盤 限制時間是否為 0游戲結(jié)束 是否選中相同棋子消除棋子限制時間增加接收玩家輸入沈陽理工大學(xué)學(xué)士學(xué)位論文15(2)游戲升級及英雄榜更新流程圖,如圖 3.4 所示。是 否否是 是圖 3.4 游戲升級及英雄榜更新功能流程圖 游戲開始 初始化棋盤時間限制是否為 0是否消除完畢 游戲增加一級當(dāng)前記錄是否高過歷史記錄保存新的記錄并且錄入玩家姓名結(jié)束游戲接收玩家輸入沈陽理工大學(xué)學(xué)士學(xué)位論文16(3)消除提示模塊流程圖,如圖 3.5 所示。 是 否 圖 3.5 消
38、除提示模塊功能流程圖游戲開始初始化棋盤 限制時間是否為 0游戲結(jié)束消除提示次數(shù)是否 為 0消除棋子消除提示次數(shù)減少一次接收玩家輸入沈陽理工大學(xué)學(xué)士學(xué)位論文17(4)棋子換盤模塊功能流程圖,如圖 3.6 所示。 是 否 圖 3.6 棋子換盤模塊功能流程圖游戲開始初始化棋盤 限制時間是否為 0游戲結(jié)束換盤次數(shù)是否為 0消除棋子換盤次數(shù)減少一次 接收玩家輸入沈陽理工大學(xué)學(xué)士學(xué)位論文183.6 主對話框的設(shè)計與實現(xiàn)3.6.1 主對話框的設(shè)計連連看的主對話框類,主要負(fù)責(zé)顯示游戲界面、等級、時間顯示、及快捷鍵調(diào)用等內(nèi)容。其主要有如下幾個處理模塊。1.主菜單處理模塊主菜單處理模塊比較簡單,只需要創(chuàng)建一個菜單
39、對象,并在對話框初始化函數(shù)進行加載相應(yīng)資源并設(shè)置到對話框中。2.連接提示處理模塊 連接提示模塊,主要調(diào)用棋子類中的查找有效連接接口函數(shù),通過返回的兩個圖標(biāo)相同棋子位置來設(shè)置兩個棋子的狀態(tài)為按下。3.換盤處理模塊換盤處理模塊,主要是把棋盤數(shù)組中的數(shù)據(jù)重新進行隨機排列。4.初始化棋盤數(shù)據(jù)模塊初始化棋盤數(shù)據(jù)模塊,利用隨機數(shù),隨機地選擇在棋盤數(shù)組中插入棋子數(shù)據(jù)。每一類棋子生成 2 組 4 個相同的數(shù)據(jù)。5.游戲信息處理模塊游戲信息處理模塊,主要利用設(shè)置定時器,每一秒進行更新顯示區(qū)域。在這些區(qū)域中,以繪圖方式進行輸出。3.6.2 主對話框的實現(xiàn) 實現(xiàn)主對話框類 CLIKDIg 需要如下個步驟:(1)聲明
40、主對話框類 CLIKDIg 類,其中包含鏈接提示、顯示棋盤、換盤、初始化游戲及棋盤數(shù)據(jù)函數(shù)。(2)添加主對話框類 CLIKDIg 的實現(xiàn),其中包含基本的初始化對話框函數(shù)、游戲開始處理函數(shù)、及背景音樂播放功能函數(shù)。(3)給主對話框類添加顯示函數(shù)、分?jǐn)?shù)和游戲等級信息更新函數(shù)及接收玩家鍵盤輸入沈陽理工大學(xué)學(xué)士學(xué)位論文19處理函數(shù)。(4)游戲中要求實現(xiàn)限制時間和最高紀(jì)錄處理功能,所以必須在主對話框類中再添加定時器處理和最高紀(jì)錄處理功能函數(shù)。在定時器響應(yīng)函數(shù)中,根據(jù)當(dāng)前時間剩余數(shù)判斷,如果小于 0 則說明時間已到,提示用戶游戲結(jié)束,并接收用戶是否重新開始的選擇,然后根據(jù)選擇重新開始游戲或者結(jié)束游戲。如果
41、是結(jié)束游戲,還需要調(diào)用超記錄對話框。(5)實現(xiàn)主對話框類中的棋盤換盤、棋子連接提示及棋盤初始化功能函數(shù)。 調(diào)用換盤函數(shù)進行棋盤的重新排列,其中使用了循環(huán)語句來判斷,因為棋子全部是隨機排列,有可能還是無法消除的棋子,所以必須判斷有棋子可以消除時才能換盤成功。 CLlkDlg:CallHint()是顯示連接提示函數(shù),其主要是調(diào)用配對函數(shù) Hint(),得到當(dāng)前棋盤中可以連接的兩個棋子,并將其設(shè)置為按下狀態(tài),這樣就實現(xiàn)了提示。CLlkDlg:Exchange(int mapMAXY)是換盤函數(shù),該函數(shù)主要是將整個棋盤數(shù)據(jù)保存到臨時數(shù)組中,然后利用隨機數(shù)重新排列棋盤數(shù)組中的數(shù)據(jù),實現(xiàn)換盤。CLlkDl
42、g:RefreshMap()是跟新棋盤函數(shù),主要思想是遍歷整個棋盤數(shù)組,然后將其中為空或者消除后的區(qū)域加入到刷新范圍內(nèi)進行刷新,不進行全界面刷新以防閃爍。CLlkDlg:InitMap(int mapMAXY)是初始化棋盤數(shù)組,主要是隨機將相同類型的 4 個棋子放到棋盤數(shù)組不同的位置中。3.7 棋子類的設(shè)計與實現(xiàn)3.7.1 棋子類的設(shè)計棋子類,包含如下幾個功能函數(shù)。1.游戲勝負(fù)的判斷處理游戲勝負(fù)的處理步驟如下:(1)等待玩家的鼠標(biāo)輸入信息。(2)在定時器中,每次扣除游戲限制時間 1 秒。(3)當(dāng)游戲時間為 0 時,彈出游戲失敗結(jié)束提示,并根據(jù)玩家選擇重新開始游戲或者結(jié)束游戲。(4)在玩家消除一
43、對棋子后,就對當(dāng)前棋盤數(shù)組進行遍歷。如果是空,說明玩家已經(jīng)全部消除完畢,然后調(diào)用升級處理。如果不是空,則返回步驟(1)。沈陽理工大學(xué)學(xué)士學(xué)位論文202.游戲升級處理游戲升級處理步驟如下:(1)當(dāng)游戲中的棋子全部被消除完后,彈出升級提示對話框。(2)當(dāng)玩家選擇繼續(xù)時,就調(diào)用主對話框類的重新開始游戲接口函數(shù)。但要把當(dāng)前游戲等級增加 1 級。(3)當(dāng)玩家選擇不繼續(xù)時,直接調(diào)用退出函數(shù)。 3.查找處理查找處理實現(xiàn)步驟如下:(1)遍歷整個棋盤數(shù)組。(2)查找一根直線可以連接的一對棋子,如果沒有則轉(zhuǎn)下一步;如果有則轉(zhuǎn)至步驟(6)。(3)查找有一個拐角,即兩根直線以連接的一對棋子,如果沒有則轉(zhuǎn)下一步;如果有
44、則轉(zhuǎn)至步驟(6)。(4)查找有兩個拐角的,即三根直線以連接的一對棋子,如果沒有則轉(zhuǎn)下一步;如果有則轉(zhuǎn)至步驟(6)。(5)如果返回假,表示查找失敗。(6)如果返回真,表示查找成功,并把棋子的位置在輸出參數(shù)中返回。4.提示處理提示處理是通過調(diào)用查找函數(shù),把其中可以連接的一對棋子的位置通過輸入?yún)?shù)返回給上層調(diào)用者,由調(diào)用者設(shè)置相關(guān)棋子為選中狀態(tài)。3.7.2 棋子類的實現(xiàn) 棋子類 CChessMan 的實現(xiàn),分為如下幾個步驟:(1)聲明棋子類 CChessMan,其中包含兩個構(gòu)造函數(shù)、查找接口函數(shù)、判斷棋子為空函數(shù)以及鼠標(biāo)響應(yīng)函數(shù)。(2)添加棋子類的實現(xiàn),其中包含基本的構(gòu)造函數(shù)、析構(gòu)函數(shù)、鼠標(biāo)響應(yīng)函數(shù)
45、等。其中,if(parent-m_p=NULL) | (parent-m_p-m_id!=m_id)|(parent-m_p-m_pos.x=m_pos.x)&(parent-m_p-m_pos.y=m_pos.y)是用來判斷當(dāng)前是否按下了棋子,并且是否是同一個棋子,如果是兩個不同的棋子,則調(diào)用 find()函數(shù)查找之間是否可以消除。棋子的消除,主要是將兩個棋子設(shè)置為 0 進行隱藏,并跟新棋子沈陽理工大學(xué)學(xué)士學(xué)位論文21數(shù)組及信息區(qū)。調(diào)用 IsEmpty()函數(shù)判斷棋子是否全部消除完畢,當(dāng)全部消除完畢時,就給出提示窗口,讓玩家選擇是否繼續(xù)下一關(guān),玩家選擇繼續(xù)則增加等級數(shù),同時調(diào)用sta
46、rt()函數(shù)重新開始;玩家選擇結(jié)束的話,則進行最高等級判斷以及清除窗口工作。調(diào)用 Hint()函數(shù)查找棋盤中是否有可以匹配的棋子,如果有,則不做任何操作;否則自動調(diào)用換盤函數(shù)進行換盤,并增加換盤數(shù)。(3)棋子類的查找接口、棋盤判空功能函數(shù)的實現(xiàn)。前一個查找函數(shù)的實現(xiàn),主要利用輸入兩個棋子坐標(biāo)來查找有無連線。后面一個查找函數(shù),是在前一個查找函數(shù)的基礎(chǔ)上增加了棋子間有連接就要把棋子的拐角位置輸出。(4)實現(xiàn)棋子類的配對接口函數(shù)分為兩種:一種是判斷當(dāng)前棋盤上有無配對棋子;另一種是在前一種的基礎(chǔ)上添加輸出配對棋子坐標(biāo)的功能。前一種判斷當(dāng)前棋盤上有沒有可以配對的棋子的函數(shù),主要是遍歷全部棋盤數(shù)組中的元素
47、,但要除去其中棋子類型為消除了的(0)或者類型不相同及棋子位置相同的。然后查找棋盤數(shù)組中的元素。查找兩個棋子之間有無可以有效連接的線,如果有,則說明還有可配對的棋子。后一種是判斷當(dāng)前棋盤上有沒有可以配對的棋子的函數(shù),其不同的是需要輸出兩個棋子的位置,這樣就可以將兩個棋子顯示出來。 (5)實現(xiàn)各種不同的查找函數(shù)。包含查找一根直線連接函數(shù)、查找一個拐角連接函數(shù)和查找兩個拐角連接函數(shù)。第一個是查找兩個棋子之間是否有直接連接的實現(xiàn),實現(xiàn)思想是先判斷是否是同一行或者同一列,如果是同一行,則比較兩個棋子同一行間是否有棋子存在(0 和-1 不算,0 是已消除,-1 是邊界),如果有,則說明不可連。否則說明可
48、連。同理可以判斷同一列的情況。第二個是查找兩個棋子之間是否有 2 條直線可以連接的實現(xiàn),用來查找由兩個棋子所在的點構(gòu)成的矩形的各個角是否有棋子存在,如果有,就直接跳過;沒有才判斷該點與兩個棋子分別是不是可以用直線相連,如果可以連,則說明兩個棋子用 2 條直線可以連接,反之不可以連。最后如果各個角都不為空,則說明兩個棋子不可連。第三個是查找三根直線可以連接的棋子,在整個棋盤數(shù)組中查找 2(a,b)個點(這兩個點必須是消除過的棋子或者是邊界位置)。其中,a 點能夠與棋子 1 直線相連,b 點能夠與棋子 2 直線相連,那么兩個棋子是配對的,他們就可以被消除掉。對于棋子的布局,依舊是采用常用的機制,先
49、用 srand()函數(shù)對時間函數(shù)布下隨機沈陽理工大學(xué)學(xué)士學(xué)位論文22種子,然后調(diào)用 rand()函數(shù)對具體的圖案棋子的種類進行隨機的獲取。對于圖片資源的,可以先在內(nèi)存創(chuàng)建兩個內(nèi)存位圖,并對它們的圖像進行載入。在需要使用的時候,則可以從這些內(nèi)存位圖中直接去拷貝,并繪制到游戲區(qū)域內(nèi)存位圖中去。首先,對棋子的兩種狀態(tài)所對應(yīng)的圖片分別創(chuàng)建相應(yīng)的設(shè)備環(huán)境,并且為它們分配關(guān)聯(lián)的內(nèi)存位圖變量。而對于游戲區(qū)域的繪制,則通過設(shè)備環(huán)境中的圖形物件群的調(diào)用進行直接繪制。 3.8 人機界面設(shè)計人機交互技術(shù)(Human-Computer Interaction Techniques)是指通過計算機輸入、輸出設(shè)備,以有效
50、地方式實現(xiàn)人與計算機對話的技術(shù)。它包括機器通過輸出或顯示設(shè)備給人提供大量有關(guān)信息及提示請示等,人通過輸入設(shè)備給機器輸入有關(guān)信息及提示請示等,人通過輸入設(shè)備給機器輸入有關(guān)信息,回答問題等。人機交互技術(shù)是計算機用戶界面設(shè)計中的重要內(nèi)容之一。它與認(rèn)知學(xué)、人機工程學(xué)、心理學(xué)等學(xué)科領(lǐng)域有密切的聯(lián)系。人機交互功能是決定系統(tǒng)“友善性”的一個重要因素。人機交互功能主要靠可輸入輸出的外部設(shè)備和相應(yīng)的軟件來完成??晒┤藱C交互使用的設(shè)備主要有鍵盤顯示、鼠標(biāo)、各種模式識別設(shè)備等。與這些設(shè)備相應(yīng)的軟件就是操作系統(tǒng)提供人機交互功能的部分。人機交互部分的主要作用是控制有關(guān)設(shè)備的運行和理解并執(zhí)行通過人機交互設(shè)備傳來的有關(guān)的各
51、種命令和要求。早期的人機交互設(shè)施是鍵盤顯示器。操作員通過鍵盤打入命令,操作系統(tǒng)接到命令后立即執(zhí)行并將結(jié)果通過顯示器顯示。打入的命令可以有不同方式,但每一條命令的解釋是清楚的,唯一的。隨著計算機技術(shù)的發(fā)展,操作命令也越來越多,功能也越來越強。隨著模式識別,如語音識別、漢字識別等輸入設(shè)備的發(fā)展,操作員和計算機在類似于自然語言或受限制的自然語言這一級上進行交互成為可能。此外,通過圖形進行人機交互也吸引著人們?nèi)ミM行研究。這些人機交互可稱為智能化的人機交互。這方面的研究工作正在積極開展。對于本程序,為了增強趣味性以及操作性,人機界面設(shè)計必不可少。 1.為使游戲界面友好美觀,在顏色上的搭配很重要,由于有很
52、多種人物的圖案而且顏色很多,所以其它區(qū)域顏色不可很多,采用單一色調(diào)即可保持美觀、簡潔。沈陽理工大學(xué)學(xué)士學(xué)位論文23圖 3.7 進行中的游戲界面2.在適當(dāng)時刻應(yīng)予以提示操作。當(dāng)游戲時間結(jié)束的時候,系統(tǒng)提示游戲時間到,可以選擇繼續(xù)游戲或者結(jié)束游戲。在過關(guān)的時候,系統(tǒng)提示玩家是否要挑戰(zhàn)下一關(guān)。如圖 3.8 所示 圖 3.8 游戲提示窗口通過以上這些設(shè)計以達(dá)到人機界面的友好、美觀,更能吸引玩家進行游戲。 沈陽理工大學(xué)學(xué)士學(xué)位論文24 4 連連看游戲的調(diào)試調(diào)試是軟件開發(fā)過程中最艱巨的腦力勞動,調(diào)試開始時,軟件開發(fā)者僅僅面對著錯誤的征兆,然而在問題的外部現(xiàn)象和內(nèi)在原因之間往往并沒有明顯的聯(lián)系,在組成程序的
53、密密麻麻的元素中,每一個都可能是錯誤的根源。如何能在浩如煙海的程序元素中找到有錯誤的那個元素,這是調(diào)試過程中最關(guān)鍵的技術(shù)問題。4.1 主界面和界面顯示功能調(diào)試 程序啟動后,其主菜單及主界面如圖4.1所示。圖 4.1 連連看游戲主界面及菜單判斷結(jié)果:游戲的菜單和界面顯示成功。沈陽理工大學(xué)學(xué)士學(xué)位論文254.2 消除相同棋子的功能調(diào)試游戲開始后,查看其中相同的棋子,選中其中一個,如圖 4.2。圖 4.2 選中相同的棋子選中兩個相同的棋子,棋子被消除,如圖 4.3 所示。沈陽理工大學(xué)學(xué)士學(xué)位論文26圖 4.3 選中相同的棋子,棋子被消除 判斷結(jié)果:消除相同的棋子功能測試成功。4.3 游戲升級功能的調(diào)
54、試 查看當(dāng)前游戲等級,如圖 4.4 所示。圖 4.4 當(dāng)前游戲等級 消除完全部棋子時,查看有無提示。單擊“確定”按鈕,如圖 4.5 所示。圖 4.5 消除完全部棋子時的界面沈陽理工大學(xué)學(xué)士學(xué)位論文27升級后,查看當(dāng)前游戲等級,如圖 4.6 所示。圖 4.6 升級后的游戲等級 判斷結(jié)果:通過比較,游戲中的升級功能正確。4.4 消除提示功能調(diào)試 測試連連看游戲是否有幫助提示功能。 選擇“幫助”| “幫助”命令,游戲彈出幫助對話框,如圖 4.7 所示。 圖 4.7 游戲幫助對話框判斷結(jié)果:連連看游戲幫助提示正確。沈陽理工大學(xué)學(xué)士學(xué)位論文284.5 棋子換盤功能的調(diào)試 運行游戲后,消除若干配對棋子,如
55、圖 4.8 所示。圖 4.8 消除若干配對棋子的棋盤 按下快捷鍵 f6,調(diào)用換盤功能后,棋盤如圖 4.9 所示圖 4.9 換盤后的棋盤 判斷結(jié)果:通過比較,連連看的換盤功能得到實現(xiàn)。沈陽理工大學(xué)學(xué)士學(xué)位論文294.6 消除提示功能的調(diào)試 測試連連看游戲中使用快捷鍵 f5,調(diào)用消除提示功能。游戲界面上有配對棋子提示,如圖 4.10 所示。圖 4.10 消除配對提示綜合所有測試,連連看游戲程序功能基本實現(xiàn)。沈陽理工大學(xué)學(xué)士學(xué)位論文30結(jié)論通過幾個月的思考和專研,最終完成了連連看游戲程序設(shè)計。程序的完成情況還算不錯,基本實現(xiàn)了一款連連看的所有功能。游戲運行比較穩(wěn)定,在游戲過程中還沒有出現(xiàn)過因系統(tǒng)原因
56、造成的錯誤,游戲界面簡潔,美觀。背景的選擇也是符合一定的美學(xué)的,在視覺上給于玩家美得感受。游戲操作也比較簡單,使得玩家可以輕松上手。在算法問題上,處理的比較得體,不會造成互相干擾,尤其是方塊的消除算法,做的比較詳細(xì)、清晰,這也造成了代碼量很大,導(dǎo)致工作量很大。在這個游戲中還有很多的不足,畢竟是第一次編寫游戲程序,而且編寫游戲程序的要求很高。是游戲就有 BUG,不能保證此連連看游戲程序沒有任何錯誤,只能把顯性錯誤消除,也盡量減少隱形錯誤的數(shù)量。本系統(tǒng)還有許多不盡如人意的地方,比如功能較少,人機交互也少,出錯處理不夠等多方面問題。軟件開發(fā)是一個不斷完善的過程,只有在實際的使用過程中才能不斷地發(fā)現(xiàn)問
57、題,從而再加以改進。而在系統(tǒng)的設(shè)計過程中,難免會出現(xiàn)一些預(yù)測不到的異常,這些異常甚至在系統(tǒng)測試階段都檢查不出來,只有在用戶的使用過程中才能檢查出來,很多地方未能考慮周全導(dǎo)至系統(tǒng)存在著很多不足之處,這些不足主要是由于時間不足造成的。在代碼設(shè)計上也存在不足,容易造成系統(tǒng)運行效率的降低,這就需要在以后系統(tǒng)使用過程中逐步發(fā)現(xiàn),并不斷進行升級。本程序還可以在許多地方進行擴展,地圖的數(shù)量還可以增加,地圖的類型也可以不斷改變,可以設(shè)置更多的道具,可以提供玩家選擇多種不同的人物或者水果圖片,不同地圖配有不同的背景音樂等等。這些功能可以把連連看游戲的娛樂性發(fā)展到一個新的高度,這些功能都會在以后的時間內(nèi)進行不斷改
58、善。 在設(shè)計前期我查閱了很多相關(guān)的書籍,去了解連連看這款小游戲。包括自己也去小游戲網(wǎng)站上玩了玩許多版本的連連看,這加深了我對這款游戲的理解和認(rèn)識。在設(shè)計過程中,有很多不是特別會的算法包括一些 MFC 工具的使用,由于老師同學(xué)們給了我很大的幫助和鼓勵,并且通過上網(wǎng)查資料,最終克服了一個又一個的問題,才使得我能把這款小游戲完成,真的很感謝。調(diào)試程序的時候也出了很多的岔子,之前用的操作系統(tǒng)是 Windows 8.1,對于 visual stdio 6.0 存在兼容的問題,最后換了成 win7 系統(tǒng)后解決了不兼容。MFC 類庫可以幫助程序員編寫大量的高效率的正確的 windows 應(yīng)用程序,通過這次畢
59、設(shè),加強了我對 vc+各種控件的了解,如利用 Picture 控件顯示圖沈陽理工大學(xué)學(xué)士學(xué)位論文31像,以及學(xué)習(xí) windows 的 API 函數(shù),如用來播放背景音樂的 sndPlaySound()函數(shù)等。在選擇棋子圖片時,考慮到現(xiàn)在有很多高中生,大學(xué)生在玩一款現(xiàn)在十分流行的游戲,采用了該游戲里面比較經(jīng)典的人物形象。這不但使得游戲更加美觀,同時也增加了趣味性。總之這次的畢業(yè)設(shè)計讓我學(xué)到了很多以前課本上很少講到的知識,增加了我的編程經(jīng)驗,這必定有助于編程意識和能力的培養(yǎng)。 沈陽理工大學(xué)學(xué)士學(xué)位論文32致謝經(jīng)過這段時間的學(xué)習(xí)與實踐,使我對游程的發(fā)展及現(xiàn)狀有了更深刻的認(rèn)識,并對Visual C+ 6
60、.0 軟件有了一定程度的了解,學(xué)習(xí)了 Visual C+ 6.0 的相關(guān)知識及如何利用 Visual C+ 6.0 編譯程序,特別是以前從未接觸過的 MFC 應(yīng)用程序,從了解到學(xué)習(xí),再到最后的使用,我的收獲是不可用語言表達(dá)的。經(jīng)過這段短暫時間的學(xué)習(xí),我想我對于知識的獵取是有限的,關(guān)鍵是我學(xué)會了如何用認(rèn)真、嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度去面對工作,如何用自學(xué)的方法來處理問題。通過編寫這個程序,我體會最為深刻的一點是系統(tǒng)架構(gòu)和設(shè)計模式的重要性。即使是對于一個并不大的程序,代碼的組織都是非常重要的,因為這關(guān)系到日后的維護以及擴展。這個游戲之中,有關(guān)繪圖算法編程的知識都可以直接從無所不包的 Internet上獲取,甚至可以直
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 書籍稿件出版合同標(biāo)準(zhǔn)文本
- 企業(yè)人事聘用合同范例
- 公眾號推廣合同標(biāo)準(zhǔn)文本
- 個人借款無息合同標(biāo)準(zhǔn)文本
- 借款利息合同標(biāo)準(zhǔn)文本6
- 代加工生產(chǎn)協(xié)議合同范例
- 出口生產(chǎn)合同范例
- 不銹鋼攻城合同標(biāo)準(zhǔn)文本
- 個人小額貸款合同標(biāo)準(zhǔn)文本
- 中藥檳榔采購合同標(biāo)準(zhǔn)文本
- 電機與變壓器(第6版)PPT完整全套教學(xué)課件
- 麗聲北極星分級繪本第三級下 The Best Time of
- 某醫(yī)學(xué)院醫(yī)學(xué)生腎病科疾病教案-腎小球疾病
- 中考數(shù)學(xué)計算題100道
- 干部選拔任用工作全程記實表
- GB/T 23641-2018電氣用纖維增強不飽和聚酯模塑料(SMC/BMC)
- GB/T 10611-2003工業(yè)用網(wǎng)標(biāo)記方法與網(wǎng)孔尺寸系列
- 山鬼教學(xué)講解課件
- 雅佳AKAI-EWI5000-中文音色表
- 免疫預(yù)防與疫苗課件
- 家具檢驗表格
評論
0/150
提交評論