当前位置: 首页 > news >正文

网站建设 锐颖科技网页和网站有什么关系

网站建设 锐颖科技,网页和网站有什么关系,优书网打不开了,网络项目资源网站#x1f4dd;个人主页#xff1a;认真写博客的夏目浅石. #x1f4e3;系列专栏#xff1a;夏目的C语言宝藏 文章目录 前言一、头文件包含二、创建蛇与食物的结构体三、游戏的初始化四、游戏的绘画事件五、蛇的移动事件六、输入方向七、生成食物八、吃食物九、游戏失败的判定… 个人主页认真写博客的夏目浅石. 系列专栏夏目的C语言宝藏 文章目录 前言一、头文件包含二、创建蛇与食物的结构体三、游戏的初始化四、游戏的绘画事件五、蛇的移动事件六、输入方向七、生成食物八、吃食物九、游戏失败的判定十、main函数总结 前言 我们曾经都玩过贪吃蛇游戏所以我今天学习了C语言就想学习然后写一下。 一、头文件包含 #includestdio.h #includegraphics.h //图形处理需要包含的库文件 #includemmsystem.h //windows多媒体接口 #includeconio.h //读取键盘输入 #includetime.h //随机数种子 #includestdlib.h //内存分配包含完头文件后进行一些预处理操作 #pragma comment(lib,winmm.lib)//多媒体接口 #define NUM 200; #define SIZE 10 enum Ch{ up72,down80,left75,right77} ; 二、创建蛇与食物的结构体 贪吃蛇是基于帧驱动而不是事件驱动的程序。 开发者只需要处理每一帧蛇的变化而不是处理出现的事件(用户输入蛇吃到食物)。 easyX提供了绘制填充矩形的API fillrectangle。 我们把窗口分割成无数个小方格蛇的身体和食物绘制在方格的点中。 贪吃蛇中的蛇是一个集合储存是每个方块的x和y坐标。 蛇移动的本质是 头 向当前方向移动一个单元格然后其他的身体格坐标变成上一个格的坐标。 食物是一个点只需要储存x和y坐标就可以表示。 只有蛇头碰到食物才算吃到食物蛇的身体变长实质上是蛇是吃到食物后移动时加入一个位置并设置成移动前最后一个位置的坐标 根据上述描述我们可以构建对应的结构体 struct pos //蛇身坐标 {int x;int y; }; struct snake {int n; //初始化蛇身长度Ch ch; //蛇前进的方向pos szb[3265]; //蛇的坐标数组 }; struct food {int x;int y;bool iseat; //判断食物是否被吃 };//创建一个蛇与食物snake s; food f;三、游戏的初始化 代码如下示例 void gameinit() {srand((unsigned int)time(NULL));//随机数种子用于随机生成食物s.n 2; //蛇的初始长度可以自己设定s.ch right;//蛇的初始方向s.szb[0].x100;s.szb[0].y100;s.szb[1].x 90;s.szb[1].y 100;//蛇的初始位置坐标f.iseat true; }四、游戏的绘画事件 代码如下示例 cleardevice(); //每次绘画都要进行一次清屏setfillcolor(RED); //蛇头颜色fillrectangle(s.szb[0].x, s.szb[0].y,s.szb[0].x SIZE, s.szb[0].y SIZE);//SIZE在预处理是已经定义表示每个蛇身的大小for (int i 0; i s.n; i) {rectangle(s.szb[i].x, s.szb[i].y,s.szb[i].x SIZE, s.szb[i].y SIZE);} //生成矩形蛇setfillcolor(GREEN);//食物颜色fillroundrect(f.x, f.y, f.x SIZE, f.y SIZE,5,5);//生成圆形食物五、蛇的移动事件 代码如下示例 {for (int i s.n - 1; i 0; i--){s.szb[i].x s.szb[i - 1].x;s.szb[i].y s.szb[i - 1].y; //通过数组的变换来实现蛇的移动}switch (s.ch)//ch枚举类型在预处理时已经定义{case up:s.szb[0].y - SIZE;//由于在窗口坐标系中y方向是向下的所以向上移动需要减去一个sizebreak;case down:s.szb[0].y SIZE;break;case left:s.szb[0].x - SIZE;break;case right:s.szb[0].x SIZE;break;} } 六、输入方向 代码如下示例 void changech() {char key;key _getch();switch (key){case up:if (s.ch ! down)s.ch up;break;case down:if (s.ch ! up)s.ch down;break;case left:if (s.ch ! right)s.ch left;case right:if (s.ch ! left)s.ch right;} } 七、生成食物 代码如下示例 void creatfood() {bool flag false;if (f.iseat true) {while (1){flag false;//设定flag判断食物是否与蛇身重合f.x rand() % 68*10;f.y rand() % 48*10;//食物的随机生成for (int i 0; i s.n; i){if (f.x s.szb[i].x f.y s.szb[i].y){flag true;break;}}if (!flag){f.iseat false;break;}//上面部分为判断食物是否与蛇身重合}} }八、吃食物 代码如下示例 void eatfood() {if (s.szb[0].x f.x s.szb[0].y f.y)//如果蛇头与食物重合那么食物就被吃掉了{f.iseat true;s.n;} }九、游戏失败的判定 代码如下示例 因为我初始化的窗口为640*480if判断的范围打击可以根据自己窗口大小设定。 int gameover() {if (s.szb[0].x 0 || s.szb[0].x640 || s.szb[0].y 0 || s.szb[0].y480){return 1;}for (int i 1; i s.n; i){if (s.szb[0].x s.szb[i].x s.szb[0].y s.szb[i].y){return 1;}}return 0; }十、main函数 代码如下示例 int main() {initgraph(680,480);mciSendString(Lopen 7895.mp3, 0, 0, 0);mciSendString(Lplay 7895.mp3, 0, 0, 0);//添加音乐必须加上这个预处理指令#pragma comment(lib,winmm.libint n 0;gameinit();while (1) {while (!_kbhit()){snakemove();drawgame();creatfood();eatfood();n gameover();if (n)break;Sleep(100);}if (n)break;changech();}closegraph();getchar();return 0; }总结 贪吃蛇游戏的难点就在于蛇身的变化与移动只要这两个问题解决后其他的都很好想。封面就是运行后的结果。
http://www.hkea.cn/news/14352062/

相关文章:

  • 徐州住房和城乡建设部网站北京精兴装饰公司口碑怎么样
  • 建小公司网站最好的科技资讯网站
  • 网站制作优质公司互联网技术是什么
  • 阳逻开发区网站建设中企动力个人养老金
  • 旅游网站建设电子商务的困惑杭州公司有哪些
  • 哪里有网站建设公司阿里万网站建设
  • WordPress金融网站网页设计图片边框怎么设置
  • 招标网站官网成品网站软件
  • 阿里云买域名后怎么做网站小游戏网站欣赏
  • 免费自动推广手机软件seo营销的概念
  • 网站正在建设中9797装潢设计属于什么专业类别
  • 网站开发专业考啥证书深圳西乡做网站
  • 网站维护提醒php文件电商网站开发价格
  • 邢台做wap网站的地方wordpress 站内资讯
  • seo赚钱培训佛山推广优化公司
  • 做网站彩票代理多少钱啊好搜搜索引擎
  • 吉林省长春市建设局网站石家庄市工程勘察设计咨询业协会
  • 职业学校网站建设方案做啥英文网站赚钱
  • 注册网站平台要多少钱网站风格细节
  • 网站维护知识成都专业网站制作建设
  • 公司直招的招聘网站c#网站开发模板
  • 华为手机网站建设策划方案论文网站建设与管理总结
  • 南通网站排名优化报价说明电子商务网站的建设流程
  • 整站wordpress下载商城类网站建设的服务器选择
  • 商城网站 运营去柬埔寨做网站是传销吗
  • 网站页面分析百度网页版入口官网
  • 宁波网站建设h5网站建设培训珠海
  • 专门做进口产品的网站6WordPress注册小工具
  • 网站定制公司蒙特抖音代运营收费价格表
  • 建设网站的机构网站建设济南