版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)字迷宮第一部分 案例描述案例目的本案例為實(shí)現(xiàn)動(dòng)態(tài)的刷新Dos界面,使用用戶控制頭像“消滅”窗口中出現(xiàn)的數(shù)字(無(wú)固定順序)的游戲,來使學(xué)員加深對(duì)一維數(shù)組、二維數(shù)組、循環(huán)語(yǔ)句、選擇程序設(shè)計(jì)以及相關(guān)系統(tǒng)函數(shù)的使用。案例難度案例覆蓋技能點(diǎn)a) 選擇程序設(shè)計(jì)b) 循環(huán)程序設(shè)計(jì)c) 用戶、屏幕窗口的輸入輸出d) 相關(guān)系統(tǒng)函數(shù)e) 一維、二維數(shù)組推薦案例完成時(shí)間4天適用課程和對(duì)象C語(yǔ)言案例(T階段)第二部分需求和開發(fā)環(huán)境使用技術(shù)和開發(fā)環(huán)境Microsoft Visual C+ 6.0案例需求本案例要求制作一個(gè)數(shù)字迷宮的游戲,該游戲的玩法描述為:1、 系統(tǒng)主要地圖為固定模式2、 地圖內(nèi)部包含墻體、走廊、阿拉
2、伯?dāng)?shù)字(17)、玩家頭像(1個(gè))四種不同內(nèi)容3、 用戶通過上、下、左、右按鍵來控制玩家頭像在地圖范圍內(nèi)的走動(dòng)4、 在玩家走動(dòng)過程中,碰撞墻壁時(shí),該步的走動(dòng)無(wú)效,玩家頭像原地不變5、 玩家允許在設(shè)計(jì)走廊內(nèi)部進(jìn)行走動(dòng)6、 玩家頭像遇到阿拉布數(shù)字時(shí),數(shù)字消失,并且對(duì)玩家走動(dòng)無(wú)影響7、 玩家頭像遭遇所有數(shù)字之后(地圖上無(wú)阿拉伯?dāng)?shù)字),該局游戲結(jié)束,并自動(dòng)開始下一局游戲8、 在某一局游戲中,游戲走廊、墻體與其他游戲相同,但數(shù)字位置會(huì)隨機(jī)產(chǎn)生9、 阿拉伯?dāng)?shù)字產(chǎn)生在走廊內(nèi)而非墻體上10、 在玩家游戲過程中按下Esc鍵,游戲無(wú)條件退出。11、 在玩家未使用Esc鍵時(shí),程序正常運(yùn)行程序運(yùn)行截圖1、 程序初始狀態(tài)
3、2、 玩家運(yùn)行中3、 退出數(shù)字迷宮工作原理1. 本程序分為初始玩家運(yùn)行重啟一局結(jié)束四個(gè)階段a) 初始化階段i. 程序當(dāng)中存在一18*24大小的固定地圖數(shù)組ii. 該數(shù)組以0/-1分別標(biāo)識(shí)程序地圖當(dāng)中的“墻體”以及“走廊”iii. 通過隨機(jī)函數(shù)在走廊中產(chǎn)生17阿拉伯?dāng)?shù)字,并且將該系列數(shù)字寫入二維數(shù)組的相應(yīng)位置當(dāng)中,對(duì)-1(走廊)進(jìn)行覆蓋iv. 產(chǎn)生玩家位置:數(shù)組的(1,1)處v. 使用循環(huán)語(yǔ)句遍歷打印出數(shù)組元素,元素包括1. 墻體(0):2. 走廊(-1): 空格*23. 數(shù)字(17):數(shù)字本身+空格*14. 玩家頭像:1 即:J+空格*1b) 玩家運(yùn)行階段i. 玩家使用上下左右鍵進(jìn)行頭像控制i
4、i. 與墻體碰撞時(shí),走動(dòng)無(wú)效,原地不動(dòng)(通過玩家頭像位置標(biāo)示與數(shù)組內(nèi)部數(shù)據(jù)是否為墻體(0)來判斷)iii. 為一般走廊時(shí),玩家原頭像位置清空為雙空格(通過玩家頭像位置標(biāo)示與數(shù)組內(nèi)部數(shù)據(jù)是否為走廊(-1)來判斷),玩家當(dāng)前位置輸出玩家頭像,并更新玩家頭像位置全局變量。iv. 為數(shù)字時(shí)(通過玩家頭像位置標(biāo)示與數(shù)組內(nèi)部數(shù)據(jù)是否為數(shù)字(0)來判斷),該數(shù)字消失,玩家原位置頭像消失,新位置出現(xiàn)玩家頭像,并將數(shù)組內(nèi)消失數(shù)字位置置為走廊(-1), 并更新玩家頭像位置全局變量。v. 每走動(dòng)一次系統(tǒng)遍歷數(shù)組元素,判斷數(shù)字(0)多少,當(dāng)數(shù)字存在數(shù)量0時(shí),該局繼續(xù),=0時(shí),進(jìn)入重啟一局步驟。c) 重啟一局i. 重復(fù)
5、初始化階段(注意要移動(dòng)頭像到(1,1)位置)d) 結(jié)束程序i. 用戶點(diǎn)擊Esc或強(qiáng)行關(guān)閉應(yīng)用程序時(shí),程序無(wú)條件退出。第三部分功能點(diǎn)介紹頭文件引用列表頭文件名功能簡(jiǎn)述#include 使用一般輸入輸出函數(shù)#include 使用getch函數(shù)達(dá)到輸入數(shù)據(jù)不敲回車進(jìn)行下步計(jì)算功能#include 使用time(int)函數(shù)#include windows.h使用光標(biāo)移動(dòng)函數(shù)對(duì)光標(biāo)進(jìn)行編碼定位系統(tǒng)函數(shù)使用列表函數(shù)名稱功能簡(jiǎn)述getch();printfsrand();設(shè)置系統(tǒng)rand函數(shù)隨機(jī)引資time(NULL);以時(shí)間作為隨機(jī)因子產(chǎn)生不重復(fù)的隨機(jī)數(shù),提高程序效率rand()得到隨機(jī)數(shù)GetStdH
6、andle得到該程序HANDLE的函數(shù)GetLastError();得到系統(tǒng)最近錯(cuò)誤編號(hào)函數(shù)SetConsoleCursorPosition(Handle, x,y);代碼設(shè)置系統(tǒng)光標(biāo)位置函數(shù)公共變量列表變量名稱初始值功能簡(jiǎn)述int code17240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,-1,0,0,0,0,0,-1,-1,-1,0,0,0,-1,0,0,0,-1,0,0,0
7、,0,0,0,0,-1,0,0,0,0,0,-1,0,0,0,0,0,-1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1,0,-1,0,-1,-1,-1,-1,-1,-1,-1,0,0,0,-1,0,0,-1,0,-1,0,0,0,0,-1,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,0,0,0,0,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
8、-1,-1,-1,-1,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,0,-1,-1,-1,-1,0,-1,-1,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,-1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,-1,-1,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,
9、-1,-1,-1,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,;地圖數(shù)組,0表示墻體,-1表示走廊int postionX, postionYpostionX=1; postionY=1;玩家的初始位置函數(shù)功能列表函數(shù)名稱功能簡(jiǎn)述void main()程序接口函數(shù),負(fù)責(zé)程序整體運(yùn)行void SetCode(int n
10、um);該函數(shù)通過傳入的num值來判斷并輸出為:,空格*2,或者數(shù)字本身void SetWindow();生成地圖主體函數(shù):遍歷公共數(shù)組,在位置部位(1,1)時(shí),調(diào)用SetCode函數(shù),并在(1,1)位置輸出玩家頭像void SetNum();程序初始化時(shí),用于使用隨機(jī)函數(shù)在數(shù)組“走廊”位置生成17的阿拉伯?dāng)?shù)字void Begin();初始化主體函數(shù),設(shè)置玩家頭像初始位置,調(diào)用SetNum函數(shù)void LeftKey();void UpKey();void DownKey()void RightKey();玩家按下,上下左右按鍵時(shí),分別調(diào)用的函數(shù),該函數(shù)可判斷玩家是否為被墻體阻擋、正常行走、“吃”掉數(shù)字三種狀態(tài),并改變玩家頭像的位置。int CheckLeftNum();該函數(shù)判斷數(shù)組內(nèi)剩余的數(shù)字(0)數(shù)量,返回該數(shù)量void GoToXY(int x, int y);該函數(shù)用于在x,y位置輸出用戶頭像void GoToXYSpace(int x, int y);該函數(shù)用于在x,y處輸出空
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆河北省唐山市遵化市物理高二上期中調(diào)研模擬試題含解析
- 2025屆上海市四中高三上物理期中綜合測(cè)試模擬試題含解析
- 2025屆湖北省宜昌市二中物理高一第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 山西省太原市2025屆物理高二第一學(xué)期期末統(tǒng)考試題含解析
- 2025屆山西平遙縣和誠(chéng)物理高二第一學(xué)期期末考試試題含解析
- 陜西省渭南市臨渭區(qū)尚德中學(xué)2025屆高二物理第一學(xué)期期中監(jiān)測(cè)試題含解析
- 2025屆安徽師大附中物理高二第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 激光雷達(dá)系統(tǒng)基礎(chǔ)知識(shí)單選題100道及答案解析
- 新疆塔城地區(qū)(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版期中考試((上下)學(xué)期)試卷及答案
- 小學(xué)主題班會(huì)課件小學(xué)生食品安
- 業(yè)績(jī)績(jī)效考核指標(biāo)-團(tuán)委書記
- GB/T 5781-2000六角頭螺栓全螺紋C級(jí)
- GB/T 24420-2009供應(yīng)鏈風(fēng)險(xiǎn)管理指南
- 小學(xué)語(yǔ)文二年級(jí)晨誦(課堂PPT)
- 新高考高中生涯規(guī)劃和選課選科課件
- 勞資專管員任命文件(樣本)
- 林權(quán)糾紛調(diào)處專題講座課件
- 住院患者靜脈血栓栓塞癥預(yù)防護(hù)理與管理專家共識(shí)解讀
- 作文的謀篇布局課件
- 五年級(jí)數(shù)學(xué)上冊(cè)期中質(zhì)量分析課件
- 建筑施工單位三級(jí)教育培訓(xùn)表格
評(píng)論
0/150
提交評(píng)論