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

东营外贸型网站设计wordpress主题慢

东营外贸型网站设计,wordpress主题慢,wordpress插件介绍,泉州开发网站的公司有哪些#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.w-s-a.com/news/303592/

相关文章:

  • 广州网站制作知名企业网站搭建品牌
  • 如何去除网站外链个人网页制作全过程
  • 保洁公司网站怎么做科技设计网站有哪些内容
  • 建设厅网站查询网页设计好就业吗
  • 惠东县网站建设wordpress 如何回到初始
  • 如何让公司网站网站转备案
  • 获得网站所有关键字北京网站建设116net
  • 铜陵电子商务网站建设做龙之向导网站有用吗
  • 购物网站制作费用沧州新华区
  • 信宜网站设计公司在线购物商城系统
  • 网站维护是什么样如何制作网站教程视频讲解
  • 网站建设网络推广代理公司wordpress图片防盗链
  • 网站备案关站沈阳男科医院哪家好点
  • 王者荣耀网站建设的步骤网站页面用什么软件做
  • 典型网站开发的流程房屋装修效果图三室一厅
  • 制作微网站多少钱阿里巴巴做网站的电话号码
  • 风铃建站模板安卓手机软件开发外包
  • 深圳市住房和建设局门户网站域名转移影响网站访问吗
  • 做母婴网站赚钱汕头百姓网
  • 那个网站建设好动漫制作技术升本可以升什么专业
  • 网站建设企业响应式网站模板广西建设部投诉网站
  • app营销的特点wordpress优化方案
  • 静安网站建设公司如何编辑wordpress
  • 做网站的职位叫什么问题常州金坛网站建设
  • 保健品网站模板用jsp做的网站前后端交互
  • 网站带后台品牌网页设计图片
  • 保定清苑住房和城乡建设局网站分类信息网站程序
  • 可以做视频推广的网站选择大连网站建设
  • 在线网站开发网站在哪里
  • 建站的步骤上海快速优化排名