




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、贪吃蛇源代码.txt这世界上除了我谁都没资格陪在你身边。听着,我允许你喜欢我。除了白头偕老,我们没别的路可选了什么时候想嫁人了就告诉我,我娶你。#include #include #include #include #include #define LEFT a#define RIGHT d#define DOWN s#define UP w#define ESC 27#define N 200 /*蛇的最大长度*/int i;char key;int score=0; /*得分*/int gamespeed=100; /*游戏速度自己调整*/struct Food int x; /*食物的横
2、坐标*/ int y; /*食物的纵坐标*/ int yes; /*判断是否要出现食物的变量*/food; /*食物的结构体*/struct Snake int xN; int yN; int node; /*蛇的节数*/ int direction; /*蛇移动方向*/ int life; /* 蛇的生命,0活着,1死亡*/snake;void Init(void); /*图形驱动*/void Close(void); /*图形结束*/void DrawK(void); /*开始画面*/void GameOver(void); /*结束游戏*/void GamePlay(void); /*玩
3、游戏具体过程*/void PrScore(void); /*输出成绩*/*主函数*/void main(void) Init(); /*图形驱动*/ DrawK(); /*开始画面*/ GamePlay(); /*玩游戏具体过程*/ Close(); /*图形结束*/*图形驱动*/void Init(void) int gd=9,gm=2; initgraph(&gd,&gm, ); cleardevice();/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/void DrawK(void) /*setbkcolor(LIGHTGREEN);*/ setcol
4、or(LIGHTCYAN); setlinestyle(PS_SOLID,0,1); /*设置线型*/ for(i=50;i=600;i+=10) /*画围墙*/ rectangle(i,40,i+10,49); /*上边*/ rectangle(i,451,i+10,460); /*下边*/ for(i=40;i0;i-) /*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ snake.xi=snake.xi-1; snake.yi=snake.yi-1; /*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/ switch(snake.direction) case 1
5、: 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;isnake.node;i+) if(snake.xi=snake.x0&snake.yi=snake.y0) GameOver(); /*显示失败*/ snake.life=1;break; if(snake.x0595|snake.y0455) /*蛇是否撞到墙壁*/ GameOver(
6、); /*本次游戏结束*/ snake.life=1; /*蛇死*/ if(snake.life=1) /*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/ break; if(snake.x0=food.x&snake.y0=food.y)/*吃到食物以后*/ setcolor(BLACK); /*把画面上的食物东西去掉*/ rectangle(food.x,food.y,food.x+10,food.y-10); snake.xsnake.node=-20;snake.ysnake.node=-20; /*新的一节先放在看不见的位置,下次循环就取前一节的位置*/ snake.node+
7、; /*蛇的身体长一节*/ food.yes=1; /*画面上需要出现新的食物*/score+=10; PrScore(); /*输出新得分*/ setcolor(RED); /*画出蛇*/ for(i=0;isnake.node;i+) rectangle(snake.xi,snake.yi,snake.xi+10,snake.yi-10); Sleep(gamespeed); setcolor(BLACK); /*用黑色去除蛇的的最后一节*/ rectangle(snake.xsnake.node-1,snake.ysnake.node-1, snake.xsnake.node-1+10,
8、snake.ysnake.node-1-10); /*endwhile(!kbhit)*/ if(snake.life=1) /*如果蛇死就跳出循环*/ break; key=getch(); /*接收按键*/ if (key = ESC) break; /*按ESC键退出*/ switch(key) case UP: if(snake.direction!=4) /*判断是否往相反的方向移动*/ snake.direction=3; break; case RIGHT: if(snake.direction!=2) snake.direction=1; break; case LEFT: i
9、f(snake.direction!=1) snake.direction=2; break; case DOWN: if(snake.direction!=3) snake.direction=4; break; /*endwhile(1)*/*游戏结束*/void GameOver(void) cleardevice(); PrScore(); setcolor(RED); setfont(56,0,黑体); outtextxy(200,200,GAME OVER); getch();/*输出成绩*/void PrScore(void) char str10; setfillstyle(YELLOW);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025人民医院呼吸科住院医师规范化培训出科考核模拟题库
- 2025年绍兴市越城区孙端街道中心小学招聘校医1人模拟试卷及1套参考答案详解
- 2025年福建省三明市城市建设发展集团有限公司招聘18人考前自测高频考点模拟试题及一套参考答案详解
- 2025河南洛阳市西工区第一批公益性岗位招聘100人模拟试卷附答案详解(模拟题)
- 石家庄市人民医院常见内镜品牌奥林巴斯富士宾得基础操作试题
- 沧州市中医院骨肿瘤介入治疗考核
- 沧州市中医院核医学科副主任医师资格评审
- 衡水市人民医院检验仪器操作规范考核
- 保定市人民医院血友病综合关怀管理考核
- 衡水市人民医院纱布敷料应用考核
- 2025至2030全球及中国InfiniBand行业发展趋势分析与未来投资战略咨询研究报告
- 2025年下半年拜城县招聘警务辅助人员(260人)考试模拟试题及答案解析
- 宅基地争议申请书
- 2025年杭州上城区总工会公开招聘工会社会工作者9人笔试参考题库附答案解析
- 百师联盟2026届高三上学期9月调研考试数学试卷(含答案)
- 河南省百师联盟2025-2026学年高二上学期9月联考化学试题(A)含答案
- 重庆通信安全员c证题库及答案解析
- 颈椎骨折护理围手术期管理方案
- 【MOOC期末】《中国马克思主义与当代》(北京科技大学)期末慕课答案
- TSAAD型螺杆式空气压缩机
- 无菌技术操作技能评分标准
评论
0/150
提交评论