下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、編號(hào):23河北工業(yè)大學(xué)計(jì)算機(jī)軟件技術(shù)基礎(chǔ)(課程設(shè)計(jì)任務(wù)書(shū)VQ、題目:文字角色扮演游戲的冒險(xiǎn)地圖設(shè)計(jì)、目的與要求1 .目的通過(guò)編寫(xiě)該程序,培養(yǎng)學(xué)生綜合利用C+語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力,加強(qiáng)函數(shù)的運(yùn)用及學(xué)生對(duì)軟件工程方法的初步認(rèn)識(shí),提高軟件系統(tǒng)分析能力和程序文檔建立、歸納總結(jié)的能力,培養(yǎng)學(xué)生利用系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)及典型算法進(jìn)行設(shè)計(jì),并對(duì)Windows平臺(tái)下的控制臺(tái)進(jìn)行深入的了解。2 .基本要求(1) 要求用C+fPif編程,在VisualC+環(huán)境下調(diào)試完成;(2) 要求劃分功能模塊,各個(gè)功能分別使用函數(shù)來(lái)完成;(3) 源代碼程序要求必要的注釋。三、設(shè)計(jì)方法和基本原理1.課題功能描述大部分的游戲設(shè)計(jì)中
2、都會(huì)有地圖的概念,本程序要求設(shè)計(jì)一個(gè)簡(jiǎn)單的地圖,并且可以通過(guò)輸入命令來(lái)選擇前進(jìn)的方向。程序執(zhí)行效果如下:整個(gè)地圖由若干個(gè)房間構(gòu)成,每個(gè)房間都可以通過(guò)出口鏈接到其他房間,所以要輸出該房間能夠編號(hào):23繼續(xù)前進(jìn)的方向,如上圖中有些房間有1個(gè)出口,而有些房間有3個(gè)出口。用戶(hù)通過(guò)輸入“east”、“west”、“south”或“north”來(lái)前往其他房間,若該房間的對(duì)應(yīng)方向沒(méi)有連接到其他房間或用戶(hù)輸入的命令不屬于上述命令則繼續(xù)詢(xún)問(wèn)用戶(hù)想要前進(jìn)的方向。當(dāng)用戶(hù)到達(dá)作為終點(diǎn)的房間后游戲結(jié)束。2.地圖的設(shè)計(jì)例如上圖就是兩種類(lèi)型的地圖設(shè)計(jì),左邊的地圖是遵從物理世界規(guī)律的地圖設(shè)計(jì),任何兩個(gè)地圖之間的通路都是雙向的
3、;而右邊的地圖則突破了物理世界的限制,例如從0號(hào)房間向南走到1號(hào)房間,從1號(hào)房間繼續(xù)向南則走回到了0號(hào)房間產(chǎn)生了一條永無(wú)止境的道路,在不受物理?xiàng)l件的限制下,每條通路都變成了單向,從而構(gòu)建各種或詭異或神秘的地圖。圖中雙框的房間是終點(diǎn)。本題目要求設(shè)計(jì)編號(hào):23能夠支持右側(cè)地圖的程序,即通路都是單向的。3 .房間的設(shè)計(jì)通過(guò)對(duì)地圖的描述,我們能夠推斷出一個(gè)房間所應(yīng)該具有的屬性。首先房間應(yīng)該有一個(gè)內(nèi)部編號(hào)以便和其他房間區(qū)別開(kāi),另外房間還應(yīng)該有個(gè)簡(jiǎn)要的名字,在文字冒險(xiǎn)游戲中我們無(wú)法用圖形來(lái)表示房間的情況,所以要有用來(lái)描述房間的信息。此外,每個(gè)房間應(yīng)該有四個(gè)出口分別存放該房間通往那些房間,同時(shí)這些出口也可以
4、是封死的,即顯示出口是不顯示該方向,例如某房間只有north”和“south”方向通向其他房間,則只顯示你仔細(xì)的向周?chē)纯?,這里明顯的出口有:northsouthI你想定哪兒走?最后,房間還要有用來(lái)標(biāo)識(shí)是否終點(diǎn)的屬性。綜上所述房間是一個(gè)屬性的集合體,應(yīng)該設(shè)計(jì)結(jié)構(gòu)體來(lái)存放一個(gè)房間的所有屬性,用結(jié)構(gòu)體數(shù)組來(lái)存放整個(gè)地圖。4 .指令系統(tǒng)的設(shè)計(jì)要能夠使程序能夠區(qū)分各種不同的命令,只需要讀取用戶(hù)輸入的字符串,然后和支持的命令進(jìn)行比較即可,例如當(dāng)處于前面所說(shuō)的那個(gè)只有“north”和“south”兩個(gè)出口的房間時(shí),則只支持north和south兩個(gè)命令,若處于擁有west”出口的房間時(shí)則只有west命令生
5、效,將用戶(hù)帶入west方向的房間。若用戶(hù)輸入的命令不屬于生效的命令,則要求用戶(hù)重新輸入命令。此外當(dāng)?shù)竭_(dá)被設(shè)置為終點(diǎn)的房間時(shí),程序應(yīng)該結(jié)束。四、主要技術(shù)問(wèn)題的描述本題目基本要求中沒(méi)有對(duì)顏色控制的要求,下面的顏色控制相關(guān)內(nèi)容屬于創(chuàng)新內(nèi)容中需要的一些基礎(chǔ)知識(shí)。1 .控制臺(tái)的基本概念控制臺(tái)(Console)是一個(gè)基于字符界面的交互平臺(tái)。Windows里面自帶的控制臺(tái)同樣也是一個(gè)基于字符界面的交互平臺(tái)。我們本學(xué)期實(shí)驗(yàn)所編寫(xiě)的程序都是基于控制臺(tái)的C+程序。在默認(rèn)設(shè)置下,Windows的控制臺(tái)能夠顯示25行80列的字符,我們可以把控制臺(tái)看作是一個(gè)有25行80列的一個(gè)矩陣,每個(gè)矩陣的元素能夠顯示一個(gè)標(biāo)準(zhǔn)的AS
6、CII字符(漢字需要兩個(gè)元素來(lái)顯示)。2 .控制臺(tái)的顏色控制控制臺(tái)中的每個(gè)元素可以使用獨(dú)立的前景色和背景色。在Windows的控制臺(tái)中可以使用的顏色有16種,見(jiàn)下圖:上圖中的顏色編碼自左至右依次是0至15,0為黑色,15為白色。前景色和背景色都只有這16種顏色。3 .控制臺(tái)顏色的控制時(shí)機(jī)因?yàn)榭刂婆_(tái)不能更改已經(jīng)輸出字符的顏色設(shè)置,所以要想更改輸出的字符的顏色設(shè)置,必須在輸出之前更改控制臺(tái)的顏色配置。要改變控制臺(tái)的顏色設(shè)置需要調(diào)用兩個(gè)Windows操作系統(tǒng)的API函數(shù)。GetStdHandle函數(shù)用來(lái)獲得當(dāng)前控制臺(tái)的句柄,用SetConsoleTextAttribute函數(shù)來(lái)改變選中控制臺(tái)的顏色控
7、制。這兩個(gè)函數(shù)的聲明存在于windows.h文件中??梢詫⑦@兩個(gè)調(diào)用封裝到SetColor函數(shù)中:編號(hào):23#includevoidSetColor(unsignedshortForeColor=,unsignedshortBackGrourLjdColor=U)HANDLEhCon=GetStdHandle(STD_OUTPUT_HAWDLE);SetConsoleTextAttributefhCQn,ForeColDr+BackGxoundColor*OK10);例如:如果需要改變當(dāng)前的控制臺(tái)輸出顏色為白底紅字,則可以書(shū)寫(xiě)如下代碼:iincludevoidmain。(/12(red)ist
8、hecolorofforeground./15(white)isthecolorofbackground.SetColor(12,15);coutHelloWcirldendl:這段代碼就可以輸出白底紅字的HelloWorld”字符串了。4.cout的緩沖區(qū)刷新cout對(duì)象默認(rèn)情況下并不會(huì)將用戶(hù)的輸出送到控制臺(tái),而是暫時(shí)存在輸出緩沖區(qū)里面,而控制臺(tái)的顏色控制只在向控制臺(tái)輸出的時(shí)候才生效。所以只有強(qiáng)制刷新輸出緩沖區(qū)的時(shí)候顏色設(shè)置才會(huì)生效。例如我們要輸出兩個(gè)字符A,第一個(gè)是白底紅字,第二個(gè)是紅底白字,那么下面的代碼:#includevoidmainC)/12(red)isthecoloroffor
9、eground,/I5(white)isthecolorofbackgroundsSetColor(12,15):coutrA?;/15(white)isthecolorofforeground./12(red)isthecolorofbackground.SortColor(15,12);coutA:輸出的將是兩個(gè)紅底白字的字符“A”。因?yàn)殡m然輸出第一個(gè)“A”之前把控制臺(tái)設(shè)置為白底紅字,但是此時(shí)并沒(méi)有把第一個(gè)“A”輸出到控制臺(tái),而只是存放于輸出緩沖區(qū)里面。然后控制臺(tái)的顏色被設(shè)置為紅底白字,然后輸出“A”。最終程序結(jié)束的時(shí)候自動(dòng)強(qiáng)制刷新控制臺(tái),把輸出緩沖區(qū)里面的兩個(gè)字符“A”都發(fā)送給控制臺(tái),因
10、為此時(shí)的控制臺(tái)顏色是紅底白字,所以?xún)蓚€(gè)“A”都被顯示為紅底白字。為了強(qiáng)制刷新控制臺(tái),可以使用endl和flush兩個(gè)操作符,endl表示先換行然后強(qiáng)制刷新,flush表示直接強(qiáng)制刷新而不換行,所以上面的代碼只要在每個(gè)cout語(yǔ)句的最后加上“flush”就可以把輸出兩個(gè)不同顏色配置的字符“A”了(參看下面的代碼)。編號(hào):237includevoidmainO(/12(red)isthecolorofforeground*/15(white)isthecolorofbackground.SetColor(12J15);ccut丁度f(wàn)lush;/15(white)isthecolorofforegr
11、ouiui./12(red)isthecolorofbackground,SetColor(15j12);coutflush;5.隨機(jī)函數(shù)隨機(jī)函數(shù)名為rand(),使用時(shí)必須包含頭文件stdlib.h。五、創(chuàng)新要求在基本要求達(dá)到后,進(jìn)行創(chuàng)新設(shè)計(jì):1 .顏色控制,不同內(nèi)容的輸出顏色不一樣。2 .設(shè)計(jì)寶箱系統(tǒng),寶箱分為兩類(lèi):真寶箱和假寶箱,每個(gè)房間可以有真寶箱、假寶箱或沒(méi)有寶箱。只有在地圖中打開(kāi)過(guò)真寶箱之后,到達(dá)終點(diǎn)房間游戲才能結(jié)束。六、課程設(shè)計(jì)的考核方式及評(píng)分方法1 .考核方式(1) 學(xué)生要提交書(shū)面課程設(shè)計(jì)報(bào)告(A4紙打印);并將設(shè)計(jì)報(bào)告的電子文檔、.cpp源文件和.h頭文件放到一個(gè)文件夾里上傳
12、到所對(duì)應(yīng)班級(jí)的學(xué)生名稱(chēng)相應(yīng)文件夾中。(2) 課程設(shè)計(jì)結(jié)束時(shí),在機(jī)房當(dāng)場(chǎng)驗(yàn)收。教師提供測(cè)試數(shù)據(jù),由學(xué)生運(yùn)行所設(shè)計(jì)的系統(tǒng),檢查運(yùn)行結(jié)果是否正確,并回答教師提出的有關(guān)問(wèn)題。2 .評(píng)分方法根據(jù)出勤率、課程設(shè)計(jì)期間紀(jì)律、課程設(shè)計(jì)運(yùn)行結(jié)果、課程設(shè)計(jì)報(bào)告及答辯情況綜合評(píng)分。七、書(shū)寫(xiě)設(shè)計(jì)報(bào)告的要求(詳細(xì)內(nèi)容見(jiàn)“設(shè)計(jì)報(bào)告模板”)八、課程設(shè)計(jì)的有關(guān)文檔“設(shè)計(jì)報(bào)告模板”和“課程設(shè)計(jì)要求”請(qǐng)?jiān)谙螺d任務(wù)書(shū)處下載。#include#includevoidSetcolor(unsignedshortForeColor=7,unsignedshortBackGroundColor=0)HANDLEhCon=GetStdHandle(STD
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圍巖收斂施工方案(3篇)
- 做木門(mén)活動(dòng)策劃方案(3篇)
- 路燈接線施工方案(3篇)
- 粉塵車(chē)間施工方案(3篇)
- 大學(xué)汽車(chē)活動(dòng)方案策劃(3篇)
- 春節(jié)京劇活動(dòng)策劃方案(3篇)
- 市場(chǎng)營(yíng)銷(xiāo)操作手冊(cè)(標(biāo)準(zhǔn)版)
- 2025年航空貨運(yùn)代理操作指南
- 方案書(shū)制作指南
- 2025年中職工業(yè)機(jī)器人(故障排查綜合)試題及答案
- 2025年河南農(nóng)業(yè)大學(xué)馬克思主義基本原理概論期末考試真題匯編
- 2025年國(guó)企副總經(jīng)理年終述職報(bào)告
- 昆山鈔票紙業(yè)有限公司2026年度招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 施工消防安全評(píng)估措施
- 高考語(yǔ)文復(fù)習(xí)古代詩(shī)歌形象鑒賞課件
- 2025中國(guó)醫(yī)學(xué)科學(xué)院北京協(xié)和醫(yī)學(xué)院勞務(wù)派遣制工作人員招聘3人筆試備考重點(diǎn)試題及答案解析
- 區(qū)域創(chuàng)新一體化機(jī)制-洞察及研究
- 兒科健康評(píng)估與護(hù)理
- 四診合參在護(hù)理評(píng)估中的綜合應(yīng)用
- 2026年青海省交通控股集團(tuán)有限公司招聘(45人)筆試考試參考題庫(kù)及答案解析
- GB 46768-2025有限空間作業(yè)安全技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論