C推箱子課程設計報告_第1頁
C推箱子課程設計報告_第2頁
C推箱子課程設計報告_第3頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學武漢理工大學華夏學院課程設計報告書課程名稱:軟件綜合題目 :基于 VC+的“推箱子”游戲軟件的開發(fā)與測試系名:信息工程系專業(yè)班級:姓名:指導教師 :2013 年 元月 18 日課程設計任務書學生姓名:專業(yè)班級:軟件 2101指導教師:工作單位:信息系計算機教研室設計題目:基于 VC+的“推箱子”游戲軟件的開發(fā)與測試初始條件:1. 已完成 c 語言程序設計、軟件工程、數(shù)據庫概論或數(shù)據庫技術等課程的學習2. 系統(tǒng)環(huán)境: Intel 奔騰 4 以上處理器, 1G以上內存, 40G以上硬盤,Windows 編程環(huán)境, Visual C+ 編程工具要求完成的主要任務: (在規(guī)定的時間內完成下列任務)(

2、包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)主要任務:系統(tǒng)完成用戶登錄及管理員增加、刪除、修改、查詢功能1 按系統(tǒng)功能進行游戲背景區(qū)域(移動區(qū)域、圍墻)的設計與繪制:2 根據系統(tǒng)實現(xiàn)的功能,繪出功能圖、系統(tǒng)流程圖3 模塊調試,運行結果正確,并經教師檢查及答辯;設計報告撰寫格式要求: (課程設計報告按統(tǒng)一通用格式書寫)具體內容如下: 設計任務與要求 總體方案與說明 程序主要模塊的流程圖 問題分析與解決方案的設計思想和改進設想 系統(tǒng)的調試記錄、調試報告(即在調試中遇到的主要問題、解決方法及改進設想) 小結與體會附錄:使用說明 參考資料時間安排:2012年12 月29 日-2013年元

3、18 日(共三周)第 1 天介紹本次課程設計的目的、要求,介紹MFCAppWizard 應用程序框架的簡介第 2 天第 5 天介紹 MFC中的窗口消息的創(chuàng)建及用,完成游戲背景區(qū)域(移動區(qū)域、圍墻)的設計與繪制第 6 天第 9 天完成目標區(qū)域、 小人、箱子的繪制、 繪制地圖、加載 / 更新地圖、關卡的設置及系統(tǒng)整合第 10 天系統(tǒng)運行與演示第 11 天第 14 天 系統(tǒng)測試與掌握調試的方法和技巧,撰寫設計報告第 15天按項目組進行演示與答辯,形成課程設計報告文檔指導教師簽字:2012年 12月28 日系主任簽字:年月日目 錄1 引言最經典的推箱子游戲,類似的游戲你一定早就玩過。要控制搬運工上下左

4、右移動,來將箱子推到指定地點記得幾年前,推箱子在機上刮起了一股不小的益智類游戲的旋風,現(xiàn)在許多資深玩家也都對推箱子贊不絕口,可見有深度的益智類游戲是非常受大家歡迎的。 推箱子游戲 1981 年由今林宏行首創(chuàng), 是在 1982 年 12 月由 ThinkingRabbit公司首次發(fā)行,名“倉庫番”。箱子只可以推 , 不可以拉 , 而且一次只能推動一個,勝利條件就是把所有的箱子都推到目的地。推箱子游戲是一種老少皆宜的益智游戲,既可以開發(fā)青少年學生的,又可以防止老年癡呆癥,全家一起攻關還可以促進家庭和睦,何樂而不為推箱子游戲是目前比較流行的游戲之一,很多操作系統(tǒng)或者流行軟件都會帶有這種游戲。它既能鍛

5、煉思維的嚴密性,又有很多樂趣。我們團隊比較喜歡玩這個游戲,于是備采用 c+編程語言進行實現(xiàn)。2 項目需求分析用戶可以進行開始游戲,退出游戲, 選關,重新開始游戲等操作。有結束提示。作為一款極為經典的游戲,推箱子吸引了一代代玩家樂此不疲,通過使用Visual C+ 進行設計,將學習過的知識應用到實際程序中,以便于為以后的進一步學習奠定基礎。推箱子游戲的設計目標完成一個比較簡單的游戲,使之能夠實現(xiàn)推箱子游戲的基本功能,成為一個比較完整的游戲框架。在一個狹小的倉庫中,要求把木箱放到指定的位置,稍不小心就會出現(xiàn)箱子無法移動或者通道被堵住的情況,所以需要巧妙的利用有限的空間和通道,合理安排移動的次序和位

6、置,才能順利的完成任務。在游戲主界面中,會出現(xiàn)一個小人、若干個箱子和箱子放置點。玩家需要利用方向鍵控制小人上下左右移動,并推動界面中的箱子到達指定的箱子放置點。3 系統(tǒng)概要設計3.1功能控制模塊初始化主界系統(tǒng)功能如圖3-1 所示。繼續(xù)退出開始功能控制模塊進入上一關 閉 游選擇關卡次離開游指定位置狀態(tài)判屏幕輸出功能初始化進返回游戲通關時的時刻判斷游戲的小是 否 是通關提示人物、箱子所能移動圖 3-1功能模塊成功提示3.2系統(tǒng)流程圖通關提示進入下一系統(tǒng)流程如圖3-2 所示。關于推箱子游游 戲關卡重置功能規(guī) 則倒回本關的初始返回狀態(tài)和重新選擇圖 3-2系統(tǒng)流程圖3.3推箱子游戲具有的功能3.3.1能

7、夠顯示主菜單和界面游戲需要一共主菜單讓玩家進行游戲設置,同時能夠把地圖文件中的信息轉換成為圖像顯示在游戲界面上。3.3.2能夠實現(xiàn)鍵盤操作功能能夠接受到鍵盤駛入的方向鍵信息,并根據不同的方向鍵把游戲人物移動到相應的位置。例如,當玩家單機方向鍵向上“上”時,如果向上的位置是可以移動的,那么就當把游戲人物向上西東一個方格。3.3.3能夠把放置到位置的箱子進行變色顯示當玩家把箱子推到指定位置的格子時,需要把這個箱子進行變色,這樣就能明確的現(xiàn)實出該箱子已經放置到指定位置。3.3.4游戲勝負判斷功能在游戲中,當玩家把所有的箱子都推到指定點時,玩家勝利通過當前游戲關口,進行下一關口的游戲。如果玩家無法將箱

8、子全部推到指定位置時,玩家失敗,玩家可以選擇重新開始進行當前關口的游戲,還是退出游戲。3.3.5支持關口選擇功能玩家在游戲中可以自行選擇需要挑戰(zhàn)的關口。當玩家點擊菜單中的“關卡選擇”,并在對話框中輸入所需要挑戰(zhàn)的關口,設置完畢后點擊開始即可打開所需關口。3.4推箱子功能框架推箱子游初畫移移功始圖動動能化模箱小控模塊子人制圖 3-3功能框架初始化模塊。該模塊包括屏幕初始化和游戲第一關到第最后一關的初始化。屏幕初始化用于輸出操作信息,游戲每一關的初始化時構建每一關的關卡。畫圖模塊。 該模塊最要是被其他模塊調用, 用于畫墻、 在空地畫箱子、 畫小人、和畫目的地。移動箱子模塊。該模塊用于移動箱子,包括

9、目的地之間、空地之間和目的地與空地之間箱子的移動移動小人模塊。該模塊用于移動人物,包括目的地之間、空地之間和目的地與空地之間人物的移動功能控制模塊。該模塊是幾個功能函數(shù)的集合,包括屏幕輸出功能、指定位置狀態(tài)功能和關卡重置功能。3.5游戲界面設計3.5.1游戲主界面推箱子游戲主界面設計如圖3-4 所示圖 3-4設計的游戲主界面3.5.2游戲菜單與幫助結構設計圖 3-5 游戲菜單結構圖 3-6 幫助結構設計3.5.3游戲中關卡選擇對話框設計圖 3-7 關卡選擇對話框當玩家在對話框中輸入關口數(shù)字,并重新點擊開始游戲時,游戲會自動選擇對應關口的地圖級別開始新游戲。3.6游戲的界面實現(xiàn)在推箱子游戲中,通

10、過如下幾步即可實現(xiàn)游戲的菜單在推箱子游戲工程的資源中添加一個菜單資源,其屬性如表3-1 所示:表 3-1資源屬性ID類別說明IDR_MAINFRAME彈出菜單游戲的主菜單IDR_RESTART菜單欄重新開始IDR_SELECT菜單欄關卡選擇IDR_EXIT菜單欄游戲退出1 給每個菜單欄添加相應函數(shù)到CboxManDlg類中。2 菜單響應函數(shù)的實現(xiàn),各類菜單調用響應,要運用到的代碼如下:(1) void CBoxManDlg:OnExit()pp文件和 .h 文件?;愡x CDialog ,對話框 ID選上面建好的對話框。OK圖 3-10 添加函數(shù)圖 2(2) 為編輯框添加一個變量,用來存儲編輯

11、框獲得的數(shù)據。選項卡Variables,類名選上面那個對話框的類名,選中編輯框的Member ID,增加變量圖 3-11 變量設置( 6)要想在 CBoxManDlg類中使用這個對話框類,必須包含頭文件:#include ""最后,選項卡關聯(lián)函數(shù)中調用這個對話框類:void CBoxManDlg:OnSelect()Debug/","rb");如何顯示 Debug工具欄窗口:在任意工具欄的位置,單擊鼠標右鍵,勾選Debug 項: Tools->Customize-àToolbars- àDebug- àclo

12、se引申:工具欄和工具條的區(qū)別?一個工具欄可以放置多個工具條。2斷點調試F9:設置或去除斷點。如果當前行未設置斷點,按F9 可在當前行設置斷點,如果當前行已設置斷點,按F9 則為去除斷點設置。Alt+F9 :調出斷點設置窗口在這個窗口里可以設置斷點,去除所有已經設置的斷點或者單個斷點,也可以轉到已設置的斷點處,通過按鈕Edit Code ,可以設置需要被計算的表達式,可以設置,監(jiān)視 (Watch) 數(shù)組或結構體元素的個數(shù),可以在窗口過程函數(shù)中設置斷點,可以為任何一個想要監(jiān)視 (Watch) 的消息 (Message) 設置一個斷點。3開始調試: Build-Start Debug-Go: F5

13、注: F5 有兩層含義。對于非調試階段,按F5 用于開始調試。對于調試階段( 已經進入調試階段 ) ,按 F5 用于運行程序到下一個斷點處4. 停止調試一旦按 F5 之后進入調試階段, IDE 編輯器上就會增加一個Debug 菜單選項 ( 里面包含一些常用調試手段)這里列出不常見的兩個, 有 Exceptions ,Threads ,Modules,可以通過點擊 Modules 進入 Module List 對話框,在這里可以看到一些模塊 (Module) ,如,可以 Google 的一些信息。這里略過,我也不是很熟悉。 。-b ,歡迎大牛補充。 。都說說是怎么用的。: Debug- 

14、4;Stop Debugging :Shift+F55重新開始調試 ( 或者說重頭開始調試)這個功能既可以在調試階段使用,也可以在非調試階段使用,用于進入調試階段。在調試階段,它的功能如下: (即不停止調試的情況下)如果在一個程序里有多個斷點,比如斷點1、斷點 2、。斷點 5. 首先,按 F5 調試,進入調試階段,程序首先執(zhí)行到斷點1 處,如果再按F5 就會執(zhí)行到斷點2 處,依次類推,直到斷點5 處,如果當程序執(zhí)行到斷點5 處,再按 F5,則程序不會再中斷,程序完全運行起來??墒牵谡{試階段, 如何從斷點2斷點 5 處之間的任意一個斷點跳到斷點1 處去重新執(zhí)行呢比如,程序已經執(zhí)行到斷點4 處,

15、現(xiàn)在程序員想回到斷點1 處,重新再查看(監(jiān)視)每個斷點處的情形(也許是他記性不好,也許是他眼花了,也許是他操作太快,比如多按了幾下F5 鍵 (*_*) ,這種情況大家也碰到過吧,往往很多人選擇了,停止調試,再重新開始進入調試,再重新來一遍,當然,這樣可以,只是有點麻煩。)現(xiàn)在,其實還有一種方法。 。我之前也沒發(fā)現(xiàn)。 。 -b 。在這種情況下,就可以用重新開始調試了(注意,這個重新開始調試是指再不停止調試的情況下,重新開始調試),比如,現(xiàn)在在斷點4 處,想回到斷點1 處,就可以按Ctrl+Shift+F5(重新開始調試的快捷鍵):Debug- àRestart: Ctrl+Shift+

16、F56. 單步調試前提條件 - 調試階段: Debug-Step Into (F11)逐語句。(例如,遇到函數(shù)調用時會進入被調函數(shù)): Debug-Step Over (F10)逐過程(例如,遇到函數(shù)調用語句時,不會進入被調函數(shù)): Debug-Step Out (Shift+F11)跳出過程調用(例如,當F11 逐語句進入被調函數(shù)后,按Shift+F11會跳出被調函數(shù)): Debug- àRun to Cursor (Ctrl+F10)運行到光標所在位置。 (注:貌似執(zhí)行只能向前不能向后,即光標定位不能在已經執(zhí)行過的代碼里),經測試,如果光標在已執(zhí)行的代碼里,按Ctrl+F10則程

17、序會完全執(zhí)行起來,猜測。 。是不是執(zhí)行完程序,再重新,從頭開始執(zhí)行到光標處,貌似顯示的是沒執(zhí)行到光標處。 。 -b 歡迎批評補充。7. 變量監(jiān)視: Debug- àQuickWatch (Shift+F9)調出 QuickWatch 對話框,添加要監(jiān)視查看(watch )的表達式( expression ),然后Add Watch ,程序之后就會監(jiān)視該表達式: View-Debug Windows-Watch (Alt+3)監(jiān)視你設置的需要被監(jiān)視的變量。: View- àDebug Windows- àVariables (Alt+4)監(jiān)視所有變量。注: View

18、 下的 Debug Windows 下的所有項均在Debug 工具條中有。注:在 Debug 下,可以將變量選中,直接拖到 Variables 的窗口中監(jiān)視。 。,是不是很方便很 HIGH4功能測試4.1主菜單和界面顯示功能測試這個演示主要是測試游戲的菜單和界面顯示是否成功,其步驟如下。( 1)運行推箱子程序 .exe 文件, 如圖 6-1 所示圖 6-1 運行文件( 2)程序啟動后,其菜單及界面如圖6-2 所示圖6-2界面效果4.2鍵盤操作功能測試鍵盤操作功能的演示,演示步驟如下:(1) 游戲開始后人物的位置,如圖6-3 所示圖6-3(2) 按下鍵盤上的“下”方向按鍵。(3) 查看任務是否向

19、下移動,如圖5-4 :圖6-44.3箱子放置到指定位置時變色顯示功能測試將箱子放置到指定位置時,箱子會變色的功能,具體步驟如下(1)推箱子游戲已經開始,如圖6-5 所示圖 6-5(2)推動箱子到指定位置后,顯示如圖5-6 所示圖6-64.4支持地圖擴展功能的演示推箱子游戲是否支持地圖擴展功能,步驟如下:(1)查看第一關地圖文件,其內容如下:(2)與游戲顯示的地圖對照圖 6-7第一關地圖文件圖 6-8 修改后的地圖文件(3)重新進行第一關游戲,地圖顯示圖 6-95 特殊問題及解決方法1、問題1問題描述記錄所有走過的步數(shù)總是不成功解決方案設置變量 sum解決結果可以記錄所有走過的步數(shù),當游戲重新開

20、始的時候本關的步數(shù)清零。2、問題 2問題描述在初始化地圖函數(shù)時,由于每加載地圖均要將目的地存儲于POINT DE 中,由于人物移動過程中當人物占領目的地時,目的地POINT DE 存儲內容也會隨之改變,事實上DE里面的值是不會變的解決方案對 POINT DE 的值只初始化一次,記在選關按鈕按下時,或游戲結束時才初始化,當人物移動時,當加載目的地圖片時,不再對POINT DE 進行賦值。解決結果目的地的圖片正常顯示,成功判斷當前關是否成功6 設計小結從工程實踐開始前兩周,原計劃使用MFC開發(fā)程序,因為較WIN32應用程序熟悉,但是后來考慮到運用WIN32應用程序能使得開發(fā)更為靈活,且文件不至于冗余。剛剛使用WIN32 應用程序開發(fā)的時候,對整個開發(fā)框架和消息機制的不熟悉,走了很多彎路,花了不少時間實踐,從最初的需求分析設計,概要設計,我們小組都會集中實

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論