貪食蛇課程設計課題報告

2021-05-30 23:27:04 字數 3252 閱讀 5801

目錄一.設計要求 2

二.設計的作用、目的 2

三.課題分析 2

1.貪吃蛇遊戲功能分析 2

2.遊戲介面分析 3

3.設計思路分析 3

四.設計的具體實現 3

1.系統組成模組結構及功能 3

(1)函式定義 3

(2)主函式main( ) 4

(3)畫介面函式drawk( ) 5

(4)遊戲具體過程函式gameplay( ) 6

(5)遊戲結束函式gameover( ) 9

2.系統程式結構及流程圖 10

3.重要函式介紹 12

4.程式**編寫及注釋 14

5.軟體除錯問題分析及解決方法 20

6.軟體執行結果 20

五.心得體會及建議 22

六.參考文獻 23

貪吃蛇遊戲c程式設計報告

通過遊戲程式設計,提高程式設計興趣與程式設計思路,鞏固c語言中所學的知識,合理的運用資料,實現理論與實際相結合。

(1).收集資料,分析課題,分解問題,形成總體設計思路;

(2).深入分析各個小問題,列出大綱,編寫各部分程式模組;

(3).對於設計中用到的關鍵函式,要學會通過查資料,弄懂其用法,要聯絡問題進行具體介紹;

(4).上機除錯,查錯,逐步分析不能正常執行的原因,確保所設計的程式正確,並且能正常執行;

(5).完成課程設計報告,並進行答辯。

c語言是一種易學易懂的通用程式語言,由於它具有功能性強,運用簡潔,靈活兼有高階語言與低階語言的優點,以及「目標程式效率高」可移植性和能在各種系統上普遍實現等特點使它成為當今世界上的主流程式語言之一,同時被選作目前全世界廣泛應用,同時也是大學生必修的科目。作為當代的大學生要很好的利用它,學好一門設計語言,實現學以至用。

製作c程式報告,是為了鞏固和加深對c語言課程的基本知識的理解和掌握,並且能夠掌握c語言程式設計和程式除錯的基本技能。

通過遊戲程式的設計訓練和提高學生的基本技能,掌握字串的表示方法和字串函式的功能、turbo c圖形操作的基本知識、鍵盤上特殊鍵的獲取以及圖形方式下游標的顯示,提高程式設計興趣與程式設計水平,學會如何正確的書寫程式設計說明文件,提高運用c語言解決實際問題的能力,鞏固c語言語法規則的理解和掌握,學會通過源程式寫出流程圖,提高自學以及查閱資料的能力。

c語言是一種中性化的語言,用c語言來編寫程式實現貪吃蛇遊戲,能有效反映本有本遊戲的基本特點。編寫c語言程式實現貪吃蛇遊戲,貪吃蛇遊戲是乙個深受人們喜歡的遊戲:一條蛇在密閉的圍牆內,在圍牆內隨機出現乙個食物,通過鍵盤上的四個游標鍵控制蛇向上下左右四個方向移動,蛇頭撞到食物,則表示食物被吃掉,這時蛇的身體長一節,同時計10分;接著又出現食物,等待被蛇吃掉,如果蛇在移動過程中,撞到牆壁或身體交叉(蛇頭撞到自己的身體)遊戲結束。

程式執行時邊框表示圍牆,紅色矩形塊代表蛇,黃色小方塊代表食物。

這個程式的關鍵點是表示蛇的圖形以及蛇的移動。用乙個小矩形塊表示蛇的一節身體,身體每長一節,增加乙個矩形塊,蛇頭用兩節表示。移動從蛇頭開始,所以蛇不能向相反方向移動,也就是蛇尾不能改作蛇頭。

如果不按任何鍵,蛇自行在當前方向上前移,當遊戲者按了有效的方向鍵後,蛇頭朝著指定的方向移動,一步移動一節身體,所以當按了有效的方向鍵後,先確定蛇頭的位置,然後蛇身體隨著蛇頭的方向移動,圖形的實現是從蛇頭的新位置開始畫出蛇,這時,由於沒有清屏的原因,原來蛇的位置和新蛇的位置差乙個單位,所以看起來蛇會多一節身體,所以將蛇的最後一節用背景色來覆蓋。食物的出現和消失是以畫矩形塊和覆蓋矩形塊來表示的

本貪吃蛇程式包括以下主要的模組:

函式定義是對各個基礎函式的定義,並且設定需要運用的資訊,便於呼叫

#define n 200

#include /*圖形標頭檔案*/

#include /*包含rand等函式*/

#include /*包含bios函式*/

#define left 0x4b00/*游標左鍵值*/

#define right 0x4d00/*游標右鍵值*/

#define down 0x5000/*游標下鍵值*/

#define up 0x4800/*游標上鍵值*/

#define esc 0x011b/*esc的ascii碼*/

int i,key;/*圖形座標變數及按鍵變數*/

int score=0;/*得分*/

int gamespeed=10000;/*遊戲速度自己調整*/

struct food

food;/*食物的結構體

struct snake

snake;

void init(void);/*圖形驅動*/

void close(void);/*圖形結束*/

void drawk(void);/*畫介面函式*/

void gameover(void);/*結束遊戲

void gameplay(void);/*玩遊戲具體過程*/

void prscore(void);/*輸出成績*/

void main(void)/*主函式*/

主函式是程式的主流程,首先定義使用到的常數、全域性變數及函式原型說明,然後初始化圖形系統,呼叫函式drawk()畫出開始畫面,呼叫函式gameplay(),即玩遊戲的具體過程,遊戲結束後呼叫close()關閉圖形系統,結束程式

void main(void)/*主函式*/

void init(void)/*圖形驅動*/

主介面是乙個封閉的圍牆,用兩個迴圈語句分別在水平和垂直方向輸出連續的寬度和高度均的矩形方塊,表示圍牆,為了醒目,設定為白色。

void drawk(void)/*開始畫面,左上角座標為(50,40),右下角座標為(610,460)的圍牆*/

for(i=40;i<=450;i+=10) }

這是遊戲的主要組成部分,他採用將前一節的座標賦給後一節,用背景顏色將最後節去除,當蛇頭的座標與食物的座標相等時,表示食物被吃掉了。

void gameplay(void)/*玩遊戲具體過程*/

{ randomize();/*隨機數發生器*/

food.yes=1;/*1表示需要出現新食物,0表示已經存在食物*/

snake.life=0;/*活著*/

snake.direction=1;/*方向往右*/

snake.x[0]=100;snake.y[0]=100;/*蛇頭*/

snake.x[1]=110;snake.y[1]=100;/*蛇第二節*/

snake.node=2;/*節數*/

prscore();/*輸出得分

貪食蛇遊戲設計

電路設計與 結課 基於8 8點陣貪吃蛇遊戲的設計 學院 資訊工程學院 專業 電腦科學與技術 班級 計算機18 4班 姓名 徐昇陽 學號 5011214402 指導老師 孟洪兵 8 8點陣貪吃蛇遊戲 8 8點陣貪吃蛇遊戲基於at89c51微控制器與8 8點陣的貪吃蛇遊戲機開發。本設計利用微控制器把乙個...

貪吃蛇課程設計報告 C語言版

院系 計算機科學技術學院 班級 軟體11 2 姓名 張萌 學號 20111702010235 指導教師賀薪宇 2013年11月10日 kmp演算法對於任何模式和目標序列,都可以 性時間內完成匹配查詢,而不會發生退化,是乙個非常優秀的模式匹配演算法。但是由於kmp演算法在構造跳轉表next過程中進行了...

球閥課程設計報告 ProE課程設計

一.課題名稱 球閥班級 12機自a1 小組成員 李軍帥 組長 李軍帥 二.球閥的功能和工作原理描述 1.球閥的工作原理 球閥的主要驅動原件是裝配於閥杆上端的扳手,球閥的啟閉元件是位於閥桿下端的球體。球閥的主要工作原理是 當給扳手施加某一轉矩,扳手驅動閥桿旋轉,閥桿將扳手的轉矩傳遞給位於閥桿下端的球體...