freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

連連看游戲設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)-wenkub

2023-07-03 15:04:20 本頁(yè)面
 

【正文】 但還可以進(jìn)一步提高效率,下面進(jìn)行討論。首先在圖形1所在位置向四個(gè)方向進(jìn)行直線查找,如果在某一方向上找到圖形2則結(jié)束。return } { Set picture S 。)://判斷圖片A與圖片B能否經(jīng)過(guò)不多于2個(gè)轉(zhuǎn)角的路徑相連的算法bool那么判斷B與A能否相連只需判斷B是否存在于集合S中即可。(紅色塊為欲消除塊,黑色代表其他阻攔塊,黃色c代表折點(diǎn),綠色代表折線),如圖23圖23垂直掃描。判斷是否經(jīng)兩個(gè)轉(zhuǎn)角連通的算法需要做兩個(gè)方向上的掃描:水平掃描和垂直掃描。(紅色塊為欲消除塊)如圖21圖21b) 一個(gè)轉(zhuǎn)角連通:其實(shí)相當(dāng)于兩個(gè)圖片劃出一個(gè)矩形,這兩個(gè)圖片是一對(duì)對(duì)角頂點(diǎn),另外兩個(gè)頂點(diǎn)如果可以同時(shí)和這兩個(gè)棋子直連,那就說(shuō)明可以一折連通。2. 系統(tǒng)分析 技術(shù)可行性分析 算法分析連連看程序的關(guān)鍵是判斷用戶(hù)點(diǎn)擊兩個(gè)圖案能否消除,兩張圖片消除的條件有兩個(gè):(即用不超過(guò)三根直線連接兩張圖片)根據(jù)判斷能否通過(guò)不超過(guò)三根直線連接兩張圖片的原則,有兩種實(shí)用的算法,下面是討論方案::這里實(shí)質(zhì)上是一種遞歸的思想,要判斷圖片A與圖片B能否通過(guò)一條有N個(gè)轉(zhuǎn)角的路徑相連,可以轉(zhuǎn)化為判斷能否找到圖片C,C與A能直線相連,且C與B能用一條有N1個(gè)轉(zhuǎn)角的路徑相連。3,重置功能,當(dāng)游戲陷入僵局的時(shí)候,重置功能可以成功解除僵局,使游戲繼續(xù)進(jìn)行。這樣圖片的位置模式大致就清晰了,1,2轉(zhuǎn)角均可以用0個(gè)轉(zhuǎn)角解決,遞歸的方式簡(jiǎn)單易行,便于理解,思路層次分明。 游戲設(shè)計(jì)的主要工作 游戲設(shè)計(jì)需要解決的問(wèn)題開(kāi)始制作游戲時(shí),主要要解決的問(wèn)題有以下幾個(gè)方面:如何設(shè)置整個(gè)游戲的界面;如何控制連連看游戲中隨機(jī)圖片的生成且每種圖片必須為偶數(shù)個(gè);游戲開(kāi)始后,判斷鼠標(biāo)兩次點(diǎn)擊的圖片能否消去,即圖片是否相同且圖片之間路徑的判斷;如何判斷游戲是否結(jié)束以及輸贏問(wèn)題等。 僵局的重置由于游戲的圖片生成是隨機(jī)的,因此,在消除到一定階段的時(shí)候,可能會(huì)出現(xiàn)有圖片但是不滿(mǎn)足消除規(guī)則的情況,重排的按鈕可以實(shí)現(xiàn)圖片的重新加載,從而能夠再次消除。 游戲功能 美觀大氣的界面本連連看游戲采用藍(lán)色背景作為主色調(diào),界面簡(jiǎn)潔大方,按鈕及提示框排布合理,便于玩家的操作。如“水晶連連看”、“果蔬連連看”等,流行的“水晶連連看”以華麗界面吸引了一大批的女性玩家。 游戲“連連看”是源自臺(tái)灣的桌面小游戲,自從流入大陸以來(lái)風(fēng)靡一時(shí),也吸引眾多程序員開(kāi)發(fā)出多種版本的“連連看”。連連看游戲設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)目錄摘 要 IABSTRACT II目錄 11. 緒 論 1 游戲簡(jiǎn)介 1 游戲背景 1 游戲規(guī)則 1 游戲功能 1 美觀大氣的界面 1 背景音樂(lè)的添加 1 獎(jiǎng)勵(lì)時(shí)間的設(shè)置 1 提示功能 1 僵局的重置 1 得分記錄、難度 2 開(kāi)始、重新開(kāi)始、退出 2 游戲設(shè)計(jì)的主要工作 2 游戲設(shè)計(jì)需要解決的問(wèn)題 2 游戲設(shè)計(jì)需要使用的算法 2 游戲設(shè)計(jì)創(chuàng)新點(diǎn) 22. 系統(tǒng)分析 4 技術(shù)可行性分析 4 算法分析 4 開(kāi)發(fā)語(yǔ)言分析 12 開(kāi)發(fā)平臺(tái)分析 14 需求分析 16 環(huán)境分析 16 16 17 173. 游戲概要設(shè)計(jì) 18 任務(wù)概述 18 目標(biāo) 18 需求概述 18 總體設(shè)計(jì) 18 處理流程 18 系統(tǒng)結(jié)構(gòu)圖 18 游戲界面模塊設(shè)計(jì) 19 圖片的隨機(jī)生成 19 圖片消除路徑判斷 19 背景音樂(lè)的模塊 214. 詳細(xì)設(shè)計(jì) 23 視圖層設(shè)計(jì) 23 界面效果圖,如圖41 23 思路 23 邏輯層設(shè)計(jì) 23 圖片偶數(shù)對(duì)存放以及隨機(jī)生成 23 圖片消除路徑判斷詳細(xì)設(shè)計(jì) 26 其他控件的設(shè)計(jì)實(shí)現(xiàn) 31 重排按鈕實(shí)現(xiàn) 31 提示按鈕實(shí)現(xiàn) 32 獎(jiǎng)勵(lì)時(shí)間和進(jìn)度條的邏輯實(shí)現(xiàn) 34 音樂(lè)模塊實(shí)現(xiàn) 365. 游戲測(cè)試 38 軟件測(cè)試 38 軟件測(cè)試簡(jiǎn)介 38 測(cè)試方法 38 測(cè)試步驟 38 連連看游戲系統(tǒng)測(cè)試 39 游戲系統(tǒng)性能分析 39結(jié)論 40致謝 41參考文獻(xiàn) 42外文原文 43中文翻譯 49 1. 緒 論 游戲簡(jiǎn)介 游戲背景連連看游戲是游戲中經(jīng)典中的經(jīng)典,曾經(jīng)風(fēng)靡網(wǎng)絡(luò),無(wú)論是單機(jī)版的還是網(wǎng)絡(luò)對(duì)戰(zhàn)的,它以簡(jiǎn)單,容易上手,圖片新穎的特點(diǎn)獲得了大量的粉絲,它是一款經(jīng)久不衰的休閑小游戲,適合閑來(lái)無(wú)事的大眾,以供消遣。這其中,顧方編寫(xiě)的“阿達(dá)連連看”以其精良的制作廣受好評(píng),這也成為顧方“阿達(dá)系列軟件”的核心產(chǎn)品。2008年,隨著社交網(wǎng)絡(luò)的普及和開(kāi)放平臺(tái)的興起,“連連看”被引入了社交網(wǎng)絡(luò)。 背景音樂(lè)的添加只要打開(kāi)游戲,游戲的背景音樂(lè)就緩緩的流露出來(lái),滋潤(rùn)心田,選擇相應(yīng)的按鈕后,還會(huì)有提示音,成功連線消除圖片后能播放消除的提示音。 得分記錄、難度為了提高玩家的游戲的積極性,以及為了保證游戲的完整性,游戲?qū)⒔y(tǒng)計(jì)玩家的得分情況,消除一對(duì)圖片,就會(huì)得到相應(yīng)的分?jǐn)?shù),以數(shù)據(jù)反應(yīng)玩家的游戲完成進(jìn)展。 游戲設(shè)計(jì)需要使用的算法針對(duì)游戲中最核心的兩個(gè)問(wèn)題,1連連看游戲中隨機(jī)圖片的生成且每種圖片必須為偶數(shù)個(gè),2圖片是否相同且圖片之間路徑的判斷,我們需要使用合適的算法來(lái)解決這兩個(gè)棘手的問(wèn)題。其他的問(wèn)題均是圍繞這兩個(gè)問(wèn)題產(chǎn)生的,由此可以這兩個(gè)問(wèn)題的重要性以及良好算法設(shè)計(jì)的必要性。,游戲在開(kāi)始后,背景音樂(lè)就進(jìn)行播放,當(dāng)鼠標(biāo)點(diǎn)擊圖片的時(shí)候,配對(duì)的點(diǎn)擊音樂(lè)也進(jìn)行播放,用于提示。若這樣的圖片C存在,那么A與B就可以通過(guò)一條有N個(gè)轉(zhuǎn)角的路徑相連。(紅色塊為欲消除塊,黑色代表其他阻攔塊,圓圈代表折點(diǎn))如圖22圖22c) 兩個(gè)轉(zhuǎn)角連通: 判斷圖片A與圖片B能否經(jīng)過(guò)有兩個(gè)轉(zhuǎn)角的路徑連通實(shí)質(zhì)上可以轉(zhuǎn)化為判斷能否找到一個(gè)點(diǎn)C,這個(gè)C點(diǎn)與A可以直線連通,且C與B可以通過(guò)有一個(gè)轉(zhuǎn)角的路徑連通。水平掃描。為了判斷A,B能否通過(guò)2個(gè)轉(zhuǎn)角連通,則從A開(kāi)始在垂直方向上下掃描,并判斷經(jīng)過(guò)的點(diǎn)能否與B點(diǎn)經(jīng)過(guò)1個(gè)轉(zhuǎn)角連通。采用廣度優(yōu)先搜索算法可以方便的實(shí)現(xiàn)這一構(gòu)想。Match( Picture A,Picture B ){Set picture T 。 //用于記錄當(dāng)前搜索到節(jié)點(diǎn)的最大轉(zhuǎn)角數(shù)While( B 不在S 中amp。 T中的所有元素加入到S中 if( B 在S中) false否則,記錄下所有這四個(gè)方向上的空白格子,并在每一個(gè)空白格子的其他3個(gè)方向上進(jìn)行直線搜索。圖213以圖214為例,我們的目標(biāo)是找到圖形1和圖形2之間的最短路徑,我們從圖形1出發(fā)進(jìn)行查找動(dòng)作。但如果二者在一條直線上的話(huà),還需要判斷他們之間是否有障礙物存在。如果val=0則說(shuō)明兩個(gè)圖形間存在直線路徑,否則說(shuō)明二者之間不存在直線路徑。我們可以用上面的方法分別來(lái)測(cè)試這兩條路徑上是否有障礙存在,如果沒(méi)有障礙則作為最短路徑返回,否則就要進(jìn)行第三步。這兩個(gè)結(jié)構(gòu)具體的功能后面用到的時(shí)候會(huì)詳細(xì)介紹。如圖214所示,在這一步我們需要把搜索方向在“向上”和“向左”兩個(gè)方向上擴(kuò)展,所獲得的路徑分別用紅色框和粉色框表示,這個(gè)動(dòng)作類(lèi)似于把藍(lán)色框向上和向左拉伸。(2)在每次消去兩個(gè)格子之后,自然更新要更新需要維護(hù)的數(shù)據(jù),這樣的思路有哪些優(yōu)缺點(diǎn),如何實(shí)現(xiàn)。如果用戶(hù)很厲害,每次都能選中可以消除的圖形對(duì),那么用這種方法浪費(fèi)的時(shí)間就會(huì)相當(dāng)可觀,畢竟用戶(hù)未選中的其他可以連接的圖形對(duì)之間的最短路徑都被浪費(fèi)掉了;而如果用戶(hù)很差勁,每輪選擇的次數(shù)都遠(yuǎn)遠(yuǎn)大于當(dāng)前可能的連接數(shù)量時(shí),該方法就會(huì)比書(shū)中正文提到的方法高效。 開(kāi)發(fā)語(yǔ)言分析根據(jù)自己以前所學(xué)的關(guān)于C語(yǔ)言、C++、Java、以及Qt的相關(guān)知識(shí),并通過(guò)網(wǎng)上查找相關(guān)資料,了解到 C、C++、VB、Delphi、C、Java等均可以游戲的設(shè)計(jì)。但是C/C++優(yōu)勢(shì)就是執(zhí)行速度快,若能解決GUI Library的問(wèn)題,則跨平臺(tái)即可解決。java是面向?qū)ο蟮木幊陶Z(yǔ)言,和其他面向?qū)ο缶幊陶Z(yǔ)言一樣,在java的世界里,萬(wàn)物皆對(duì)象,面向?qū)ο缶幊痰暮锰幘褪悄軌蛟谡Z(yǔ)言級(jí)別模擬現(xiàn)實(shí)世界的場(chǎng)景,簡(jiǎn)化開(kāi)發(fā)。Qt擁有一個(gè)單一的Library,讓你開(kāi)發(fā)各種不同平臺(tái)的程序,目前支持Windows、Linux、Mac、UNIX、Embedded Linux,就是它提供了一個(gè)Library讓你開(kāi)發(fā)GUI程序,寫(xiě)好之后,只要在各平臺(tái)重新Compile后,就可以在各平臺(tái)執(zhí)行,而且使用完整的ANSI C++語(yǔ)言,且不限Compiler,只要是C++的Compiler都可以,重要的是,該Library相當(dāng)漂亮,寫(xiě)出來(lái)的程序很像C++ Framework的那樣精簡(jiǎn),不會(huì)向MFC那樣復(fù)雜??偨Y(jié):經(jīng)過(guò)以上比較后,考慮到Qt的眾多良好特性,尤其是其跨平臺(tái)性,加上自己在基地學(xué)習(xí)過(guò)Qt,為了能夠更進(jìn)一步掌握Qt編程,因此決定使用Qt開(kāi)發(fā)連連看游戲。主窗口類(lèi)為應(yīng)用程序提供界面框架,可以在上面添加菜單、工具條等,為應(yīng)用程序提供集裝箱的功能,如QMainWindow。GUI組織類(lèi)負(fù)責(zé)對(duì)各種控件進(jìn)行組織以構(gòu)成復(fù)雜的對(duì)話(huà)框, 如QGroupBox??梢?jiàn)的控件一般從抽象控件派生,如QButton。例如QColor。如QImageIO。對(duì)象間通訊是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)極其重要的內(nèi)容,類(lèi)似于Microsoft MFC的消息映射和事件循環(huán),Qt的對(duì)象間通訊采用的是信號(hào)—槽(signal—slot)機(jī)制,信號(hào)就好像是事件,而槽則是響應(yīng)事件的方法。下圖直觀地表示了這種機(jī)制是如何工作的。較老的工具包是使用一種被稱(chēng)作回調(diào)的通訊方式來(lái)實(shí)現(xiàn)同一目的。當(dāng)一個(gè)特定事件發(fā)生的時(shí)候,一個(gè)信號(hào)被發(fā)射。信號(hào)—槽機(jī)制是類(lèi)型安全的:一個(gè)信號(hào)的簽名必須與它的接收槽的簽名相匹配。Qt的信號(hào)和槽的機(jī)制可以保證如果把一個(gè)信號(hào)和一個(gè)槽連接起來(lái),槽會(huì)在正確的時(shí)間使用信號(hào)的參數(shù)而被調(diào)用。當(dāng)對(duì)象的狀態(tài)發(fā)生改變的時(shí)候,信號(hào)被發(fā)送給其它對(duì)象,從而實(shí)現(xiàn)了該對(duì)象與其它對(duì)象的通信。把一個(gè)信號(hào)和另一個(gè)信號(hào)直接相連也是可以的。 需求分析 環(huán)境分析本系統(tǒng)的軟件開(kāi)發(fā)環(huán)境是windows7操作系統(tǒng)下, Create版本,使用c++語(yǔ)言來(lái)開(kāi)發(fā)。:本連連看程序?qū)崿F(xiàn)了游戲時(shí)間的提示功能,同時(shí)創(chuàng)新實(shí)現(xiàn)了游戲獎(jiǎng)勵(lì)的新規(guī)則,當(dāng)玩家消除一對(duì)圖片的時(shí)候就給予一定的獎(jiǎng)勵(lì)時(shí)間,給玩家在游戲中帶來(lái)欣喜,提高消除圖片的積極性。:由于連連看的圖片的生成是隨機(jī)的,圖片在數(shù)組中隨機(jī)排列以及玩家的隨機(jī)消除選擇,導(dǎo)致剩余圖片的消除有可能無(wú)法滿(mǎn)足消除原則,玩家面臨著有圖片但是不能消除的困惑,所以這時(shí)候重置的需求,不言而喻,通過(guò)設(shè)置重置按鈕,點(diǎn)擊重置按鈕玩家就能夠成功的實(shí)現(xiàn)圖片的再次隨機(jī)生成,當(dāng)然重新生成的圖片再次出現(xiàn)僵局的概率很低,所以一般情況下總能通過(guò)一次的重置來(lái)破解僵局,為了避免玩家通過(guò)重排來(lái)獲取游戲的捷徑,玩家的重置次數(shù)是有限定的。滿(mǎn)足響應(yīng)時(shí)間的要求,當(dāng)然對(duì)于這款小游戲來(lái)說(shuō)由于地圖中存放的數(shù)據(jù)本身就是一個(gè)小數(shù)量級(jí),計(jì)算機(jī)處理起來(lái)當(dāng)然是綽綽有余。同時(shí),還要設(shè)計(jì)該項(xiàng)目的應(yīng)用系統(tǒng)的總體數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù)結(jié)構(gòu),即應(yīng)用系統(tǒng)要存儲(chǔ)什么數(shù)據(jù),這些數(shù)據(jù)是什么樣的結(jié)構(gòu),它們之間有什么關(guān)系。當(dāng)玩家需要重排圖片時(shí)候,點(diǎn)擊重排便可以重新載入圖片;當(dāng)然在游戲過(guò)程中玩家可以隨時(shí)退出游戲。主窗體的大半部分是由10*10的按鈕構(gòu)成的,這些按鈕就是后期圖片的擺放位置。將數(shù)字存放在數(shù)組中,并且嚴(yán)格按照成對(duì)的方式存放圖片,因?yàn)檫B連看游戲的前提是消除成對(duì)圖片。 圖片消除路徑判斷根據(jù)連連看的游戲規(guī)則(游戲“連連看”,只要將相同花色的兩張牌用三根以?xún)?nèi)的直線連在一起就可以消除),現(xiàn)在需要設(shè)計(jì)一個(gè)算法來(lái)判斷圖案能否消除,首先連連看第一個(gè)條件是圖案相同,如果選擇的圖案不同,那么游戲不再進(jìn)行判斷,其次游戲最核心的是判斷當(dāng)圖案相同的時(shí)候圖案能否在不超過(guò)2個(gè)轉(zhuǎn)角或是不超過(guò)3條直線的情況下相連。(紅色塊為欲消除塊,黑色代表其他阻攔塊,圓圈代表折點(diǎn)),如圖34圖34兩個(gè)轉(zhuǎn)角連通: 判斷圖片A與圖片B能否經(jīng)過(guò)有兩個(gè)轉(zhuǎn)角的路徑連通實(shí)質(zhì)上可以轉(zhuǎn)化為判斷能否找到一個(gè)點(diǎn)C,這個(gè)C點(diǎn)與A可以直線連通,且C與B可以通過(guò)有一個(gè)轉(zhuǎn)角的路徑連通。水平掃描。為了判斷A,B能否通過(guò)2個(gè)轉(zhuǎn)角連通,則從A開(kāi)始在垂直方向上下掃描,并判斷經(jīng)過(guò)的點(diǎn)能否與B點(diǎn)經(jīng)過(guò)1個(gè)轉(zhuǎn)角連通??傊?,背景音樂(lè)是利用系統(tǒng)現(xiàn)有的類(lèi),調(diào)用相應(yīng)的方法實(shí)現(xiàn)音樂(lè)的播放。Game::GameStatus = Game::PLAYING。 i Game::sizeX * Game::sizeY。 }//在10*10的數(shù)組內(nèi) 存偶數(shù)對(duì)圖片 25*4 圖片的存放事實(shí)上是通過(guò)和數(shù)組對(duì)應(yīng)的原則實(shí)現(xiàn)轉(zhuǎn)換的,0代表沒(méi)有圖片,125代表圖片的序號(hào),通過(guò)設(shè)置統(tǒng)一字符串,將圖片的序號(hào)作為變量,可以將圖片依據(jù)名字引用到button上,然后主界面上的圖片通過(guò)button來(lái)顯示,下述代碼是圖片和數(shù)組對(duì)應(yīng)的實(shí)現(xiàn)以及圖片的引用。 image[i]setGeometry(x + size * (i % ()), y + size * (i / ()), size, size)。 QIcon icon (pixmap)。 image[i]setPalette(QPalette(Qt::lightGray))。srand((unsigned)time(NULL))。 //產(chǎn)生010*10 之間的隨機(jī)數(shù); int a = save[i]。 i Game::sizeX
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1