




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于MyEclipse10的推箱子游戲?qū)崿F(xiàn)與測試目錄TOC\o"1-3"\h\u25453基于MyEclipse10的推箱子游戲?qū)崿F(xiàn)與測試 1203821.系統(tǒng)實現(xiàn) 1109951.1系統(tǒng)開發(fā)平臺 1168131.2系統(tǒng)運行軟件環(huán)境 1107521.3函數(shù)模型說明 1141922.軟件測試 561642.1.什么是軟件測試? 517242.2.為什么要進行軟件測試? 5181052.3.軟件測試的基礎(chǔ)流程: 6270922.4軟件運行測試 66392.5測試結(jié)論 81.系統(tǒng)實現(xiàn)1.1系統(tǒng)開發(fā)平臺MyEclipse101.2系統(tǒng)運行軟件環(huán)境軟件環(huán)境:JDK版本:jdk1.8.0_281 。1.3函數(shù)模型說明1.putoutChar()函數(shù)原型:voidputoutChar(inty,intx,charch,charfc,charbc)該函數(shù)實現(xiàn)的功能是將開發(fā)者需要顯示的字符信息在屏幕上的指定位置上輸出出來。其中的x、y表示的是位置的坐標,ch表示需要輸出的字符,fc是對字符顏色進行設(shè)置,bc是設(shè)置背景顏色。2.printWall()函數(shù)原型:voidprintWall(intx,inty)該函數(shù)實現(xiàn)的功能是設(shè)置墻壁,參數(shù)x、y表示的是當前墻體的坐標位置。該函數(shù)調(diào)用putoutChar()進行輸出,以黑色為背景繪制綠色墻,用小方塊表示墻(ASCII值為219)。3.printBox()函數(shù)原型:voidprintBox(intx,inty)該函數(shù)實現(xiàn)的功能是在非目的地繪制箱子,參數(shù)x、y表示的是繪制箱體的位置。該函數(shù)調(diào)用putoutChar()進行輸出,以黑色為背景白色箱子,(ASCII值為10)的字符表示箱子。1.printBoxDes()函數(shù)原型:voidprintBoxDes(intx,inty)該函數(shù)實現(xiàn)的功能是在目的地繪制箱子,參數(shù)x、y表示的是目的箱子的位置。該函數(shù)調(diào)用putoutChar()進行輸出,以黑色為背景繪制黃色箱子,仍用(ASCII值為10)的字符表示箱子。2.printDestination()函數(shù)原型:voidprintDestination(intx,inty)該函數(shù)實現(xiàn)的功能是繪制目的地,傳入?yún)?shù)x、y指明位置。該函數(shù)調(diào)用putoutChar()進行輸出,以黑色為背景繪制黃色目的地,用心型表示(ASCII值為003)。6.printDestination1()函數(shù)原型:voidprintDestination1(intx,inty,winer**win,winer**pw)該函數(shù)實現(xiàn)的功能是繪制目的地函數(shù),但是printDestination1()增加了記錄每一個目的地位置的功能。其中x、y指明目的地的位置,每一關(guān)的所有目的地位置存放在結(jié)構(gòu)體structwiner中,形成一條鏈表,**winer返回鏈表的頭,**pw則指向鏈表的尾部。7.printMan()函數(shù)原型:voidprintMan(intx,inty)該函數(shù)實現(xiàn)的功能是繪制小人。X、y指明繪制的位置。該函數(shù)通過軟中斷來實現(xiàn),首先設(shè)置寄存器AX的高位和低位,設(shè)置高位0xa表示在光標位置顯示字符;設(shè)置低位02(ASCII值),表示輸出的字符;然后設(shè)置寄存器CX為01,表示重復(fù)輸出的次數(shù),這里只輸出一次;最后產(chǎn)生類型為0x10的中斷,表示顯示器輸出。8.init()函數(shù)原型:voidinit()該函數(shù)實現(xiàn)的功能是初始化屏幕。該函數(shù)首先用兩個for循環(huán)初始化屏幕20*20范圍內(nèi)的狀態(tài),初始化為0,以后根據(jù)實際情況重新賦值;然后設(shè)置屏幕輸出狀態(tài),設(shè)置寄存器AX的高位為0,低位為3,表示以80*25的彩色方式顯示;最后移動光標到指定的位置輸出操作提示信息以及版權(quán)信息。9.初始化游戲函數(shù)原型:winer*initStep1()、winer*initStep2()、winer*initStep3()、winer*initStep4()這幾個函數(shù)分別初始化游戲的第一關(guān)到第四關(guān)。這些函數(shù)的功能和實現(xiàn)步驟相似。首先根據(jù)需要在指定的位置繪制墻壁和繪制箱子,在這里可以設(shè)置游戲的難度,初始化的墻壁越復(fù)雜,箱子越多,則游戲就越難。游戲的第一關(guān)至第四關(guān)難度依次增加。然后分別調(diào)用printDestination1()和printMan()函數(shù)繪制目的地和小人。函數(shù)返回包含各個目的地位置的鏈表。10.移動箱子函數(shù)原型:voidmoveBoxSpacetoSpace(intx,inty,chara)、voidmoveBoxDestoSpace(intx,inty,chara)、voidmoveBoxSpacetoDes(intx,inty,chara)、voidmoveBoxDestoDes(intx,inty,chara)這幾個函數(shù)實現(xiàn)的功能分別是人空地移動箱子到空地、從目的地移動箱子到空地、從空地移動箱子到目的地和中從目的地移動箱子到目的地。X、y指明小人當前所處的位置,字符a表示移動的方向,有“u”、“d”、“l(fā)”和“r”4個值,分別表示向上、下、左、右移動。這幾個函數(shù)的實現(xiàn)原理大致相似。對于前面兩個函數(shù),首先判斷移動的方向,人小人所在的位置沿著移動的方向移動一步繪制小人,移動兩步繪制箱子(調(diào)用printBox()函數(shù)),并設(shè)置狀態(tài)為“b”;對于后面兩個參數(shù),首先判斷移動的方向,從小人所在的位置沿著移動方向移動一步繪制小人,移動兩上在目的地繪制箱子(調(diào)用printBoxDes()函數(shù)),并設(shè)置狀態(tài)為“i”,表明箱子在目的地上。11.judge()函數(shù)原型:intjudge(intx,inty)該函數(shù)實現(xiàn)的功能是根據(jù)結(jié)構(gòu)體struct[x][y]中存的值來判斷該點的狀態(tài)。12.move()函數(shù)原型:voidmoid(intx,inty,chara)該函數(shù)實現(xiàn)的功能是根據(jù)按下的鍵來處理小人的移動。小人移動的方向有上(“u”)、下(“d”)、左(“l(fā)”)、右(“r”)4個,4個方向的處理方式一樣。首先判斷移動的方向,然后根據(jù)小人的當前位置、下一步位置以及下下一步位置所在的狀態(tài)進行處理。(1)若下一步所在位置的狀態(tài)為墻壁(“w”),則直接退出,不作任何處理。(2)若下一步所在位置的狀態(tài)為目的地(“i”)或者什么都沒有(“0”),則:①若當前位置的狀態(tài)為目的地,則在當前位置繪制目的地(調(diào)用printDestination()函數(shù))、在下一步位置繪制小人(調(diào)用printMan()函數(shù))。②若當前位置的狀態(tài)為非目的地,則輸出空格清空當前位置的小人,并在下一步位置繪制小人(調(diào)用printMan()函數(shù))。(3)若下一步所在位置的狀態(tài)為箱子(“b”),則:①如果下下一步位置的狀態(tài)為“0”,則把箱子從空地移動到空地(調(diào)用moveBoxSpacetoSpace()函數(shù)),然后把光標移動到下一步位置(如果當前位置的狀態(tài)為目的地,則應(yīng)先繪制目的地(調(diào)用predestination()函數(shù)))。②如果下下一步位置的狀態(tài)為目的地,則把箱子從空地移動到目的地(調(diào)用moveBoxSpacetoDes()函數(shù)),然后把光標移動到下一步位置(如果當前位置的狀態(tài)為目的地,則應(yīng)先繪制目的地(調(diào)用printDestination()函數(shù)))。③其它情況則直接返回,不作任何處理。(4)若下一步所在位置的狀態(tài)為箱子在目的地(“i”),則:①如果下下一步位置的狀態(tài)為“0”,則把箱子從目的地移動到空地(調(diào)用moveBoxDestoSpace()函數(shù)),然后把光標移動到下一步位置(如果當前位置的狀態(tài)為目的地,則應(yīng)先畫目的地(調(diào)用printDestination()函數(shù)))。②如果下下一步位置的狀態(tài)為目的地,則把箱子從目的地移動到目的地(調(diào)用moveBoxDestoDes()函數(shù)),然后把光標移動到下一步位置(如果當前位置的狀態(tài)為目的地,則應(yīng)先畫目的地(調(diào)用printDestination()函數(shù)))。③其它情況則直接返回,不作任何處理。13.reset()函數(shù)原型:voidreset(inti)該函數(shù)實現(xiàn)的功能是重置當前關(guān)。該函數(shù)首先判斷當前關(guān)是第幾關(guān),然后調(diào)用init()函數(shù)和初始化當前關(guān)的函數(shù)進行重置。11.主函數(shù)主函數(shù)首先設(shè)置寄存器AX的高位和低位,顯示器軟中斷,進行顯示狀態(tài)的設(shè)置,初始化屏幕,初始化第一關(guān),并顯示操作提示信息和版權(quán)信息。然后根據(jù)按下的鍵(bioskey(0)函數(shù)返回按下的鍵值)進行處理,處理過程由move()函數(shù)進行(如果按下Esc鍵,則退出程序)。對于每一關(guān),如果所有的表示目的地的狀態(tài)都由“m”變成了“i”,則表示通過該關(guān),可以進入下一關(guān)。2.軟件測試2.1.什么是軟件測試?軟件測試(英語:SoftwareTesting)主要目的是為了對軟件的正確性、完整性、安全性和質(zhì)量等方面進行檢驗性測試的過程。軟件測試是將軟件的運行效果和用戶需求的預(yù)期效果進行比較的過程。軟件測試的定義是:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,對軟件質(zhì)量的評估,并對其是否能滿足設(shè)計要求進行的過程。2.2.為什么要進行軟件測試?測試的目的為了讓開發(fā)者在產(chǎn)品項目交付給用戶使用之前的測試環(huán)節(jié)中,通過實踐運行測試,找到功能實現(xiàn)的不足之處或者是bug,可以及時的修改項目代碼,調(diào)節(jié)相應(yīng)的功能結(jié)構(gòu),以達到用戶需求的目的。適量的軟件測試可以在有限的條件下對軟件的正確性、完整性、安全性和質(zhì)量等方面有一個大致的評估,降低用戶的使用風(fēng)險,且可以節(jié)約時間成本和金錢,減少后期不必要的額外維護支出。2.3.軟件測試的基礎(chǔ)流程:(1)制定測試計劃。測試計劃應(yīng)當充分考慮當前的人力、物力、時間等條件因素,對研發(fā)的項目產(chǎn)品進行必要的測試。測試計劃應(yīng)該包含的項目有:測試的內(nèi)容、進度安排、測試所需的環(huán)境等。(2)編制測試大綱。編寫大致的測試方向和初步計劃。(3)由測試大綱設(shè)計、生成測試用例,得到相對應(yīng)的測試文檔結(jié)構(gòu)。(4)開始測試。依據(jù)測試大綱的基本內(nèi)容和具體的測試用例,針對對被測軟件進行完整的項目測試。(5)得到最終的測試結(jié)果詳細報告。2.4軟件運行測試經(jīng)測試發(fā)現(xiàn),游戲可在當前系統(tǒng)正常運行,且相關(guān)功能實現(xiàn),該功能測試結(jié)果正常。運行結(jié)果如下圖5-4-1運行測試圖5-4-1運行測試經(jīng)測試發(fā)現(xiàn),游戲可在當前系統(tǒng)正常運行,且上一關(guān)、下一關(guān)功能實現(xiàn),可以從第一關(guān)進入到第二關(guān),該功能測試結(jié)果正常。系統(tǒng)功能測試如圖5-4-2下一關(guān)測試圖5-4-2下一關(guān)測試經(jīng)測試發(fā)現(xiàn),游戲可在當前系統(tǒng)正常運行,且關(guān)卡選擇功能單擊后能夠正常跳出窗口,并且有相關(guān)的信息提示,輸入1到50范圍內(nèi)的關(guān)卡數(shù)時可以直接完成跳轉(zhuǎn),并且可以在標題顯示出來。當輸入的關(guān)卡數(shù)不在這個范圍內(nèi)的時候,就會彈出警示窗口,提醒用戶輸入的關(guān)卡并不存在!該功能測試結(jié)果正常。系統(tǒng)功能測試如圖5-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年食品與飲料行業(yè)休閑食品市場細分領(lǐng)域研究報告
- 智慧港口自動化裝卸設(shè)備在港口智能化改造中的應(yīng)用報告
- 2025年元宇宙社交平臺社交內(nèi)容質(zhì)量評估與用戶體驗研究
- 2025年醫(yī)院信息化建設(shè):電子病歷系統(tǒng)智能藥物市場趨勢優(yōu)化報告
- 2025年醫(yī)藥行業(yè)研發(fā)投入與成果轉(zhuǎn)化研究報告
- 江蘇省揚州市邗江區(qū)2025屆英語八年級第二學(xué)期期末調(diào)研試題含答案
- 咨詢工程師2025教材課件
- 2025年醫(yī)藥企業(yè)CRO模式下的臨床試驗監(jiān)測與數(shù)據(jù)質(zhì)量控制報告
- 周末假期安全課件
- 汕頭市重點中學(xué)2025屆英語七下期中學(xué)業(yè)水平測試模擬試題含答案
- 2025年云南省中考語文試卷(含答案)
- 兒童課件小學(xué)生講繪本成語故事《69狐假虎威》課件
- 中醫(yī)藥與老年病科課件
- 2025春季學(xué)期國開電大本科《人文英語4》一平臺機考真題及答案(第三套)
- 國家開放大學(xué)《人文英語4 》期末機考題庫
- 道教考試試題及答案
- 2025年全國I卷作文講評
- 肺結(jié)核競賽試題及答案
- 車位租賃備案合同
- 2025年四川省成都市外國語學(xué)校七年級英語第二學(xué)期期末教學(xué)質(zhì)量檢測試題含答案
- 婚姻存續(xù)期協(xié)議書
評論
0/150
提交評論