贪吃蛇游戏C语言源代码学习

贪吃蛇游戏C语言源代码学习

ID:41282340

大小:30.19 KB

页数:11页

时间:2019-08-21

贪吃蛇游戏C语言源代码学习_第1页
贪吃蛇游戏C语言源代码学习_第2页
贪吃蛇游戏C语言源代码学习_第3页
贪吃蛇游戏C语言源代码学习_第4页
贪吃蛇游戏C语言源代码学习_第5页
资源描述:

《贪吃蛇游戏C语言源代码学习》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、贪吃蛇游戏C语言源代码学习阅读学习了源代码,并做了简单的注释和修改,里面只用了链表数据结构,非常适合C语言入门者学习阅读。程序可在VS2013下编译运行。1#include2#include3#include4#include56#defineU17#defineD28#defineL39#defineR4//蛇的状态,U:上;D:下;L:左R:右1011typedefstructSNAKE//蛇身的一个节点12{13intx;14inty;15structSNA

2、KE*next;16}snake;1718//全局变量//19intscore=0,add=10;//总得分与每次吃食物得分。20intstatus,sleeptime=200;//每次运行的时间间隔21snake*head,*food;//蛇头指针,食物指针22snake*q;//遍历蛇的时候用到的指针23intendGamestatus=0;//游戏结束的情况,1:撞到墙;2:咬到自己;3:主动退出游戏。2425//声明全部函数//26voidPos();27voidcreatMap();28voidinitSnake();29int

3、biteSelf();30voidcreateFood();31voidcantCrossWall();32voidsnakeMove();33voidpause();34voidrunGame();35voidinitGame();36voidendGame();37voidgameStart();3839voidPos(intx,inty)//设置光标位置40{41COORDpos;42HANDLEhOutput;43pos.X=x;44pos.Y=y;45hOutput=GetStdHandle(STD_OUTPUT_HANDLE)

4、;//返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄46SetConsoleCursorPosition(hOutput,pos);47}4849voidcreatMap()//创建地图50{51inti;52for(i=0;i<58;i+=2)//打印上下边框53{54Pos(i,0);55printf("■");//一个方块占两个位置56Pos(i,26);57printf("■");58}59for(i=1;i<26;i++)//打印左右边框60{61Pos(0,i);62printf("■")

5、;63Pos(56,i);64printf("■");65}66}6768voidinitSnake()//初始化蛇身69{70snake*tail;71inti;72tail=(snake*)malloc(sizeof(snake));//从蛇尾开始,头插法,以x,y设定开始的位置//73tail->x=24;74tail->y=5;75tail->next=NULL;76for(i=1;i<=4;i++)//初始长度为477{78head=(snake*)malloc(sizeof(snake));79head->next=tail;

6、80head->x=24+2*i;81head->y=5;82tail=head;83}84while(tail!=NULL)//从头到为,输出蛇身85{86Pos(tail->x,tail->y);87printf("■");88tail=tail->next;89}90}91//??92intbiteSelf()//判断是否咬到了自己93{94snake*self;95self=head->next;96while(self!=NULL)97{98if(self->x==head->x&&self->y==head->y)99{100

7、return1;101}102self=self->next;103}104return0;105}106107voidcreateFood()//随机出现食物108{109snake*food_1;110srand((unsigned)time(NULL));//为了防止每次产生的随机数相同,种子设置为time111food_1=(snake*)malloc(sizeof(snake));112while((food_1->x%2)!=0)//保证其为偶数,使得食物能与蛇头对其113{114food_1->x=rand()%52+2;1

8、15}116food_1->y=rand()%24+1;117q=head;118while(q->next==NULL)119{120if(q->x==food_1->x&&q->y==fo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。