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

正文內(nèi)容

連連看游戲的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文-文庫(kù)吧資料

2025-04-10 23:32本頁(yè)面
  

【正文】 { if( arr_map[sx][i] != LLKGAME_EMPTY ) //如果選中的兩個(gè)圖片之間不為空方塊返回假 return false 。 } for( i = min+1 。 } else //從右向左連接 { min = ey 。 if( sx == ex ) //同一行 { if( sy ey ) //從左向右連接 { min = sy 。 sy == ey) return false。 直連 一個(gè)折點(diǎn) 兩個(gè)折點(diǎn) 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 17 圖 43三種連接方式 圖 44連接判斷流程圖 具體代碼如下: //直連 bool llkgame::iLink(int sx, int sy, int ex, int ey) 開始 一個(gè)折點(diǎn)連接方式判斷成功 直連方式判斷成功 兩個(gè)折點(diǎn)判斷成功 消除所選的兩個(gè)圖案 結(jié)束 恢復(fù)所選圖案的原始狀態(tài) 是 是 是 否 否 否 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 18 { //兩個(gè)點(diǎn)必須不是同一個(gè) if(sx == ex amp。搜索以 pl, p2 的 x,y 方向四條直線(可能某兩條直線會(huì)重合)上的有限點(diǎn),每次取兩點(diǎn)作為 z1, z2,驗(yàn)證 pl 到 z1/zl 到 z2/z2 到 p2 是否都能直線相連,是則連接成立,這是兩個(gè)折點(diǎn)的情況。 } 圖案方塊的判斷連接的設(shè)計(jì)與實(shí)現(xiàn) 設(shè)計(jì)思路是:假設(shè)目標(biāo)點(diǎn) pl, p2,如果有兩個(gè)折點(diǎn)分別為 z1, z2 那么,所要進(jìn)行的是: (1)如果驗(yàn)證 pl, p2 直線連線,則連接成立。 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 16 (dex)。 j++) { int dex = (int(rand()))%()。 i++) { for(int j=1 。 } } //隨機(jī)放置圖片 for(int i=1 。 jLLKGAME_PERPH 。 (pixmap)。 i++) { QString phname = :/image/+QString::number(i,10)+.png。關(guān)鍵代碼如下: //構(gòu)造 Pixmap 列表 for(int i=0 。首先,對(duì)方塊的兩種狀態(tài)所對(duì)應(yīng)的圖片分別創(chuàng)建相應(yīng)的設(shè)備環(huán)境,并且為它們分配關(guān)聯(lián)的內(nèi)存位圖變量。 對(duì)于圖片資源的,可以先在內(nèi)存創(chuàng)建兩個(gè)內(nèi)存位圖,并對(duì)它們的圖像進(jìn)行載入。 j++) { if( LLKGAME_EMPTY != arr_map[i][j] ) //如果不是空方塊 { ( (j1)*(LLKGAME_PHWIDTH), (i1)*(LLKGAME_PHHEIGHT), LLKGAME_PHWIDTH, LLKGAME_PHHEIGHT, (arr_map[i][j]) )。 i++) { for(int j=1 。 //從資源庫(kù)調(diào)用圖片 //畫連連看小圖片 for(int i=1 。主要代碼如下: //初始化地圖數(shù)據(jù) void llkgame::paintEvent(QPaintEvent *) { QPainter p(this)。在游戲開始前,先要進(jìn)行初始化,為了保證小方塊能成對(duì)地出現(xiàn),不應(yīng)該僅僅對(duì)人物圖案做簡(jiǎn)單地隨機(jī)抽取,然后將隨機(jī)選取出來(lái)的小方塊放到地圖中去就了事,而是需要成對(duì)的選取人物小方塊,就是說地圖中的小方塊必須是偶數(shù)個(gè)才行。 對(duì)于游戲區(qū)域,被抽象成一個(gè)有坐標(biāo)位置屬性平面,平面上零散地分布著若干小方塊,在繪制地圖的類中添加地圖數(shù)據(jù)成員變量,用于記錄動(dòng)態(tài)分配出來(lái)的一維數(shù)組地圖空間的首地址,對(duì)于地圖中的某個(gè)小方塊的類型,可以用一個(gè)整型的 ID 來(lái)進(jìn) 行識(shí)別。 游戲地圖數(shù)據(jù)的設(shè)計(jì)與實(shí)現(xiàn) 整個(gè)游戲地圖分為信息顯示區(qū)域和游戲區(qū)域。 } } 對(duì)于積分榜子模塊,首先在游戲結(jié)束后彈出對(duì)話框提示輸入姓名,游戲的關(guān)卡數(shù)、積分自動(dòng)進(jìn)行統(tǒng)計(jì),然后保存到文檔中。 void MainWindow::on_actionChangeBackSound_triggered() { QString fileName = QFileDialog::getOpenFileName(this, tr(Open File)./,tr(Sounds (*.wav *.mp3)))。 //音樂開始 else mediaObjectpause()。再通過調(diào)用 MediaObject 類進(jìn)行音樂的播放與暫停。流程圖如圖 和圖 所示。對(duì)于提示模塊 ,采用遍歷的方法進(jìn)行查找,首先遍歷同一種圖塊中出現(xiàn)在不同坐標(biāo)位置的圖案小方塊,以此模擬第一次點(diǎn)擊,然后遍歷同一種圖塊的剩余的不同坐標(biāo)圖案小方塊的出現(xiàn),以此模擬第二次點(diǎn)擊,判斷前后 2 次模擬點(diǎn)擊選中的不同位置的同種圖塊能否連通,能連通則高亮顯示這 2 個(gè)圖塊,提示完成;否則,繼續(xù)檢測(cè)連通情況直至找到為止。 選項(xiàng)模塊設(shè)計(jì)與實(shí)現(xiàn) 選項(xiàng)模塊中分為提示子模塊、重列子模塊、音樂子模塊、更改背景音樂子模塊以及積分榜子模塊。由于地圖的大小為十行八列 共 80 個(gè)小方塊,每個(gè)種類的人物設(shè)定出現(xiàn) 4 次為偶數(shù),這樣就可以實(shí)現(xiàn)成對(duì)的出現(xiàn)了,在游戲中可以完成配對(duì)。游戲算法模塊,包括游戲的連接判斷算法以及游戲勝利判斷的算法。游戲繪圖模塊,包括小方塊圖案的載入以及游戲地圖背景的繪制。首先編寫一個(gè)創(chuàng)建路徑的類,通過這個(gè)類使游戲中消除小方塊時(shí)能夠找到一條可以連接的路徑進(jìn)行連線,然后通過一個(gè)畫 線的類進(jìn)行連接。因?yàn)橛螒虻娜窟^程需要依靠鼠標(biāo)操作,所以鼠標(biāo)交互功能的設(shè)計(jì)是否人性化就成了此連連看游戲程序的重點(diǎn)。 系統(tǒng)的重點(diǎn)難點(diǎn) 此程序的重點(diǎn)是鼠標(biāo)的交互功能。 你可以將很多信號(hào)與單個(gè)的槽進(jìn)行連接,也可以將單個(gè)的信號(hào)與很多的槽進(jìn)行連接,甚至于將一個(gè)信號(hào)與另外一個(gè)信號(hào)相 連接也是可能的,這時(shí)無(wú)論第一個(gè)信號(hào)什么時(shí)候發(fā)射系統(tǒng)都將立刻發(fā)射第二個(gè)信號(hào)。一個(gè)槽并不知道是否有任何信號(hào)與自己相連接。這就是真正的信息封裝,它確保對(duì)象被當(dāng)作一個(gè)真正的軟件組件來(lái)使用。 所有從 QObject 或其子類 ( 例如 Qwidget) 派生的類都能夠包含信號(hào)和槽。但是,在 QT 中信號(hào)和槽取代了這些凌亂的函數(shù)指針,使得我們編寫這些通信程序更為簡(jiǎn)潔明了。信號(hào)和槽是 QT 自行定義的一種通信機(jī)制,它獨(dú)立于標(biāo)準(zhǔn)的 C/C++ 語(yǔ)言,合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 9 因此要正確的處理信號(hào)和槽,必須借助一個(gè)稱為 moc( Meta Object Compiler)的 QT 工具,該工具是一個(gè) C++ 預(yù)處理程序,它為高層次的事件處理自動(dòng)生成所需要的附加代碼 [5]。 相關(guān)技術(shù)與重點(diǎn)難點(diǎn) 相關(guān)技術(shù) 信號(hào)與槽機(jī)制 信號(hào)和槽機(jī)制是 QT 的核心機(jī)制,要精通 QT 編程就必須對(duì)信號(hào)和槽有所了解。 對(duì)于提示功能,首先編寫一個(gè)檢查連接的類,判斷選中的兩個(gè)小方塊是否可以進(jìn)行消除操作,這個(gè)類可以被提示功能函數(shù)調(diào)用,也可以在檢查是否有解時(shí)被調(diào)用。提示功能用于提示玩家一組可解的小方塊,便于玩家可以繼續(xù)進(jìn)行游戲。 游戲道具算法設(shè)計(jì) 在此游戲中的道具有重排和提示兩種,在游戲進(jìn)行的過程中,如果玩家暫時(shí)找不到可解的小方塊,就可以使用道具 功能。如果時(shí)間耗盡,則終止游戲。 經(jīng)過上面較為詳細(xì)的分析后,對(duì)選定的方塊是否可以作抵消操作可以這樣去設(shè)計(jì),首先,對(duì)簡(jiǎn)單的直連情況進(jìn)行判斷,看其是否符合條件,假如不能,再加深一個(gè)級(jí)別的復(fù)雜度,對(duì)一個(gè)折點(diǎn)的情況進(jìn)行判斷,如果不符合條 件,再對(duì)兩個(gè)折點(diǎn)的情況進(jìn)行判斷。 (3)有兩個(gè)折點(diǎn)的垂直線段連接。此外,對(duì)于一個(gè)折點(diǎn)連接的情況,折點(diǎn)應(yīng)該為第一個(gè)選中方塊的橫向現(xiàn)或縱向線與第二個(gè)選中方塊的縱向線或橫向線相交而得出。 (2)有一個(gè)折點(diǎn)的垂直線段連接。在直連方式中,必須要求所選定的兩個(gè)方塊在同一水平直線上,并且兩個(gè)方塊之間沒有任何其它的圖案方塊。 (3)這些將它們連接起來(lái)的直線線段的折點(diǎn)不超過兩個(gè)。 圖案方塊連接判斷的設(shè)計(jì) 對(duì)于選中的兩個(gè)方塊的銷毀,它們必須符合以下三個(gè)條件: (l)選中的兩個(gè)圖案相同。人物的種類共計(jì)20 個(gè)圖案,首先通過 srand ()設(shè)定隨機(jī)數(shù)發(fā)生,然后通過 rand()函數(shù)進(jìn)行圖片種類數(shù)量的選擇。設(shè)計(jì)一個(gè)初始化的類,信息的顯示直接調(diào)用窗口類即可。 連連看 棋 子操作功能 播放音樂功能 游戲升級(jí)功能 主界面顯示功能 英雄榜功能 改變背景音樂功能 棋子換盤 棋子連接提示 棋子顯示 菜單顯示 更新記錄 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 7 圖 32 游戲地圖設(shè)計(jì)圖 圖案方塊游戲區(qū)域被抽象成一個(gè)有坐標(biāo)位置屬性的平面,平面上零散的地分布著若干個(gè)小方塊,并且這些小方塊的人物圖案起碼是成對(duì)出現(xiàn)的,可以把游戲區(qū)域地圖用一個(gè)數(shù)組arr_map[i][j]來(lái)表示, arr_map[i][j]是把地圖設(shè)計(jì)成一個(gè)動(dòng)態(tài)分配的 int 整型一維數(shù)組,對(duì)地圖中的行列數(shù)的表達(dá),用一個(gè)轉(zhuǎn)換法即可。 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 6 圖 31 功能模塊圖 算法設(shè)計(jì) 游戲地圖數(shù)據(jù)的設(shè)計(jì) 對(duì)于整個(gè)游戲區(qū)域,可以把它看作一個(gè)是由信息顯示區(qū)域和圖案方塊游戲區(qū)域組成的地圖。棋子顯示子模塊用于布置整個(gè)游戲界面。積分榜子模塊用于記錄游戲的積分信息,并且對(duì)于破記錄給予提示。提示子模塊和重列子模塊作為游戲的特殊功能,增加游戲的趣味性。 游戲模塊可分為新游戲子模塊、開關(guān)背景音樂子模塊、更改背景音樂子模塊。保證了以上的配置,就能保證使用 QT Creator 在虛擬的 Ubuntu 系統(tǒng)中開發(fā)連連看游戲程序環(huán)境的可行性。 Slots)圖示調(diào)試器 , 對(duì) Qt 類結(jié)構(gòu)可一目了然集成了 Qt Designer 可視化布局和格式構(gòu)建器只需單擊一下就可生成和運(yùn)行 Qt 項(xiàng)目 [6]。在功能方面, Qt Creator 包括項(xiàng)目生成向?qū)А⒏呒?jí)的 C++ 代碼 編輯器 、瀏覽文件及類的工具、集成了 Qt Designer、 Qt Assistant、 Qt Linguist、圖形化的 GDB 調(diào)試前端,集成 qmake 構(gòu)建工具等。此 IDE 能夠跨平臺(tái)運(yùn)行,支持的系統(tǒng)包括 Linux( 32 位及 64 位)、 Mac OS X 以及 Windows。 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 5 第三章 總體設(shè)計(jì) 開發(fā)工具和運(yùn)行環(huán)境 開發(fā)工具 本程序采用 QT Creator 作為開發(fā)工具。 對(duì)于資源的需求,圖片資源必不可少,游戲中的小方塊是一組圖片資源,選用兩組圖案和排列完全相同但是背景色不同的兩組圖片作為小方塊的初始狀態(tài)和選定狀態(tài),每張圖片共20 個(gè)人物。游戲區(qū)域中心區(qū)域作為小方塊的地圖,由多種人物圖案組成分布在不同位置,界面設(shè)有關(guān)卡、提示次數(shù)、重列次數(shù)、剩余時(shí)間以及積分的顯示。 縱上所述,以 QT Creator 為工具開發(fā)連連看游戲的方案是可行的。所以,從操作可行性角度分析開發(fā)此程序是可行的。在游戲過程中,我們不斷重復(fù)上面描述的功能,直到游戲的勝利結(jié)束。下面簡(jiǎn)單描述一下通過實(shí)現(xiàn)的功能。并且有提示和重列次數(shù)的獎(jiǎng)勵(lì)。豐富的道具加入,增強(qiáng)游戲的競(jìng)爭(zhēng)性。 合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系畢業(yè)論文 4 操作可行性分析 連連看游戲,只要將相同圖案的兩張方塊用三根以內(nèi)的直線連在一起就可以消除,規(guī)則簡(jiǎn)單容易上手。在高速發(fā)展的信息時(shí)代,一千次的下載不成問題。軟件方面, 簡(jiǎn)體中文版可以從官方網(wǎng)站下載,正版操作系統(tǒng)Linux 簡(jiǎn)體中文專業(yè)版價(jià)格大約在兩千元左右,購(gòu)買書籍二百元,開發(fā)此程序需要的時(shí)間大約需要三個(gè)月左右的時(shí)間,其中所消耗的人工費(fèi)每月一千元,共計(jì)三千元,所以開發(fā)此游戲程序的成本共計(jì)一萬(wàn)元左右。 綜上所 述,對(duì)于在技術(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1