文档详情

C语言课程设计.docx

发布:2024-07-22约7.56千字共14页下载文档
文本预览下载声明

《程序设计》课程设计报告

题 目:《C语言课程设计——小游戏贪吃蛇》

班 级:2011级计本班

设计者:时 间:

得 分:

1

目录

设计目的与内容

流程图

程序源代码

心得,体会

2

一·设计目的与内容

目的:(1)基本掌握面向过程程序设计的基本思路与方法;

(2)达到熟练掌握c语言的基本知识和技能;

(3)能够利用所学的基本知识和技能,解决简单的程序;设计内容:

在了解已知的贪吃蛇游戏代码的基础上,让其难度增加,增加玩游戏的趣味性,增加通关的难度。

3

二.流程图

开始,初始化,将蛇蛇的尾.身.头依次放人队列

按键判断:改变运动方向、退出

按键判断:改变运动方向、

退出...暂停 。是否ECS退出?

潘戏结柬

计算出蛇蛇的下一步位置坐标

(根据运动方向)

下一坐标是否撞刊身体或陓琨物

另“下一步位置.坐标为新的蛇头坐标,并且将其坐标值入队列

(蛇头在队尾),绘刮新的蛇头

HP--

HP--

蛇是否吃封食物(新坐标位萱==享物坐标位室则为是)

隍机位寰产生

一个新的食物

是将蛇蛇的尾巴出队,在相应位笠渚空蛇蛇的尾巴

否队列的长度即为蛇蛇的长度,判断长忮是否达刮赢得潘戏的标准

谛戏结束

游戏结束

4

三,源代码

#includestdlib.h#includegraphics.h#includebios.h#includedos.h#includeconio.h#defineEnter7181

#defineESC283

#defineUP18432

#defineDOWN20480

#defineLEFT19200

#defineRIGHT19712#ifdef cplusplus#define CPPARGS...#else

#define CPPARGS#endif

voidinterrupt(*oldhandler)( CPPARGS);

voidinterruptnewhandler( CPPARGS);

voidSetTimer(voidinterrupt(*IntProc)( CPPARGS));voidKillTimer(void);

voidInitgra(void);

voidTheFirstBlock(void);voidDrawMap(void);

voidInitsnake(void);voidInitfood(void);voidSnake_Headmv(void);

voidFlag(int,int,int,int);

voidGameOver(void);voidSnake_Bodymv(void);

voidSnake_Bodyadd(void);voidPrntScore(void);voidTimer(void);

voidWin(void);

voidTheSecondBlock(void);voidFood(void);

voidDsnkorfd(int,int,int);voidDelay(int);

structSnake

{intx;inty;intcolor;}Snk[12];structFood

{intx;inty;intcolor;}Fd;

intflag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0,

5

checkx,checky,num,key=0,Times,Score,Hscore,Snkspeed,TimerCounter,TureorFalse;charSco[2],Time[6];

voidmain()

{Initgra();SetTimer(newhandler);TheFirstBlock();while(1)

{DrawMap();Snake_Headmv();GameOver();Snake_Bodymv();Snake_Bodyadd();PrntScore();Timer();

Win();if(key==ESC)break;if(key==Enter)

{cleardevice();

TheFirstBlock();

}

TheSecondBlock();Food();Delay(Snkspeed);

}

closegraph();KillTimer();

}

voidinterruptnewhandler( CPPARGS)

{

TimerCounter++;oldhandler();

}

voidSetTimer(voidinterrupt(*IntPro

显示全部
相似文档