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

正文內(nèi)容

畢業(yè)論文-基于c語言的推箱子游戲設(shè)計(jì)-在線瀏覽

2025-08-09 10:53本頁面
  

【正文】 ..1 進(jìn)入游戲選關(guān)界面 ……………………………… ……………………………… 28 游戲第一關(guān) ……………………………………………………………………… .28 、三關(guān) ………………………………………………………………… .29 游戲結(jié)束 ………………………………………………………………………… 30 第四 章 總結(jié) ………………………………………………………… ....32 參考文獻(xiàn) ……………………………………………………………… ..33 廣東工程職業(yè)技術(shù)學(xué)院畢業(yè)論文 1 第一章 緒論 功能 C 語言是我們數(shù)計(jì)系都要學(xué)的一門基礎(chǔ)學(xué)科。設(shè)計(jì)者只要完成對(duì) 推箱子游戲 的功能描述,就可以利用計(jì) 算機(jī)和工具,進(jìn)行設(shè)計(jì)處理,最終得到 理想的 設(shè)計(jì)結(jié)果。 確定軟件的功能 讓玩家通過按上下左右鍵推箱子,當(dāng)箱子們都推到了目的地后出現(xiàn)過關(guān)信息,并顯示下一關(guān)。直到過完全部關(guān)卡。 char ghouse[20][20]。b39。w39。m39。i39。 對(duì)整個(gè)軟件進(jìn)行功能模塊的劃分 :在屏幕上輸出歡迎信息,把 ghouse 數(shù)組的元素初始化為 0。并用 ghouse 數(shù)組記錄各點(diǎn)的狀態(tài)。當(dāng)接受到上下左右鍵時(shí)執(zhí)行相關(guān)操作:接受 ESC 鍵時(shí)退出游戲;接受空格鍵時(shí)返回本關(guān)開頭;接受無效按鍵時(shí)做忽略處理。 :用一個(gè)鏈表 win 由每關(guān)的初始化函數(shù)傳給 main 函數(shù)。 Main 函數(shù)每執(zhí)行一次操作后就判斷屏幕上的目的地是不是都有箱子了。 ( 1)初始化包括屏幕初始化和每一關(guān)卡的初始化,屏幕被初始化寬 80 像素,高 25 像素。 ( 3)每一關(guān)都可以重置,按空格鍵可以重置當(dāng)前關(guān)。 第二章 游戲的整體設(shè)計(jì) 系統(tǒng)模塊圖 本程序包括 5 個(gè)模塊,分別是初始化模塊、畫圖模塊、移動(dòng)箱子模塊、移動(dòng)小人模塊和功能控制模塊,如圖(一)所示。 該模塊包括屏幕初始化和游戲第一關(guān)的初始化。 ( 2)畫圖模塊。 ( 3)移動(dòng)箱子模塊。 ( 4)移動(dòng)小人模塊。 ( 5)功能控制模塊。 廣東工程職業(yè)技術(shù)學(xué)院畢業(yè)論文 3 任務(wù)執(zhí)行流程圖 游戲從第一關(guān)開始,按上下左右方向鍵控制小人移動(dòng)來推動(dòng)箱子,可以在游戲中的任何時(shí)候按 Esc 鍵退出。 小人移動(dòng)流程圖 小人移動(dòng)的方向有 4個(gè), move()函數(shù)(處理小人移動(dòng)的函數(shù))對(duì)這 4個(gè)方向移動(dòng)的處理都一致,只是調(diào)用函數(shù)時(shí)的參數(shù)有所不同。 設(shè)置全局變量 定義二維數(shù)組 char status[20][20],用于記錄屏幕一各點(diǎn)的狀態(tài)。首先將屏幕 20*20 范圍內(nèi)的狀態(tài)初始化為 0,然后根據(jù)具體情況,在畫箱子時(shí),將箱子所在點(diǎn)的狀態(tài)改為“ b” ;在畫墻壁時(shí),將墻壁所在點(diǎn)的狀態(tài)改為“ w” ;在畫目的地時(shí),將目的地所在點(diǎn)的狀態(tài)改為“ m” ;當(dāng)箱子被推到目的地時(shí),箱子所在點(diǎn)的狀態(tài)改為“ i”,如果每一關(guān)中所有目的地的狀態(tài)都為“ i”,則說明該關(guān)已完成。彩色顯示器的字 符緩沖區(qū)首地址為 0xB8000000,每一個(gè)字符占 2 個(gè)字節(jié)(第一個(gè)字節(jié)為 ASCII 值,第二個(gè)字節(jié)為顏色值),字符模式下屏幕寬 80 像素,高 25 像素,一屏可以寫 80*25 個(gè)字符。 int y。 }winer。其中 x 用于存放目的地的橫坐標(biāo), y 用于存放目的地的縱坐標(biāo)。該結(jié)構(gòu)體的初始化在每一關(guān)的初始化時(shí)進(jìn)行。其中, x、 y 指明輸出的位置, ch表示輸出的字符, fc 表示輸出的字符顏色, bc 表示背景色。該函數(shù)調(diào)用 putoutChar()進(jìn)行輸出,以黑色為背景畫綠色墻,用小方塊表示墻( ASCII 值為 219) 。該函數(shù)調(diào)用putoutChar()進(jìn)行輸出,以黑色為背景白色箱子,用 ASCII 值為 10 的字符表示箱子。該函數(shù)調(diào)用 putoutChar()進(jìn)行輸出,以黑色為背景畫黃色箱子,仍用 ASCII 值為 10的字符表示箱子。該函數(shù)調(diào)用 putoutChar()進(jìn)行輸出,以黑色為背景畫黃色目的地,用心型表示( ASCII值為 003)。其中 x、 y 指明目的地的位置,每一關(guān)的所有目的地位置存放在結(jié)構(gòu)體struct winer 中,形成一條鏈表, **winer 返回鏈表的頭, **pw 則指向鏈表的尾部。 X、y指明畫的位置。 init() 函數(shù)原型 : void init(), init()函數(shù)用于初始化屏幕。 初始化游戲 函數(shù)原型: winer *initStep1()、 winer *initStep2()、 winer *initStep3()、winer *initStep4(),這幾個(gè)函數(shù)分別初始化游戲的第一關(guān)到第四關(guān)。首先根據(jù)需要在指定的位置畫墻壁和畫箱子,在這里可以 設(shè)置游戲的難度,初始化的墻壁越復(fù)雜,箱子越多,則游戲就越難。然后分別調(diào)用 printDestination1()和 printMan()函數(shù)畫目的地和小人。 移動(dòng)箱子 函數(shù)原型 : void moveBoxSpacetoSpace(int x,int y,char a) 、 void moveBoxDestoSpace(int x,int y, char a)、 void moveBoxSpacetoDes(int x,int y,char a)、 void moveBoxDestoDes(int x,int y,char a),這幾個(gè)函數(shù)實(shí)現(xiàn)的功能分別是人空地移動(dòng)箱子到空地、從目的地移動(dòng)箱子到空地、從空地移動(dòng)箱子到目的地和中從目的地移動(dòng)箱子到目的地。這幾個(gè)函數(shù)的實(shí)現(xiàn)原理大致相似。 1 judge() 函數(shù)原型 : int judge(int x,int y), judge()根據(jù)結(jié)構(gòu)體 struct[x][y]中存的值來判斷該點(diǎn)的狀態(tài)。小人移動(dòng)的方向有上(“ u” ) 、下(“ d”)、左(“ l”)、右 (“ r” )4個(gè), 4個(gè)方向的處理方式一樣。 ( 1) 若下一步所在位置的狀態(tài)為墻壁(“ w”),則直接退出,不作任何處理。 ② 若當(dāng)前位置的狀態(tài)為非目的地,則輸出空格清空當(dāng)前位置的小人 ,并在下一步位置畫小人(調(diào)用 printMan()函數(shù))。 ② 如果下下一步位置的狀態(tài)為目的地,則把箱子從空地移動(dòng)到目的地(調(diào)用 moveBoxSpacetoDes()函數(shù)),然后把光標(biāo)移動(dòng)到下一步位置(如果當(dāng)前位置的狀態(tài) 為 目的地,則應(yīng)先畫目的地(調(diào)用 printDestination()函數(shù)))。 ( 4) 若下一步所在位置的狀態(tài)為箱子在目的地(“ i”) ,則: ① 如果下下一步位置的狀態(tài)為“ 0”,則把箱子從目的地移動(dòng)到空地(調(diào)用moveBoxDestoSpace()函數(shù)),然后把光標(biāo)移動(dòng)到下一步位置(如果當(dāng)前位置的狀態(tài)為目的地,則應(yīng)先畫目的地(調(diào)用 printDestination()函數(shù)))。 ③ 其它情況則直接返回,不作任何處理。該函數(shù)首先判斷當(dāng)前關(guān)是第幾關(guān),然后調(diào)用 init()函數(shù)和初始化當(dāng)前關(guān)的函數(shù)進(jìn)行重置。然后根據(jù)按下的 鍵( bioskey(0)函數(shù)返回按下的鍵值)進(jìn)行處理,處理過程由move()函數(shù)進(jìn)行(如果按下 Esc 鍵,則退出程序)。 廣東工程職業(yè)技術(shù)學(xué)院畢業(yè)論文 7 第三章 推箱子游戲的程序?qū)崿F(xiàn) 程序預(yù)處理 程序預(yù)處理部分包括加載頭文件、定義全局變量和定義數(shù)據(jù)結(jié)構(gòu),并對(duì)它們進(jìn)行初始化工作。 struct winer *p。 /*定義全局變量 */ /*記錄屏幕上各點(diǎn)的狀態(tài) */ char status [20][20]。 /*自定義函數(shù)原型 */ void putoutChar(int y,int x,char ch,char fc,char bc)。 void printBox(int x, int y)。 void printDestination(int x, int y)。 void printMan(int x, int y)。 winer *initStep1()。 winer *initStep3()。 void moveBoxSpacetoSpace(int x ,int y, char a)。 void moveBoxSpacetoDes(int x, int y, char a)。 int judge(int x, int y)。 void reset(int i)。該模塊包括以下幾個(gè)函數(shù)。 (2) winer *initStep1(),初始化游戲的第一關(guān)。 (4) winer *initStep3(),初始化游戲的第三關(guān)。 其中初始化屏幕函數(shù)的詳細(xì)代碼如下: /*初始化屏幕函數(shù) */ void init() { int i,j。i20。j20。 /*設(shè)置寄存器 AX地位, 80*25 彩色方式顯示 */ _AL=3。 geninterrupt(0x10)。 printf(Wele to the box world!)。 printf(You can use up, down, left,)。 printf(right key to control it, or)。 printf(you can press Esc to quit it.)。 printf(Press space to reset the game.)。 printf(Wish you have a good time !)。 printf(Dec , 2021)。 int y。 winer *pw。y=9。 for(y=5,x=2。x++) printWall(x+4,y+10)。x=5。 for(y=1,x=3。x++) printWall(x+4,y+10)。x=5。 for(x=5,y=8。x++) printWall(x+4,y+10)。x=9。 for(x=9,y=5。y++) printWall(x+4,y+10)。y=3。 printWall(5+4,4+10)。 printWall(3+4,2+10)。 printBox(3+4,7+10)。 /*在指定位置畫目的地 */ printDestination1(4+4,2+10,amp。pw)。win,amp。 printDestination1(6+4,2+10,amp。pw)。 return win。 int y。 winer *pw。y=7。 for(x=2,y=2。y++) printWall(x+4,y+10)。x=4。 for(x=4,y=1。x++) printWall(x+4,y+10)。y=8。 for(x=4,y=8。x++) printWall(x+4,y+10)。x=5。 for(x=3,y=2。x++) printWall(x+4,y+10)。x=5。 printWall(6+4,3+10)。 printBox(6+4,6+10)。 /*在指定位置畫目的地 */ printDestination1(5+4,7+10,amp。pw)。win,amp。 printDestination1(7+4,7+10,amp。pw)。 return win。 廣東工程職業(yè)技術(shù)學(xué)院畢業(yè)論文 11 int y。 winer *pw。y=8。 for(x=2,y=2。x++) printWall(x+4,y+10)。y=3。 for(x=5,y=1。x++) printWall(x+4,y+10)。y=5。 for(x=5,y=5。x++) printWall(x+4,y+10)。y=9。 for(x=3,y=9。x++) printWall(x+4,y+10)。y=8。 printWall(2+4,8+10)。 /*在指定位置畫箱子 */ printBox(6+4,3+10)。 printBox(5+4,6+10)。win,amp。 printDestination1(2+4,6+10,amp。pw)。win,amp。 /*在指定位置畫小人 */ printMan(2+4,4+10)。 } /*在指定位置畫墻,構(gòu)建第四關(guān) */ winer *initStep4() { int x。 winer *win=NULL。 for(x=1,y=1。y++) 廣東工程職業(yè)技術(shù)學(xué)院畢業(yè)論文 12 printWall(x+4,y+10)。y=8。 for(x=2,y=1。x++) printWall(x+4,y+10)。y=4。 for(x=6,y=4。y++) printWall(x+4,y+10)。x=5。 for(x=3,y=3。y++) prin
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1