




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、編號:23河北工業大學計算機軟件技術基礎(課程設計任務書VQ、題目:文字角色扮演游戲的冒險地圖設計、目的與要求1 .目的通過編寫該程序,培養學生綜合利用C+語言進行程序設計的能力,加強函數的運用及學生對軟件工程方法的初步認識,提高軟件系統分析能力和程序文檔建立、歸納總結的能力,培養學生利用系統提供的標準函數及典型算法進行設計,并對Windows平臺下的控制臺進行深入的了解。2 .基本要求(1) 要求用C+fPif編程,在VisualC+環境下調試完成;(2) 要求劃分功能模塊,各個功能分別使用函數來完成;(3) 源代碼程序要求必要的注釋。三、設計方法和基本原理1.課題功能描述大部分的游戲設計中
2、都會有地圖的概念,本程序要求設計一個簡單的地圖,并且可以通過輸入命令來選擇前進的方向。程序執行效果如下:整個地圖由若干個房間構成,每個房間都可以通過出口鏈接到其他房間,所以要輸出該房間能夠編號:23繼續前進的方向,如上圖中有些房間有1個出口,而有些房間有3個出口。用戶通過輸入“east”、“west”、“south”或“north”來前往其他房間,若該房間的對應方向沒有連接到其他房間或用戶輸入的命令不屬于上述命令則繼續詢問用戶想要前進的方向。當用戶到達作為終點的房間后游戲結束。2.地圖的設計例如上圖就是兩種類型的地圖設計,左邊的地圖是遵從物理世界規律的地圖設計,任何兩個地圖之間的通路都是雙向的
3、;而右邊的地圖則突破了物理世界的限制,例如從0號房間向南走到1號房間,從1號房間繼續向南則走回到了0號房間產生了一條永無止境的道路,在不受物理條件的限制下,每條通路都變成了單向,從而構建各種或詭異或神秘的地圖。圖中雙框的房間是終點。本題目要求設計編號:23能夠支持右側地圖的程序,即通路都是單向的。3 .房間的設計通過對地圖的描述,我們能夠推斷出一個房間所應該具有的屬性。首先房間應該有一個內部編號以便和其他房間區別開,另外房間還應該有個簡要的名字,在文字冒險游戲中我們無法用圖形來表示房間的情況,所以要有用來描述房間的信息。此外,每個房間應該有四個出口分別存放該房間通往那些房間,同時這些出口也可以
4、是封死的,即顯示出口是不顯示該方向,例如某房間只有north”和“south”方向通向其他房間,則只顯示你仔細的向周圍看看,這里明顯的出口有:northsouthI你想定哪兒走?最后,房間還要有用來標識是否終點的屬性。綜上所述房間是一個屬性的集合體,應該設計結構體來存放一個房間的所有屬性,用結構體數組來存放整個地圖。4 .指令系統的設計要能夠使程序能夠區分各種不同的命令,只需要讀取用戶輸入的字符串,然后和支持的命令進行比較即可,例如當處于前面所說的那個只有“north”和“south”兩個出口的房間時,則只支持north和south兩個命令,若處于擁有west”出口的房間時則只有west命令生
5、效,將用戶帶入west方向的房間。若用戶輸入的命令不屬于生效的命令,則要求用戶重新輸入命令。此外當到達被設置為終點的房間時,程序應該結束。四、主要技術問題的描述本題目基本要求中沒有對顏色控制的要求,下面的顏色控制相關內容屬于創新內容中需要的一些基礎知識。1 .控制臺的基本概念控制臺(Console)是一個基于字符界面的交互平臺。Windows里面自帶的控制臺同樣也是一個基于字符界面的交互平臺。我們本學期實驗所編寫的程序都是基于控制臺的C+程序。在默認設置下,Windows的控制臺能夠顯示25行80列的字符,我們可以把控制臺看作是一個有25行80列的一個矩陣,每個矩陣的元素能夠顯示一個標準的AS
6、CII字符(漢字需要兩個元素來顯示)。2 .控制臺的顏色控制控制臺中的每個元素可以使用獨立的前景色和背景色。在Windows的控制臺中可以使用的顏色有16種,見下圖:上圖中的顏色編碼自左至右依次是0至15,0為黑色,15為白色。前景色和背景色都只有這16種顏色。3 .控制臺顏色的控制時機因為控制臺不能更改已經輸出字符的顏色設置,所以要想更改輸出的字符的顏色設置,必須在輸出之前更改控制臺的顏色配置。要改變控制臺的顏色設置需要調用兩個Windows操作系統的API函數。GetStdHandle函數用來獲得當前控制臺的句柄,用SetConsoleTextAttribute函數來改變選中控制臺的顏色控
7、制。這兩個函數的聲明存在于windows.h文件中。可以將這兩個調用封裝到SetColor函數中:編號:23#includevoidSetColor(unsignedshortForeColor=,unsignedshortBackGrourLjdColor=U)HANDLEhCon=GetStdHandle(STD_OUTPUT_HAWDLE);SetConsoleTextAttributefhCQn,ForeColDr+BackGxoundColor*OK10);例如:如果需要改變當前的控制臺輸出顏色為白底紅字,則可以書寫如下代碼:iincludevoidmain。(/12(red)ist
8、hecolorofforeground./15(white)isthecolorofbackground.SetColor(12,15);coutHelloWcirldendl:這段代碼就可以輸出白底紅字的HelloWorld”字符串了。4.cout的緩沖區刷新cout對象默認情況下并不會將用戶的輸出送到控制臺,而是暫時存在輸出緩沖區里面,而控制臺的顏色控制只在向控制臺輸出的時候才生效。所以只有強制刷新輸出緩沖區的時候顏色設置才會生效。例如我們要輸出兩個字符A,第一個是白底紅字,第二個是紅底白字,那么下面的代碼:#includevoidmainC)/12(red)isthecoloroffor
9、eground,/I5(white)isthecolorofbackgroundsSetColor(12,15):coutrA?;/15(white)isthecolorofforeground./12(red)isthecolorofbackground.SortColor(15,12);coutA:輸出的將是兩個紅底白字的字符“A”。因為雖然輸出第一個“A”之前把控制臺設置為白底紅字,但是此時并沒有把第一個“A”輸出到控制臺,而只是存放于輸出緩沖區里面。然后控制臺的顏色被設置為紅底白字,然后輸出“A”。最終程序結束的時候自動強制刷新控制臺,把輸出緩沖區里面的兩個字符“A”都發送給控制臺,因
10、為此時的控制臺顏色是紅底白字,所以兩個“A”都被顯示為紅底白字。為了強制刷新控制臺,可以使用endl和flush兩個操作符,endl表示先換行然后強制刷新,flush表示直接強制刷新而不換行,所以上面的代碼只要在每個cout語句的最后加上“flush”就可以把輸出兩個不同顏色配置的字符“A”了(參看下面的代碼)。編號:237includevoidmainO(/12(red)isthecolorofforeground*/15(white)isthecolorofbackground.SetColor(12J15);ccut丁度flush;/15(white)isthecolorofforegr
11、ouiui./12(red)isthecolorofbackground,SetColor(15j12);coutflush;5.隨機函數隨機函數名為rand(),使用時必須包含頭文件stdlib.h。五、創新要求在基本要求達到后,進行創新設計:1 .顏色控制,不同內容的輸出顏色不一樣。2 .設計寶箱系統,寶箱分為兩類:真寶箱和假寶箱,每個房間可以有真寶箱、假寶箱或沒有寶箱。只有在地圖中打開過真寶箱之后,到達終點房間游戲才能結束。六、課程設計的考核方式及評分方法1 .考核方式(1) 學生要提交書面課程設計報告(A4紙打印);并將設計報告的電子文檔、.cpp源文件和.h頭文件放到一個文件夾里上傳
12、到所對應班級的學生名稱相應文件夾中。(2) 課程設計結束時,在機房當場驗收。教師提供測試數據,由學生運行所設計的系統,檢查運行結果是否正確,并回答教師提出的有關問題。2 .評分方法根據出勤率、課程設計期間紀律、課程設計運行結果、課程設計報告及答辯情況綜合評分。七、書寫設計報告的要求(詳細內容見“設計報告模板”)八、課程設計的有關文檔“設計報告模板”和“課程設計要求”請在下載任務書處下載。#include#includevoidSetcolor(unsignedshortForeColor=7,unsignedshortBackGroundColor=0)HANDLEhCon=GetStdHandle(STD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶三峽職業學院《大學職業生涯規劃》2023-2024學年第一學期期末試卷
- 山東省臨沂市蘭陵縣市級名校2024-2025學年中考適應性考試化學試題含解析
- 益陽職業技術學院《人類的雙面書架高黎貢山》2023-2024學年第二學期期末試卷
- 洛陽市重點中學2025年初三年級調研測試英語試題試卷含答案
- 寧夏大學新華學院《微積分EI》2023-2024學年第一學期期末試卷
- 曲靖市沾益區大坡鄉重點達標名校2025屆初三下期中質量檢測試題生物試題含解析
- 內蒙古美術職業學院《大學體育-劍術》2023-2024學年第一學期期末試卷
- 浙江省協作體2025年高三年級下學期第一次統練英語試題含解析
- 棗強中學高一上學期第三次月考英語試題
- 教育知識與能力
- 寧夏回族自治區銀川市、石嘴山市2025屆高三二模考試語文試題(含答案)
- 2024年山東省濟南市中考數學試卷【含解析】
- 生態學中的種間關系解析試題及答案
- 汽車發動機構造與維修試題
- 2025-2030中國生物酶制劑行業市場現狀供需分析及投資評估規劃分析研究報告
- 耳部刮痧治療失眠
- 現代物流校考題目及答案
- 2025年投資專員面試試題及答案
- 訂單處理優化流程計劃
- 4.23世界讀書日以書為友書香活動書香潤童心閱讀伴成長課件
- DB3713-T 255-2022 大棚黃瓜農機農藝融合栽培技術規程
評論
0/150
提交評論