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

正文內(nèi)容

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

  

【正文】 戲的圖片生成是隨機(jī)的,因此,在消除到一定階段的時(shí)候,可能會(huì)出現(xiàn)有圖片但是不滿足消除規(guī)則的情況,重排的按鈕可以實(shí)現(xiàn)圖片的重新加載,從而能夠再次消除。如“水晶連連看”、“果蔬連連看”等,流行的“水晶連連看”以華麗界面吸引了一大批的女性玩家。連連看游戲設(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ú)事的大眾,以供消遣。2008年,隨著社交網(wǎng)絡(luò)的普及和開(kāi)放平臺(tái)的興起,“連連看”被引入了社交網(wǎng)絡(luò)。 得分記錄、難度為了提高玩家的游戲的積極性,以及為了保證游戲的完整性,游戲?qū)⒔y(tǒng)計(jì)玩家的得分情況,消除一對(duì)圖片,就會(huì)得到相應(yīng)的分?jǐn)?shù),以數(shù)據(jù)反應(yīng)玩家的游戲完成進(jìn)展。其他的問(wèn)題均是圍繞這兩個(gè)問(wèn)題產(chǎn)生的,由此可以這兩個(gè)問(wèn)題的重要性以及良好算法設(shè)計(jì)的必要性。若這樣的圖片C存在,那么A與B就可以通過(guò)一條有N個(gè)轉(zhuǎn)角的路徑相連。水平掃描。采用廣度優(yōu)先搜索算法可以方便的實(shí)現(xiàn)這一構(gòu)想。 //用于記錄當(dāng)前搜索到節(jié)點(diǎn)的最大轉(zhuǎn)角數(shù) if( B 在S中)false圖213以圖214為例,我們的目標(biāo)是找到圖形1和圖形2之間的最短路徑,我們從圖形1出發(fā)進(jìn)行查找動(dòng)作。如果val=0則說(shuō)明兩個(gè)圖形間存在直線路徑,否則說(shuō)明二者之間不存在直線路徑。這兩個(gè)結(jié)構(gòu)具體的功能后面用到的時(shí)候會(huì)詳細(xì)介紹。(2)在每次消去兩個(gè)格子之后,自然更新要更新需要維護(hù)的數(shù)據(jù),這樣的思路有哪些優(yōu)缺點(diǎn),如何實(shí)現(xiàn)。 開(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ì)。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ā)??偨Y(jié):經(jīng)過(guò)以上比較后,考慮到Qt的眾多良好特性,尤其是其跨平臺(tái)性,加上自己在基地學(xué)習(xí)過(guò)Qt,為了能夠更進(jìn)一步掌握Qt編程,因此決定使用Qt開(kāi)發(fā)連連看游戲。GUI組織類負(fù)責(zé)對(duì)各種控件進(jìn)行組織以構(gòu)成復(fù)雜的對(duì)話框, 如QGroupBox。例如QColor。對(duì)象間通訊是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)極其重要的內(nèi)容,類似于Microsoft MFC的消息映射和事件循環(huán),Qt的對(duì)象間通訊采用的是信號(hào)—槽(signal—slot)機(jī)制,信號(hào)就好像是事件,而槽則是響應(yīng)事件的方法。較老的工具包是使用一種被稱作回調(diào)的通訊方式來(lái)實(shí)現(xiàn)同一目的。信號(hào)—槽機(jī)制是類型安全的:一個(gè)信號(hào)的簽名必須與它的接收槽的簽名相匹配。當(dāng)對(duì)象的狀態(tài)發(fā)生改變的時(shí)候,信號(hào)被發(fā)送給其它對(duì)象,從而實(shí)現(xiàn)了該對(duì)象與其它對(duì)象的通信。 需求分析 環(huán)境分析本系統(tǒng)的軟件開(kāi)發(fā)環(huán)境是windows7操作系統(tǒng)下, Create版本,使用c++語(yǔ)言來(lái)開(kāi)發(fā)。:由于連連看的圖片的生成是隨機(jī)的,圖片在數(shù)組中隨機(jī)排列以及玩家的隨機(jī)消除選擇,導(dǎo)致剩余圖片的消除有可能無(wú)法滿足消除原則,玩家面臨著有圖片但是不能消除的困惑,所以這時(shí)候重置的需求,不言而喻,通過(guò)設(shè)置重置按鈕,點(diǎn)擊重置按鈕玩家就能夠成功的實(shí)現(xiàn)圖片的再次隨機(jī)生成,當(dāng)然重新生成的圖片再次出現(xiàn)僵局的概率很低,所以一般情況下總能通過(guò)一次的重置來(lái)破解僵局,為了避免玩家通過(guò)重排來(lái)獲取游戲的捷徑,玩家的重置次數(shù)是有限定的。同時(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)系。主窗體的大半部分是由10*10的按鈕構(gòu)成的,這些按鈕就是后期圖片的擺放位置。 圖片消除路徑判斷根據(jù)連連看的游戲規(guī)則(游戲“連連看”,只要將相同花色的兩張牌用三根以內(nèi)的直線連在一起就可以消除),現(xiàn)在需要設(shè)計(jì)一個(gè)算法來(lái)判斷圖案能否消除,首先連連看第一個(gè)條件是圖案相同,如果選擇的圖案不同,那么游戲不再進(jìn)行判斷,其次游戲最核心的是判斷當(dāng)圖案相同的時(shí)候圖案能否在不超過(guò)2個(gè)轉(zhuǎn)角或是不超過(guò)3條直線的情況下相連。水平掃描??傊?,背景音樂(lè)是利用系統(tǒng)現(xiàn)有的類,調(diào)用相應(yīng)的方法實(shí)現(xiàn)音樂(lè)的播放。 i Game::sizeX * Game::sizeY。 image[i]setGeometry(x + size * (i % ()), y + size * (i / ()), size, size)。 image[i]setPalette(QPalette(Qt::lightGray))。 //產(chǎn)生010*10 之間的隨機(jī)數(shù); int a = save[i]。 i++) { for (j = 1。 } for(int x=x1+direct。}Y直連的方式:bool PaintArea::Y1_Y2(int x1, int y1, int x2, int y2){ if(x1!=x2) return false。y=0。amp。X1_X2(x1,y2,x2,y2)) { pathappend(Coordinate(x1,y2))。為了判斷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) { xy = arrmap[y][x1]。 pathappend(Coordinate(x2,y))。amp。x) { yx = arrmap[y1][x]。 pathappend(Coordinate(x,y2))。amp。void MainWindow::on_pushButton_2_clicked(bool checked){ if (!()) { return 。 i++) { for (int j = 1。void MainWindow::on_pushButton_clicked(bool checked){ if (!()) { return 。startX, int amp。 endX = Game::sizeX。 } if (Game::canLink(startX, startY, endX, endY, 1, 1)) { return true。 MainWindow::flag = false。 } } else { selreplay()。 QMessageBox::information(this, Lost, QString(tr(你輸了)))。通過(guò)測(cè)試可以用來(lái)檢驗(yàn)一個(gè)系統(tǒng)的性能和品質(zhì)是否達(dá)到系統(tǒng)最初設(shè)計(jì)時(shí)給出的各項(xiàng)需求指標(biāo)。(3)根據(jù)測(cè)試大綱設(shè)計(jì)和生成測(cè)試用例,產(chǎn)生測(cè)試設(shè)計(jì)說(shuō)明文檔。在測(cè)試過(guò)程中,把程序看作一個(gè)不能打開(kāi)的黑盒子,測(cè)試者在程序接口進(jìn)行測(cè)試,只需要檢查程序功能是否達(dá)到了系統(tǒng)功能需求各項(xiàng)指標(biāo),判斷程序是否能在保持外部信息的完整性的同時(shí)適當(dāng)程度地接受數(shù)據(jù)輸入并產(chǎn)生相應(yīng)的輸出信息。(3)確認(rèn)測(cè)試經(jīng)過(guò)集成測(cè)試以后,軟件就被集成起來(lái),這時(shí)軟件接口方面的問(wèn)題都已解決,將進(jìn)入確認(rèn)測(cè)試階段。測(cè)試結(jié)果:進(jìn)入系統(tǒng)后,播放背景音樂(lè),在按不同按鈕的時(shí)候發(fā)出點(diǎn)擊聲效。測(cè)試結(jié)果:系統(tǒng)成功實(shí)現(xiàn)了進(jìn)入游戲、退出游戲、音樂(lè)播放、圖像消除、重置、系統(tǒng)提示消除,進(jìn)度條顯示,難度升級(jí)等功能,達(dá)到了系統(tǒng)設(shè)計(jì)時(shí)的功能需求指標(biāo)。這次的畢業(yè)設(shè)計(jì)中,給我感觸最深的就是算法設(shè)計(jì),一個(gè)游戲程序離不開(kāi)良好的算法,所以現(xiàn)在最想做的事情就是想把經(jīng)典算法重新學(xué)習(xí)一遍,以便于以后能夠再次用得到。在多次和老師郵件交流后,老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和清晰的設(shè)計(jì)思路都給我留下了深刻的印象,于是乎我通過(guò)不斷地查閱資料,閱讀大量的程序?qū)嵗?,逐漸建立了自己的模型,這期間老師也對(duì)我提出了任務(wù)要求,安排我每天的任務(wù)量,起初有些不適應(yīng),逐漸的習(xí)慣了就感覺(jué)每天都有提高,編程的過(guò)程中不斷的出現(xiàn)令人煩惱的bug,在老師的指點(diǎn)下,我一一的克服了這些錯(cuò)誤,實(shí)現(xiàn)了連連看游戲,盡管過(guò)程很艱辛,但是這個(gè)學(xué)習(xí)的過(guò)程令人難忘,最終頁(yè)收獲了不少經(jīng)驗(yàn)??偨Y(jié)出游戲系統(tǒng)性能如下:(1)界面友好,游戲操作方便系統(tǒng)風(fēng)格可愛(ài),界面簡(jiǎn)單,功能較完善,游戲操作簡(jiǎn)單。測(cè)試結(jié)果:實(shí)現(xiàn)了將地圖上現(xiàn)有的所有圖案打亂,重新排列再展現(xiàn)出來(lái)。(4)系統(tǒng)測(cè)試是將已經(jīng)確認(rèn)的軟件、計(jì)算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其它因素結(jié)合在一起,進(jìn)行系統(tǒng)的各種集成測(cè)試和確認(rèn)測(cè)試,其目的是通過(guò)與系統(tǒng)的需求相比較,發(fā)現(xiàn)所開(kāi)發(fā)的系統(tǒng)與用戶需求相矛盾的地方。白盒測(cè)試法也稱結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,它是在知道產(chǎn)品內(nèi)部工作過(guò)程前提下,根據(jù)程序的內(nèi)部結(jié)構(gòu)和邏輯來(lái)設(shè)計(jì)測(cè)試用例,對(duì)程序的路徑和過(guò)程進(jìn)行測(cè)試,檢查是否滿足設(shè)計(jì)的需要。依據(jù)預(yù)先編制好的測(cè)試大綱和設(shè)計(jì)好的測(cè)試用例,對(duì)被測(cè)軟件進(jìn)行完整的測(cè)試。應(yīng)根據(jù)開(kāi)發(fā)各階段的需求、設(shè)計(jì)等文檔或程序的內(nèi)部結(jié)構(gòu)精心設(shè)計(jì)測(cè)試用例,并利用這些用例來(lái)運(yùn)行程序以便發(fā)現(xiàn)錯(cuò)誤,這個(gè)過(guò)程與整個(gè)軟件開(kāi)發(fā)過(guò)程基本上是平行進(jìn)行的。include phononinclude Player::Player (QString path){ music = Phonon::createPlayer(Phonon::MusicCategory,Phonon::MediaSource(path))。 MainWindow::btnFront = btnNext。 btnNext = NULL。} 獎(jiǎng)勵(lì)時(shí)間和進(jìn)度條的邏輯實(shí)現(xiàn)時(shí)間進(jìn)度條反映時(shí)間的變化,對(duì)應(yīng)時(shí)間的消漲,首先設(shè)置一個(gè)定時(shí)器,規(guī)定時(shí)間,然后在定時(shí)器事件中,給出進(jìn)度條的變化,將進(jìn)度條按照合理長(zhǎng)度分割,每秒調(diào)用一次定時(shí)器時(shí)間,每次進(jìn)度條減少一分長(zhǎng)度,直到減除為0。 endY = Game::sizeY。endX, int amp。 } int ax,ay,bx,by。 j++) { if (*(map + i * + j) != 0) { QString ch(:/Images/Images/)。 } uilblResetsetText(QString::number(()))。amp。 } } //right for(int x=x1+1。 if(yx!=BLANK_STATE) break。amp。 } } //down for(int y=y1+1。 if(xy!=BLANK_STATE) break。(紅色塊為欲消除塊,黑色代表其他阻攔塊,黃色c代表折點(diǎn),綠色代表折線),如圖44圖44垂直掃描。 } return false。 return true。 } return true。 if(y1y2) { direct = 1。amp。 j++) {
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1