版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.WD.WD.WD.程序設計課程設計報告書學生 :孟祥煜指導教師:曾宇容課程設計名稱:推箱子小游戲班級: 軟件11401設計任務介紹推箱子游戲的實現(xiàn)方法,并逐步介紹C語言圖形編程的方法和技巧。在C語言編寫軟件WIN-TC上,涉及軟中斷、二維數(shù)組、鍵盤操作及圖形化函數(shù)等方法,顯示器中斷存放器的設置、二維數(shù)組的定義、鍵盤上鍵值的獲取、圖形方式下光標的顯示和定位,以及局部圖形函數(shù)的使用實現(xiàn)了一個完整的推箱子游戲界面,界面清晰可見。設計目的訓練學生掌握C的數(shù)據(jù)構造和綜合編程能力和游戲開發(fā)技巧等應用能力。初步設想推箱子是一款經(jīng)典的益智小游戲,目的是在訓練人的邏輯思考能力。在一個狹小的空間中,要求把木箱從
2、起始位置處推放到指定位置。在空間中有地方限制,稍不小心就會出現(xiàn)箱子無法移動或者通道被堵住的情況,而且箱子只能推不能拉,所以需要玩家巧妙的利用有限的空間和通道,合理的移動次序和位置,才能完成任務。本游戲一共分14關,由易到難,每一關都隨著關數(shù)的增加來增加難度,從而到達吸引游戲玩家的目的。 三 功能 1、菜單功能,玩家通過看目錄按對應的鍵可以進入對應的功能菜單,其中1進入游戲,2選擇游戲關卡,3游戲幫助指南 ,4退出游戲。 2 游戲功能: 玩家可以通過操縱鍵盤中的上下左右鍵進入游戲進展各種操作來完成游戲。3 循環(huán)功能:當玩家正在游戲的時候如果某一步走錯了,導致游戲無法完成,可以隨時重新開場游戲來完
3、成關卡,游戲過程中可以隨時按Ctrl+V退出游戲。4順序功能: 當玩家完成了某一關之后,隨著進入下一關門可以按順序進入下一關,繼續(xù)開場更有挑戰(zhàn)的關卡,如果該關是最后一關,那么顯示通關完成。總體設計功能模塊設計函數(shù)功能描述本程序包括5個模塊,分別是初始化模塊、畫圖模塊、移動箱子模塊、移動小人模塊和功能控制模塊。各個模塊功能的功能描述如下:1初始化模塊。該模塊包括屏幕初始化和游戲第一關到第最后一關的初始化。屏幕初始化用于輸出歡迎信息和操作提示,游戲每一關的初始化是構建每一關的關卡。2畫圖模塊。該模塊主要是被其他模塊調用,用于畫墻、在空地畫箱子、在目的地畫箱子、畫小人和畫目的地。3移動箱子模塊。該模
4、塊用于移動箱子,包括目的地之間、空地之間和目的地與空地之間箱子的移動。4移動小人模塊。該模塊是幾個功能函數(shù)的集合,包括屏幕輸出功能、指定位置狀態(tài)判斷功能和關卡重置功能。5功能控制模塊。該模塊是幾個功能函數(shù)的集合,包括屏幕輸出功能、指定位置狀態(tài)判斷功能和關卡重置功能。推箱子游戲初始化模塊畫圖模塊移動箱子模塊移動小人模塊功能控制模塊任務執(zhí)行流程圖數(shù)據(jù)流程圖游戲從第一關開場,按上下左右方向鍵控制小人移動來推動箱子,可以在游戲中的任何時候按Esc鍵退出。如果游戲無成功希望,可以按CTRI+V回到當前任務的開場狀態(tài);如果成功完成當前關,那么進入下一關,如果當前關是最后一關,那么顯示通關信息,提示游戲完畢
5、。小人移動流程圖 小人移動的方向有4個,move函數(shù)處理小人移動的函數(shù)對這4個方向移動的處理都一致,只是調用函數(shù)時的參數(shù)有所不同。首先判斷小人移動的方向,然后根據(jù)小人所處世的當前狀態(tài)、下一步狀態(tài)或者下下一步狀態(tài)進展適當?shù)奶幚?。?shù)據(jù)構造設計設置全局變量定義int v1317,用于記錄箱子在屏幕中哪個坐標上。其中“0表示什么都沒有。定義了int num_guan指現(xiàn)在的關數(shù),int num_xiang;箱子的個數(shù),int move_num人行走的次數(shù);int push_num人推箱子的次數(shù);定義數(shù)組int M2表示人所在的位置; M0 是人所在位置的橫坐標 M1是人所在位置的縱坐標;定義數(shù)組int
6、 door2表示門所在的坐標,door0是“下一關門的橫坐標,door1是“下一關門的縱坐標。3主函數(shù)下面讓我們來看看主函數(shù)的操作流程,主函數(shù)首先進入游戲目錄,提醒游戲玩家輸入對應的數(shù)字來進展的對應的操作,如果玩家輸入1那么進入游戲第一關,輸入2選擇關卡進入,輸入3顯示游戲幫助菜單,幫助玩家更好的理解這個游戲的規(guī)那么,輸入4退出游戲。進入游戲后,首先調用chushi1()函數(shù)初始化要使用的頁面,之后程序進入play()函數(shù),play()函數(shù)中通過if語句通過判斷i的值來初始化不同的關卡設置好關卡的人,箱子,箱子的目的地,門,接著程序進入control函數(shù)通過獲取玩家在鍵盤上的操作來分別對游戲人
7、物進展操作,最后通過wancheng函數(shù)來對操作進展判斷,如果判斷成功的話那么進入下一關游戲。反之那么失敗。一直通過到最后一個那么通關成功。四 代碼設計或編程單個模塊或函數(shù)處理 將整個系統(tǒng)程序分解為各個單獨的模塊,即C的函數(shù),各模塊可單獨編譯;整個程序的聯(lián)調 在各個模塊 基本的單獨編譯通過后,用主函數(shù)將他們集成在一起,實現(xiàn)調用,并進展輸出數(shù)據(jù)的可靠性、輸入數(shù)據(jù)及系統(tǒng)的容錯性測試。五 程序說明書功能模塊play()control()Daying()Wancheng()解析 play()play()函數(shù)在這個程序中的功能主要是按1進入游戲系統(tǒng)后自動按照順序進展游戲和完成每一關游戲后進入下一關關卡,
8、其中變量i控制關卡的關數(shù),j控制進入下一關,首先利用if語句將i從一開場,初始化完成第一關,通過play()函數(shù)中的內嵌函數(shù)control()函數(shù)來控制游戲中人和箱子的各種操作,當過關了control()函數(shù)return 0.即j=control()中的j等于0,游戲進入下一關。依次類推,當完成14關之后j=1游戲完畢。void play()int i,j=0;for(i=1;i=2&command=26)if(command=3)return 1; else ; /Ctrl+az:126 當為ctrl+c的時候程序完畢if(win=wancheng()=0) tem=0; system(cl
9、s);dayin();if(win=wancheng()=1&vdoor0door1=ren) Sleep(225);return 0;return 0; /如果門的坐標和人的坐標相等的時候直接退出此語句,進入下一個程序俗稱下一關 3 Daying()Daying函數(shù)在這個程序主要在游戲中的功能是畫出游戲中人和箱子和“完成門家,人的圖標和對游戲中的關卡和人走的步數(shù)和推箱子的步數(shù)進展計數(shù)數(shù),根據(jù)游戲中玩家的操作隨時的對游戲畫面進展變換。通過變量i,j來獲得men,qiang,oxiang,ren,jia,xiang分別表示完成門、墻、箱子放在家中、人、家、箱子的坐標來找到各個變量的位置,從而運用
10、畫圖函數(shù)畫出對應的圖標。void dayin()int i,j;for(i=0;i=12;i+)for(j=0;j=16;j+)if(fubenij=jia&vij=0) vij=jia;for(i=0;i=12;i+)for(j=0;j=16;j+)if(vij=qiang)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_INTENSITY);printf();else if(vij=men)SetConsoleTextAttribute(GetStdHandl
11、e(STD_OUTPUT_HANDLE),FOREGROUND_BLUE | FOREGROUND_RED);printf();else if(vij=oxiang)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_GREEN);printf();else if(vij=ren)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|FOREGROUND_INTENSI
12、TY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE|FOREGROUND_RED);printf(囧);else if(vij=jia)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |FOREGROUND_GREEN | FOREGROUND_RED);printf();else if(vij=xiang)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREG
13、ROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);printf();else SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);printf( );printf(n);SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY| FOR
14、EGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); printf(nn 關卡 %3d 步數(shù) %3d 推箱子次數(shù) %3dn,num_guan,move_num,push_num);4 Wancheng()Wancheng()函數(shù)在這個程序中的功能主要是判斷游戲是否完成,其中定義了變量n來控制oxiang進入了目標位置家的箱子的個數(shù),用fubenij=men來定義“完成門,當n等于此關中箱子的個數(shù)且vij=men,即人的位置在“完成門上的時候return(1)即玩家完成了這個一關,如果完成門在oxiang或者人不在完成門上那么未完成。int wan
15、cheng()int i,j,n=0;for(i=0;i=12;i+)for(j=0;j=16;j+) if(vij=oxiang) n=n+1; /n是對進入家的箱子計數(shù)if(n=num_xiang) if(tem=0)for(i=0;i=12;i+) for(j=0;j=16;j+) if(fubenij=men) vij=men;tem=tem+1;return 1; /正確else if(vdoor0door1=xiang) vdoor0door1=xiang; /錯誤return 0;else if(vdoor0door1!=ren)vdoor0door1=0; /錯誤return
16、0;/程序完畢 return 0; /錯誤六 缺乏之處由于技術等原因,有一些代碼在效率上還有待提高,功能上有所缺乏。七 程序特色程序改變了傳統(tǒng)的方式,實現(xiàn)了非黑框的窗口,并且實現(xiàn)了游戲人物的繪制以及運動,關卡的由易到難的逐級推進功能,讓游戲變得更加有趣味有難度,從而吸引玩家玩這個游戲。八 總結 通過這從課程,首先真正的感覺到了自己技術的提高,也認識到了自己的缺乏和編寫代碼上的不熟練,在很多很多地方也需要花時間去練習,去提升。 然后,通過這一次課程設計的經(jīng)歷,我們能夠發(fā)現(xiàn),原來我們以前認為的非常難的一些東西在不懈的努力下也是可以完成的,“世上無難事,只怕有心人。 ,只要努力了,都會有收獲,同時相信經(jīng)過這一次課程設計,我們在以后的學習生活中一定會有更大的提升,更大的進步!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新型農村宅基地使用權轉讓合同范本
- 二零二五年度噴漆作業(yè)場所職業(yè)健康監(jiān)護與疾病預防合同
- 二零二五年度企業(yè)VI系統(tǒng)全案定制合同3篇
- 二零二五年度戶外噴泉節(jié)能改造專項合同
- 二零二五年度土地整治土石方運輸及土壤改良合同6篇
- 2025年度智能車展合作項目合作協(xié)議書范本4篇
- 2025版中學校園食品安全供應與配送合作協(xié)議3篇
- 二零二五年度工業(yè)用地土地廠房轉讓與產業(yè)升級合同
- 珠海城市職業(yè)技術學院《韓國語語法》2023-2024學年第一學期期末試卷
- 二零二五年度農產品供應鏈合作協(xié)議書2篇
- 安全常識課件
- 河北省石家莊市2023-2024學年高一上學期期末聯(lián)考化學試題(含答案)
- 小王子-英文原版
- 新版中國食物成分表
- 2024年山東省青島市中考生物試題(含答案)
- 河道綜合治理工程技術投標文件
- 專題24 短文填空 選詞填空 2024年中考英語真題分類匯編
- 再生障礙性貧血課件
- 產后抑郁癥的護理查房
- 2024年江蘇護理職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 電能質量與安全課件
評論
0/150
提交評論