c語(yǔ)言課程設(shè)計(jì)_拼圖游戲代碼

c語(yǔ)言課程設(shè)計(jì)_拼圖游戲代碼

ID:11494488

大小:1.85 MB

頁(yè)數(shù):10頁(yè)

時(shí)間:2018-07-12

c語(yǔ)言課程設(shè)計(jì)_拼圖游戲代碼_第1頁(yè)
c語(yǔ)言課程設(shè)計(jì)_拼圖游戲代碼_第2頁(yè)
c語(yǔ)言課程設(shè)計(jì)_拼圖游戲代碼_第3頁(yè)
c語(yǔ)言課程設(shè)計(jì)_拼圖游戲代碼_第4頁(yè)
c語(yǔ)言課程設(shè)計(jì)_拼圖游戲代碼_第5頁(yè)
資源描述:

《c語(yǔ)言課程設(shè)計(jì)_拼圖游戲代碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、C語(yǔ)言課程設(shè)計(jì)--拼圖游戲一、實(shí)驗(yàn)內(nèi)容玩家通過(guò)鼠標(biāo)單擊相鄰位有空位的方塊來(lái)移動(dòng)方塊,從而最終將一副散亂的圖片拼成完整的圖片。要求如下:1.游戲的初始界面如圖一,單擊空格鍵進(jìn)入游戲,進(jìn)入游戲之后系統(tǒng)將完成的圖片分成大小相同的15分并隨機(jī)擺放成如圖二。圖一圖二1.啟動(dòng)游戲,單擊空格鍵進(jìn)入游戲。通過(guò)鼠標(biāo)單擊周圍有空格的方塊來(lái)移動(dòng)方塊,直到全圖拼接成圖二中右下角的圖案樣式,游戲結(jié)束,重新回到圖一界面。2.游戲的原理是定義一個(gè)4*4的方塊矩陣(二維數(shù)組),前15個(gè)的值按順序從1-15依次遞增,第16個(gè)留空為0。按照這個(gè)順序排列的矩陣值代表游戲勝利。初始化的時(shí)候,將該16個(gè)矩陣值隨機(jī)排

2、布即得到本局關(guān)卡。為0的空位代表附近上下左右的4個(gè)方塊可以移動(dòng)過(guò)來(lái)3.每次單擊鼠標(biāo)左鍵,方塊移動(dòng)一格。鼠標(biāo)必須移動(dòng)到方塊范圍內(nèi)單擊才能有效移動(dòng)方塊。二、實(shí)驗(yàn)指南實(shí)驗(yàn)一開始實(shí)驗(yàn)【實(shí)驗(yàn)任務(wù)】步驟一、打開FunCode,創(chuàng)建一個(gè)的C語(yǔ)言項(xiàng)目;步驟二、導(dǎo)入Puzzle模板。【實(shí)驗(yàn)思路】按實(shí)驗(yàn)指導(dǎo)完成。【實(shí)驗(yàn)指導(dǎo)】1、打開FunCode,點(diǎn)擊“項(xiàng)目”菜單,選擇“創(chuàng)建C語(yǔ)言工程”注意:工程名名稱要求字母開頭,只能包含字母和數(shù)字,且名字中間不能有空格。2、點(diǎn)擊菜單“項(xiàng)目”中的“導(dǎo)入地圖模塊”,如圖一。跳出一個(gè)對(duì)話框,選中“Puzzle”模板,點(diǎn)擊“導(dǎo)入到工程”按鈕,如圖二。圖一圖二1、導(dǎo)

3、入成功后的,界面如下圖所示:實(shí)驗(yàn)二單擊空格鍵,開始游戲【實(shí)驗(yàn)內(nèi)容】步驟、啟動(dòng)游戲顯示“空格開始”,單擊空格鍵進(jìn)入游戲初始界面?!緦?shí)驗(yàn)思路】系統(tǒng)會(huì)自動(dòng)響應(yīng)dOnKeyDown函數(shù)來(lái)響應(yīng)鍵盤按下消息,這部分代碼實(shí)現(xiàn)在main.cpp里。我們要做的就是通過(guò)在main.cpp的dOnKeyDown函數(shù)里實(shí)現(xiàn)我們的代碼。當(dāng)用戶單擊鍵盤上的空格鍵之后,設(shè)置GameBegin即“空格開始”精靈不可見(jiàn)?!緦?shí)驗(yàn)指導(dǎo)】1、游戲是有狀態(tài)的,我們定義一個(gè)全局的游戲狀態(tài)變量g_iGameState2、判斷空格鍵是否按下,如果按下,我們就轉(zhuǎn)變游戲的狀態(tài)為1,表示游戲開始,并且以藏“空格開始”精靈。實(shí)驗(yàn)

4、三初始化隨機(jī)顯示方塊【實(shí)驗(yàn)內(nèi)容】步驟一、添加一個(gè)4x4的二維數(shù)組,將圖案分成15份,隨機(jī)擺放,剩下一個(gè)位置留空,用于移動(dòng)方塊?!緦?shí)驗(yàn)思路】游戲的原理是在一個(gè)4*4的方塊矩陣(二維數(shù)組),前15個(gè)的值按順序從1-15依次遞增,第16個(gè)留空,我們?cè)O(shè)置為一個(gè)名稱為“NULL”的精靈。按照這個(gè)順序排列的矩陣值代表游戲勝利。精靈名稱依次是PictureBlock1,PictureBlock2…PictureBlock15。因此,初始化的時(shí)候,用一個(gè)數(shù)組iRandData順序保存1到15,對(duì)應(yīng)表示15個(gè)方塊精靈。再用一個(gè)二維數(shù)組g_iBlockState[4][4]表示這16個(gè)位置。每

5、次隨機(jī)從iRandData中取一個(gè)值,賦給g_iBlockState,表示某個(gè)位置放置哪張方塊圖片。為了保證同一張方塊圖片不會(huì)被重復(fù)使用,每次從iRandData隨機(jī)取一個(gè)值以后,將該隨機(jī)數(shù)后面的數(shù)組值往前移一位,并且數(shù)組大小減1?!緦?shí)驗(yàn)指導(dǎo)】1、進(jìn)入Main.cpp里面,添加如下的變量聲明:1)添加成員變量聲明://二維數(shù)組,存儲(chǔ)N*N的矩陣方塊信息intg_iBlockState[BLOCK_COUNT][BLOCK_COUNT];//一維數(shù)組,存儲(chǔ)上面二維數(shù)組中的方塊精靈的名字。TODO思考一下數(shù)//組大小一樣的二維數(shù)組索引與一維數(shù)組索引如何相互轉(zhuǎn)換?charg_sz

6、BlockName[BLOCK_COUNT*BLOCK_COUNT][64];其中在BLOCK的大小為42、在Main.cpp中在最后面添加下面的成員變量的聲明://按方塊大小,在編輯器里擺放的第一塊方塊的起始坐標(biāo)constfloatg_fBlockStartX=-40.625f;constfloatg_fBlockStartY=-28.125f;//屏幕高度75/4塊=18.75每塊的大小.編輯器里預(yù)先擺放好的方塊寬和高//必須與此值一致constfloatg_fBlockSize=18.75f;3、進(jìn)入Main.cpp中填寫初始化代碼。1)填寫下面幾行變量的定義:/*游

7、戲原理:4*4的方塊矩陣(二維數(shù)組),前15個(gè)的值按順序從1-15依次遞增,*第16個(gè)留空為0。按照這個(gè)順序排列的矩陣值代表游戲勝利。初始化的時(shí)候,*將該16個(gè)矩陣值隨機(jī)排布即得到本局關(guān)卡。為0的空位代表附近上下左右的*4個(gè)方塊可以移動(dòng)過(guò)來(lái)。一維數(shù)組g_szBlockName存儲(chǔ)精靈名字與二維數(shù)組*的值一一對(duì)應(yīng),當(dāng)移動(dòng)二維數(shù)組的值的時(shí)候,此名字?jǐn)?shù)組的值也需要跟著移動(dòng)*/intiLoopX=0,iLoopY=0,iLoop=0;intiOneIndex=0,iRandIndex=0;/*用做隨機(jī)的數(shù)組,當(dāng)隨機(jī)抽取到此

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。