貪吃蛇游戲的實(shí)現(xiàn)課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  C++課程設(shè)計(jì)報(bào)告</b></p><p>  (貪吃蛇游戲的實(shí)現(xiàn))</p><p>  院  系:計(jì)算機(jī)工程系</p><p>  專(zhuān)  業(yè): 軟件工程</p><p><b>  學(xué)  號(hào):</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è)計(jì)</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錯(cuò)誤調(diào)試與分析</p><p><b>  4.2程序的缺陷</b></p&g

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

6、游戲,選擇這個(gè)題目一是為了將自己的所學(xué)知識(shí)加以運(yùn)用,二是一直以來(lái)貪吃蛇這個(gè)游戲就深深地吸引著我,它的制作方法對(duì)于以前的我而言都是很神秘的。我希望通過(guò)自己的所學(xué)知識(shí)把它剖析開(kāi)來(lái),真真正正的了解它的本質(zhì)和精髓。雖然我的編程能力不是很強(qiáng),但是我有信心,在這次學(xué)習(xí)中我將從實(shí)踐和實(shí)際的項(xiàng)目中提高自己的編程能力。因此我選定了這個(gè)題目。</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平臺(tái)的集成開(kāi)發(fā)環(huán)境,但由于其良好的界面和可操作性,加上支持標(biāo)準(zhǔn)C/C++規(guī)范,但仍有相當(dāng)多的編程人員使用VisualC++6.0進(jìn)行應(yīng)用系統(tǒng)的開(kāi)發(fā)。</p><p>

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

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

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

11、t;/p><p>  2.1.2程序流程圖</p><p><b>  3.1函數(shù)聲明</b></p><p>  void Fence::InitFence()//畫(huà)框框;</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)行時(shí)間);</p><p>  3.2.1初始化食物</p><p>  確定用點(diǎn)數(shù)組存儲(chǔ)貪吃蛇以后,貪吃蛇的食物如何達(dá)到隨機(jī)出現(xiàn),并且能夠按照網(wǎng)格式與蛇頭無(wú)偏差相接就是一個(gè)亟待解決的問(wèn)題。</p><p>  隨機(jī)出現(xiàn)應(yīng)采用rand()函數(shù)來(lái)實(shí)現(xiàn),而食物與蛇頭無(wú)偏差相接則利用坐標(biāo)來(lái)解決。設(shè)置兩個(gè)整型變量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)格,也就是使食物與蛇頭無(wú)偏差相接。</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)行時(shí)間); </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>  開(kāi)始游戲后的重點(diǎn)是如何用鍵盤(pán)來(lái)控制蛇的移動(dòng).首先說(shuō)明鍵盤(pán)與蛇的響應(yīng),設(shè)置一個(gè)方向控制變量dir point;,再添加m.change_point(keydown)函數(shù)來(lái)實(shí)現(xiàn)鍵盤(pán)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論