貪吃蛇游戲的實現課程設計_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  C++課程設計報告</b></p><p> ?。ㄘ澇陨哂螒虻膶崿F)</p><p>  院  系:計算機工程系</p><p>  專  業(yè): 軟件工程</p><p><b>  學  號:</b></p><p><b>  姓 

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

3、;  1.3關于兼容性</b></p><p><b>  二、概要設計</b></p><p>  2.1程序流程與思路</p><p><b>  三、軟件實現</b></p><p>  3.1變量函數的聲明</p><p>  3.2主要功能的實現<

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

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

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

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

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

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

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

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

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

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

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

15、>  {</b></p><p>  srand((unsigned int) time(NULL)); //做種子(程序運行時間); </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>  開始游戲后的重點是如何用鍵盤來控制蛇的移動.首先說明鍵盤與蛇的響應,設置一個方向控制變量dir point;,再添加m.change_point(keydown)函數來實現鍵盤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論