2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  C++課程設(shè)計報告</b></p><p>  (貪吃蛇游戲的實(shí)現(xiàn))</p><p>  院  系:計算機(jī)工程系</p><p>  ?! I(yè): 軟件工程</p><p><b>  學(xué)  號:</b></p><p><b>  姓 

2、 名:</b></p><p><b>  目錄</b></p><p>  一、應(yīng)用程序的最終界面</p><p><b>  1.1選題背景</b></p><p><b>  1.2關(guān)于編譯軟件</b></p><p><b>

3、;  1.3關(guān)于兼容性</b></p><p><b>  二、概要設(shè)計</b></p><p>  2.1程序流程與思路</p><p><b>  三、軟件實(shí)現(xiàn)</b></p><p>  3.1變量函數(shù)的聲明</p><p>  3.2主要功能的實(shí)現(xiàn)<

4、/p><p>  3.2.1初始化食物</p><p><b>  3.2.2游戲控制</b></p><p><b>  四、結(jié)果與討論</b></p><p>  4.1錯誤調(diào)試與分析</p><p><b>  4.2程序的缺陷</b></p&g

5、t;<p><b>  五、總結(jié)展望</b></p><p>  一、應(yīng)用程序的最終界面</p><p>  本游戲是通過鍵盤的方向鍵來控制貪吃蛇的運(yùn)動的,最終運(yùn)行所產(chǎn)生的界面效果如下</p><p><b>  1.1.選題背景</b></p><p>  貪吃蛇是家喻戶曉的益智類小

6、游戲,選擇這個題目一是為了將自己的所學(xué)知識加以運(yùn)用,二是一直以來貪吃蛇這個游戲就深深地吸引著我,它的制作方法對于以前的我而言都是很神秘的。我希望通過自己的所學(xué)知識把它剖析開來,真真正正的了解它的本質(zhì)和精髓。雖然我的編程能力不是很強(qiáng),但是我有信心,在這次學(xué)習(xí)中我將從實(shí)踐和實(shí)際的項(xiàng)目中提高自己的編程能力。因此我選定了這個題目。</p><p><b>  1.2關(guān)于編譯軟件</b></p&

7、gt;<p>  本程序采用Microsoft Visual C++6.0的中文版本進(jìn)行編譯。VisualC++6.0是Microsoft公司推出的基于Windows操作系統(tǒng)的可視化C++編程工具,盡管Microsoft公司推出了.NET平臺的集成開發(fā)環(huán)境,但由于其良好的界面和可操作性,加上支持標(biāo)準(zhǔn)C/C++規(guī)范,但仍有相當(dāng)多的編程人員使用VisualC++6.0進(jìn)行應(yīng)用系統(tǒng)的開發(fā)。</p><p>

8、;<b>  第二章 概要設(shè)計</b></p><p>  2.1軟件主要功能設(shè)計</p><p><b>  2.1.1程序思路</b></p><p>  在數(shù)據(jù)結(jié)構(gòu)上,用數(shù)組存儲蛇以及蛇的運(yùn)動區(qū)域。在數(shù)組中,每個元素有四個云感動方向,分別為RIGHT,LEFT,UP,DOWN.在沒有蛇身的區(qū)域,數(shù)組的元素值為0。在蛇

9、身的每個節(jié)點(diǎn),用一個數(shù)組元素存儲當(dāng)前蛇節(jié)點(diǎn)的運(yùn)動方向。通過改變數(shù)組中元素的值來表示蛇身的移動。在程序中運(yùn)用定時器來保證蛇的持續(xù)移動。每個一定的時間間隔,蛇移動一格。</p><p>  在設(shè)計界面時。在Visual Studio C++6.0的環(huán)境下,由于目前自己的水平有限,所以游戲界面依然是基于DOS實(shí)現(xiàn)貪食蛇運(yùn)行算法。在界面中用**中畫出一個矩形,在由大**組成的矩形中,用20x20的像素單位表示每一個蛇的節(jié)

10、點(diǎn)。當(dāng)數(shù)組節(jié)點(diǎn)的值不為0的時候,在**矩形框中表示出相應(yīng)的蛇的節(jié)點(diǎn)。并在蛇每移動一小格的時候,重繪整個窗口。在對蛇身進(jìn)行繪畫時。通過數(shù)組元素的值將蛇身在對話框的矩形中顯示出來。</p><p>  在蛇身運(yùn)動時,首先在蛇頭位置蛇身增長一個節(jié)點(diǎn),然后判斷蛇頭是否到達(dá)食物所在位置,若在食物所在位置,則蛇尾不減一,蛇身繼續(xù)移動,若蛇頭不在食物位置,則蛇尾減一,蛇身繼續(xù)移動。若蛇頭越界或者蛇頭與蛇身重疊,則游戲結(jié)束。&l

11、t;/p><p>  2.1.2程序流程圖</p><p><b>  3.1函數(shù)聲明</b></p><p>  void Fence::InitFence()//畫框框;</p><p>  void Fence::OutputF()//顯示框框;</p><p>  void SnakeNode

12、::add_head(int x,int y) //插入頭結(jié)點(diǎn);</p><p>  void SnakeNode::delete_tail()//刪除尾結(jié)點(diǎn);</p><p>  void move::moving()</p><p>  void change_point(char); //改變方向;</p><p>  void ge

13、t_food();//做種子(程序運(yùn)行時間);</p><p>  3.2.1初始化食物</p><p>  確定用點(diǎn)數(shù)組存儲貪吃蛇以后,貪吃蛇的食物如何達(dá)到隨機(jī)出現(xiàn),并且能夠按照網(wǎng)格式與蛇頭無偏差相接就是一個亟待解決的問題。</p><p>  隨機(jī)出現(xiàn)應(yīng)采用rand()函數(shù)來實(shí)現(xiàn),而食物與蛇頭無偏差相接則利用坐標(biāo)來解決。設(shè)置兩個整型變量food x,food y

14、作為食物出現(xiàn)的點(diǎn)的坐標(biāo),令food_x= rand()%18+1; food_y= rand()%18+1即可。使隨機(jī)出現(xiàn)的點(diǎn)能夠整除最小網(wǎng)格,也就是使食物與蛇頭無偏差相接。</p><p>  再由食物坐標(biāo)food x,food y與蛇頭坐標(biāo)是否相同判斷蛇是否“吃”到了食物</p><p>  void move::get_food()</p><p><b

15、>  {</b></p><p>  srand((unsigned int) time(NULL)); //做種子(程序運(yùn)行時間); </p><p>  food_x= rand()%18+1; </p><p>  food_y= rand()%18+1;</p><p>  f.game[food_x][food_y

16、]= '*'</p><p><b>  }</b></p><p><b>  3.2.2游戲控制</b></p><p>  開始游戲后的重點(diǎn)是如何用鍵盤來控制蛇的移動.首先說明鍵盤與蛇的響應(yīng),設(shè)置一個方向控制變量dir point;,再添加m.change_point(keydown)函數(shù)來實(shí)現(xiàn)鍵盤

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論