




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
課課程程設設計計報報告告 貪吃蛇游戲設計貪吃蛇游戲設計 專業(yè)專業(yè)電子信息工程 學生姓名學生姓名 班級班級b 電子 062 學號學號 指導教師指導教師 完成日期完成日期2008 年 8 月 30 日 本科生課程設計報告(2008) 1 貪吃蛇游戲設計貪吃蛇游戲設計 摘要:本設計主要圍繞貪吃蛇游戲展開。眾所周知,貪吃蛇游戲一直以來是比較流行的。 傳統的貪吃蛇游戲功能比較少,對蛇的控制僅限于向左轉和向右轉,而現在的貪吃蛇游戲 已經發(fā)展的相當好;具有更多的功能和友好的界面。例如,最近流行的免費的3d版的貪吃 蛇游戲,界面相當的美觀,有很強的立體效果,真實感更強,食物也為立體的且顏色絢麗。 在3d版貪吃蛇游戲里面,墻壁是真實的墻壁,障礙物比較多,如樹、土丘等。此外,其功 能更多更強,可以選擇難度。不過,總而言之,3d版與傳統的貪吃蛇游戲有共性,即娛樂 性與益智性。這些也是貪吃蛇游戲的優(yōu)點。 本人因水平有限,只能設計簡單的貪吃蛇游戲。不過,在功能上,比傳統貪吃蛇游 戲更豐富。蛇可以反向運動,操作起來,顯得更為靈活。界面的顏色選用綠色,不易使眼 睛疲勞。 關鍵詞:3d版;傳統;靈活; 貪吃蛇游戲設計 目目 錄錄 1、概述 1.1、用tc設計程序的方法 1.2、簡要說明 2、設計要求 3、系統分析與模塊設計 3.1、算法設計 3.2、數據結構 3.3、模塊設計 3.4、模塊枝干圖 4、程序流程圖 4.1、圖形驅動 4.2、開始畫面 4.3、顯示食物 4.4、蛇向前移動 4.5、判蛇死 4.6、吃到食物后處理 4.7、判蛇反向移動 4.8、游戲結束 4.9、圖形結束 5、程序設計及關鍵源代碼 6、運行結果分析 7、實習心得 貪吃蛇游戲設計 0 貪吃蛇游戲的設計貪吃蛇游戲的設計 1 .概 述 1.1、用tc設計程序的方法 首先應了解設計要求,然后按照功能設計模塊,每個模塊完成特定的功能, 要使模塊間的耦合性小,內聚性高;設計模塊是相當重要的一個環(huán)節(jié)。模塊的 數量不宜太多,也不宜太少,要使每個模塊都能比較簡單的轉換成流程圖。模 塊設計完成后,就該給每個模塊繪制流程圖了。流程圖要簡單,容易理解,多 用中文。不宜寫過長的代碼,增加理解難度。流程圖與模塊枝干圖均可用繪圖 軟件繪制,可適當加些背景色,用以區(qū)分。此外,流程圖應容易轉換成代碼。 繪制好了流程圖,就要編寫代碼了。直接在tc環(huán)境里輸入代碼,然后運行測試, 檢查錯誤,最終,將設計出可行的程序。 1.2、簡要說明 我設計的貪吃蛇游戲具有很多獨特性。例如,墻壁不用實體,而用中空的 墻,顏色為綠色,顯得更美觀,且不易使眼疲勞。操作上,做了些簡化,游戲 開始時便可以自動運行,且速度較快,屬中等難度。玩游戲的過程相當簡單, 只需按鍵盤上的上下左右方向鍵,便可改變蛇的行進方向。食物隨機產生。貪 吃蛇吃到一個食物后便得到10分。得分顯示在左上角。當蛇撞到墻壁或自己時, 蛇死,游戲結束,輸出得分。 2.設計要求 外觀為矩形,食物隨機產生,添加注釋,統計得分、每吃到一個食物獲 得10分。蛇碰到自己或墻壁,游戲均結束。游戲結束時輸出得分。畫出模塊枝 干圖與每個模塊的程序流程圖。修改某些代碼,改變其外觀及功能。 游戲操作應盡量簡單。 界面美觀,讓人看了覺得舒服。 3、系統分析與模塊設計 3.1、算法設計 玩游戲過程采用遞歸算法,由while(1)控制循環(huán)過程,可使游戲重復玩, 在蛇死之前不停的玩。判斷蛇死的算法是通過判斷蛇有沒有碰到自己及墻壁。 使蛇向前移動采用遞歸算法,通過遞歸將蛇的每一節(jié)依次向前移動,橫坐標與 縱坐標依次向前賦值,從而達到使蛇前移的目的。蛇的前進方向通過if結構判 本科生課程設計報告(2008) 1 斷。 3.2、數據結構 蛇與食物信息分別用兩個結構體存儲與表示。將食物的橫坐標x、縱坐標y和 判斷是否要出現食物的變量yes分別作為食物的結構體的成員。蛇的橫坐標數組 xn,縱坐標數組yn,蛇的節(jié)數node,蛇的移動方向direction、蛇的生命life 分別作為蛇的結構體的成員。結構體內每個成員的存儲類型均為整型。 3.3、模塊設計 模塊應具有高內聚性,低耦合性。這樣,程序運行才更穩(wěn)定,效率更高。 據功能將貪吃蛇游戲劃分成四個大模塊,九個小模塊。每個模塊均具有自己 的功能,而且,比較容易畫出各個模塊的流程圖。 3.4、模塊枝干圖 簡要說明:圖形驅動即完成初始化圖形系統功能;開始畫面模塊的主要作用是根據設置繪制出 玩游戲區(qū)域四周的墻壁;玩游戲的過程是游戲此游戲程序的核心,又可細分為好多小的功能模 塊;其中,顯示食物模塊僅完成顯示食物功能;蛇前移模塊即通過遞歸算法實現蛇的向某方向 移動;判蛇死模塊的功能是通過判斷蛇是否碰到自己或墻壁來判斷蛇有沒有死亡。吃到食物后 小模塊只有蛇吃到食物后才起作用。即當蛇吃到食物后,蛇自身延長一節(jié)并繪出蛇,同時加 10 分。通過鍵盤操控來玩游戲主要由判反向移動模塊完成,即當蛇不是反向移動時,按照鍵 盤上方向鍵指示移動。游戲結束模塊功能簡單,僅完成輸出得分與提示語功能。最后圖形結束 模塊完成關閉圖形功能。 貪吃蛇游戲設計 2 4、程序流程圖 4.1、圖形驅動 4.2、開始畫面 本科生課程設計報告(2008) 3 4.3、 顯示食物 貪吃蛇游戲設計 4 4.4、 蛇向前移動 本科生課程設計報告(2008) 5 4.5、 判蛇死 貪吃蛇游戲設計 6 4.6、 吃到食物后處理 本科生課程設計報告(2008) 7 4.7、 判蛇反向移動 貪吃蛇游戲設計 8 4.8、 游戲結束 本科生課程設計報告(2008) 9 4.9、 圖形結束 5、程序設計及關鍵源代碼 定義上下左右控制方向: #define left 0x4b00 #define right 0x4d00 貪吃蛇游戲設計 10 #define down 0x5000 #define up 0x4800 #define esc 0x011b 設定游戲速度: int gamespeed=60000; 用結構體定義食物與蛇: struct food int x;/*食物的橫坐標*/ int y;/*食物的縱坐標*/ int yes;/*判斷是否要出現食物的變量*/ food;/*食物的結構體*/ struct snake int xn; int yn; int node;/*蛇的節(jié)數*/ int direction;/*蛇移動方向*/ int life;/* 蛇的生命,0 活著,1 死亡*/ snake; 主函數: void main(void) init();/*圖形驅動*/ drawk();/*開始畫面*/ gameplay();/*玩游戲具體過程*/ close();/*圖形結束*/ 圖形驅動: 本科生課程設計報告(2008) 11 void init(void) int gd=detect,gm; initgraph( cleardevice(); 開始畫面,左上角坐標為(50,40) ,右下角坐標為(620,460)的圍墻: void drawk(void) setcolor(10);/*綠色*/ setlinestyle(solid_line,0,thick_width);/*設置線型*/ for(i=50;i0;i-)/*蛇的每個環(huán)節(jié)前移動,關鍵算法*/ snake.xi=snake.xi-1; snake.yi=snake.yi-1; /*1,2,3,4 表示右,左,上,下四個方向,通過這個判斷來移動蛇頭*/ switch(snake.direction) case 1:snake.x0+=10;break; case 2: snake.x0-=10;break; case 3: snake.y0-=10;break; case 4: snake.y0+=10;break; for(i=3;i595|snake.y0455) gameover(); snake.life=1; /*蛇死*/ if(snake.life=1)/*以上兩種判斷以后,如果蛇死就跳出內循環(huán),重新開始 */ break; if(snake.x0=food.x/*把畫面上的食物東西去掉*/ rectangle(food.x,food.y,food.x+10,food.y-10); snake.xsnake.node=-20;snake.ysnake.node=-20; /*新的一節(jié)先放在看不見的位置,下次循環(huán)就取前一節(jié)的位置*/ snake.node+;/*蛇的身體長一節(jié)*/ food.yes=1;/*畫面上需要出現新的食物*/ score+=10; prscore();/*輸出新得分*/ setcolor(4);/*畫出蛇*/ for(i=0;isnake.node;i+) rectangle(snake.xi,snake.yi,snake.xi+10, snake.yi-10); delay(gamespeed); setcolor(0);/*用黑色去除最后一節(jié)*/ rectangle(snake.xsnake.node-1,snake.ysnake.node-1, 貪吃蛇游戲設計 14 snake.xsnake.node-1+10,snake.ysnake.node-1-10); /*endwhile(!kbhit)*/ if(snake.life=1)/*如果蛇死就跳出循環(huán)*/ break; key=bioskey(0);/*接收按鍵*/ if(key=esc)/*按 esc 鍵退出*/ break; else if(key=up else if(key=right else if(key=left else if(key=down /*endwhile(1)*/ 游戲結束: void gameover(void) cleardevice(); prscore(); setcolor(green); settextstyle(0,0,3); outtextxy(200,200,“ game over!try!“); getch(); 輸出成績: void prscore(void) 本科生課程設計報告(2008) 15 char str10; setfillstyle(solid_fill,yellow); bar(50,15,220,35); setcolor(5); settextstyle(0,0,2); sprintf(str,“score:%d“,score); outtextxy(55,20,str); 6、運行結果分析 通過運行,我對自己的設計比較滿意。運行結果正如我所料,此貪吃蛇游 戲具有易操作性及充滿活力的外觀。 截圖及描述: 圖 6-1 開始畫面 此圖為開始畫面圖,蛇有三節(jié),墻壁顏色為綠色,顯得較有活力。 貪吃蛇游戲設計 16 圖 6-2 蛇吃到兩個食物后 蛇吃到食物后,得分為 20 分,蛇延長兩節(jié)。 圖 6-3 游戲結束畫面 本科生課程設計報告(2008) 17 7、實習心得 在大一學習期間,我就知道在大二暑假期間,有程序設計實習。從那時起, 我就期盼著這一天早點到來。只因我對編程有濃厚的興趣。我是我們班第一個通 過江蘇省計算機 vb 二級考試的。我的 vc+成績也還可以。 轉眼間,程序設計實習就如期而至了。實習的第一天是充滿好奇與興趣,當 實習回來時,就感覺得這次實習并非想象中的那樣。我本以為,程序設計實習應 該是開放性的,讓我們參照某些課題,自主、自由地設計程序。我想,那樣更能 促進我們學習和提高我們的動手能力。 這次實習中,我們都被給了程序的源碼,而且有詳細的功能說明。表面上看, 我們幾乎不需什么努力就能完成,而實際上,并非如此。因為那些程序大多是基 于 16 位 dos 執(zhí)行的,并且,里面包含許多 dos 下圖形處理的函數,我從未涉及 過,所以,很難看懂代碼,即使有那樣詳細的注釋。 通過堅持上機實習,我對代碼的認識越來越多。我還上網找了些資料,如 tc 函數詳解等等。我更多的了解了各種 tc 函數的功能。我通過一步步的學習,終于 弄懂了整個程序,并且對程序做了些修改。如外觀、大小、輸出成績等。通過修 改程序代碼增加游戲的功能,我也從中獲得了自信。 通過使用 win-tc1.9 設計程序,我更多的了解了 tc 函數的功能與用法,也了 解了在 tc 環(huán)境下調用 dos 繪圖及處理的常用方法。 在上機實習的過程中,還繪制了模塊枝干圖與程序流程圖,我感覺到,畫模 塊枝干圖并不是件容易的事。只有在弄懂程序后才能將整個程序劃分成數量適宜 的模塊。劃分模塊確實挺重要的,原來我將玩游戲過程劃為一個模塊,后來發(fā)現 太復雜,很難
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州房屋收費管理辦法
- 綏化浴池節(jié)能管理辦法
- 道具專項采購管理辦法
- 肺功能不全教學課件
- 手工裝裱培訓課件
- 肝膿腫護理教學課件
- 高淳區(qū)初二數學試卷
- 東師附中初一數學試卷
- 固安縣小升初數學試卷
- 商場裝修管理培訓課件
- GB 19304-2018食品安全國家標準包裝飲用水生產衛(wèi)生規(guī)范
- GA/T 168-2019法醫(yī)學機械性損傷尸體檢驗規(guī)范
- 卡特彼勒標桿研究報告
- 2022年重慶出版集團有限公司招聘筆試試題及答案解析
- 大豬料配方設計思路課件
- 工程竣工圖章樣式
- 技工序列考評、評聘管理辦法
- 川崎病課件講稿
- 《優(yōu)質提問教學法-讓每個學生都參與其中》讀書筆記
- 表11項目管理班子配備情況輔助說明資料
- 叉車日常維護保養(yǎng)檢查記錄表
評論
0/150
提交評論