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

研发项目备案在哪个网站做企业培训体系搭建

研发项目备案在哪个网站做,企业培训体系搭建,html5网站开发开题报告,网站建站要求由于蛇是由多块蛇身组成的#xff0c;机构体数组或者链表来存储蛇 蛇在运行过程中#xff0c;如果吃了食物#xff0c;那么这块食物就可以看作是新的蛇头了#xff0c; 数组存储 存储新蛇身#xff0c;在数组的第一个位置插入一个元素。 链表 插入和删除元素效率很高机构体数组或者链表来存储蛇 蛇在运行过程中如果吃了食物那么这块食物就可以看作是新的蛇头了 数组存储 存储新蛇身在数组的第一个位置插入一个元素。 链表 插入和删除元素效率很高访问指定元素位置元素 中和上述两种结构的缺点 可以考虑使用队列或者双端队列的方式去存储蛇身 此处我们使用双端队列。 在窗口中绘制出蛇的身子。 函数分析 ·参数  将蛇作为函数的参数用矩形框来代替蛇身的每一块同时用绿色来表示蛇身。以引用方式传递。  避免函数值传递过程中对函数参数进行拷贝造成不必要的开销。 ·返回值无 游戏结束  游戏结束标志蛇头碰撞到窗口边界或者蛇头撞到了自己的身体。 函数分析 · 参数蛇一方面要获取到蛇头位置判断蛇头是否与窗口边界碰撞另一方面也要获取蛇身判断蛇头是否碰撞到蛇身。 · 返回值可以不需要返回值如果游戏结束直接在该函数中结束程序即可。 蛇移动 整个蛇放在双端队列中由于蛇每次超某个方向移动一步其蛇身位置信息都要改变。不妨将蛇头移动反向的下一个位置的坐标作为新的蛇头蛇尾部最后一个元素是否需要删除取决于蛇是否迟到了食物如果没有迟到则将蛇尾从蛇身中删除如果吃到了那么食物的位置就是新的蛇头由于蛇身长度要加1则不需要删除蛇尾。然后再重新绘制蛇身。这样一来蛇就完成了一次移动。 函数分析 ·参数   ·将蛇作为函数的参数   ·用一个标记来标记蛇是否迟到了食物。 ·返回值无 更改蛇的移动方向 从键盘获取输入的按键完成轮梗概运动的方向 键盘的W、w、上键均可使蛇向上移动 键盘的S、s、下键均可使蛇向下移动 键盘的A、a、左键均可使蛇向左移动 键盘的D、d、右键均可使蛇向右移动 捕获键盘按键消息 如果捕获到了上述的按键消息则更改蛇的移动方向但是注意不可以反方向更改 函数分析 · 参数蛇 ·返回值无 生成食物 在屏种随机位置生成一个食物但注意不应该生成在蛇身上。 函数分析 ·参数      ·食物      ·蛇 ·返回值无 在屏幕左上角显示得分 检测是否迟到了食物 及判断蛇头是否与食物重合。 函数分析 · 参数蛇食物。 · 返回值 bool类型迟到了返回true否则返回false 代码如下 #includeeasyx.h #includedeque using namespace std; #define Wide 640 #define High 480 #define size 20//边长为20的正方形 #define Delay 200//延迟时间 //蛇移动方向 enum Direction {     Up,     Down,     Left,     Right }; //蛇身 struct Snake {     int x, y;     Direction dir;//移动方向 }; //食物 struct Food {     int x, y; }; //绘制蛇身 void drawSnake(dequeSnake snake) {     //绿色表示设置填充颜色为绿色     setfillcolor(GREEN);     //遍历蛇身绘制     for (const auto body : snake)     {         //绘制一个矩形框,四个参数分别是左上角和右下角的横纵坐标         //用20*20的矩形框表示蛇身         fillrectangle(body.x*size,body.y*size,(body.x1)*size,(body.y1)*size);     }     //控制蛇移动的速度     Sleep(Delay); } //判断游戏是否结束 void isOver(dequeSnake snake) {     //检测碰撞     //遍历蛇身使用迭代器遍历从蛇头后面一个元素开始遍历     for (auto iter snake.begin() 1; iter ! snake.end(); iter)     {         if ((snake.front().x iter-x snake.front().y iter-y)//蛇头撞到了自己游戏结束             ||(snake.front().x 0)||(snake.front().x Wide/size)    //越界游戏结束             || (snake.front().y 0) || (snake.front().y High / size)             )         {             //设置当前文字颜色为白色             settextcolor(RED);             //设置当前文字样式指定高度100宽度0表示自适应。_T支持Unicode编码C             settextstyle(100,0,_T(楷体));             TCHAR str[100];             _stprintf_s(str, _T(游戏结束!!!));             //在指定位置输出字符串。             outtextxy(Wide / size, High / size, str);             //停留三秒             Sleep(3000); closegraph();//关闭窗口             //直接结束程序             exit(0);         }     } } //蛇移动 grow表示是否迟到了食物该参数用来区分蛇普通移动和吃到食物 void moveSnake(dequeSnake snake,bool growfalse) {     //获取蛇头     Snake newHead snake.front();     //判断蛇移动方向     switch (newHead.dir)     {     case Up:         newHead.y--;         break;     case Down:         newHead.y;         break;     case Left:         newHead.x--;         break;     case Right:         newHead.x;         break;          }     //将新位置作为新蛇头     snake.push_front(newHead);     //每移动一次都要判断游戏是否结束了     isOver(snake);     if (!grow)     {         //没吃到食物         //growtrue表示吃到了食物 growfalse表示普通移动         clearrectangle(snake.back().x * size, snake.back().y * size, (snake.back().x 1) * size, (snake.back().y 1) * size);         //将双端队列最后一个元素去除         snake.pop_back();     }     //绘制蛇身     drawSnake(snake); } //更改蛇移动方向 void changeDirection(dequeSnake snake) {     ExMessage msg { 0 };     //捕获按键消息     peekmessage(msg, EX_KEY);     //当某个键被按下     if (msg.message WM_KEYDOWN)     {         //判断输入的按键         switch (msg.vkcode)         {         casew:         caseW:         case VK_UP:             if (snake.front().dir ! Down)                 snake.front().dir Up;             break;         cases:         caseS:         case VK_DOWN:             if (snake.front().dir ! Up)                 snake.front().dir Down;             break;         case a:         caseA:         case VK_LEFT:             if (snake.front().dir ! Right)                 snake.front().dir Left;             break;         case d:         caseD:         case VK_RIGHT:             if (snake.front().dir ! Left)                 snake.front().dir Right;             break;         }     } } //生成食物不能生成在蛇身上 void generateFood(Food food, dequeSnake snake) {     //一直生成知道生成的食物为止不在蛇身上     while (true)     {         //随机生成         //将整个窗口看做一个是数组每个数组元素占的空间大小为20*20个像素点         food.x rand() % (Wide / size);         food.y rand() % (High / size);         //用一个变量存储生成的位置是否重合         bool overlapfalse;         //遍历蛇身范围for循环         for (const auto body : snake)         {             //食物位置与蛇身重合             if (food.x body.x food.y body.y)             {                 //已经与蛇身重合了不必再遍历跳出for循环再while循环中重新生成                 overlap true;                 break;                              }         }         //如果不重合则食物生成成功可以结束while循环了         if (!overlap)         {             break;         }     } } //检测是否与食物重合 bool checkCollision(dequeSnake snake, Food food) {     //蛇头与食物重合     if (snake.front().x food.x snake.front().y food.y)     {         return true;     }     //检测是否与蛇身的位置重叠可以不用因为蛇头没经过的位置蛇身必然不会经过     for (auto iter snake.begin() 1; iter ! snake.end(); iter)     {         if (iter-x food.x iter-y food.y)         {             return true;         }     }     return false; } int main() { initgraph(Wide, High);//绘制窗口两个参数分别为窗口的宽度和长度 //定义一条蛇     dequeSnake snake;     //初始化蛇     //双端队列头部插入一个元素作为蛇头     snake.push_front(Snake{ Wide/size/2,High/size/2,Right }); Food food;     generateFood(food, snake);     //绘制食物     setfillcolor(RED);     fillrectangle(food.x * size, food.y * size, (food.x 1) * size, (food.y 1) * size);     drawSnake(snake);     //分数初始为0     int score 0;     while (true)     {         //蛇移动         moveSnake(snake);         //更改蛇移动方向         changeDirection(snake);         //检测是否与食物重合         if (checkCollision(snake, food))         {             //蛇吃到食物             score;             //生成新的食物             generateFood(food, snake);             //true,增加蛇的长度             moveSnake(snake, true);         }         //绘制食物 红色表示食物         setfillcolor(WHITE);         fillrectangle(food.x*size, food.y*size, (food.x 1)* size, (food.y1)* size);         //设置当前文字颜色         settextcolor(GREEN);         //设置当前文字样式指定高度20宽度0表示自适应。_T支持Unicode编码Consolas表示字体         settextstyle(20,0,_T(楷体));         TCHAR strScore[16];         _stprintf_s(strScore, _T(得分:%d), score);         //在指定位置输出字符串。         outtextxy(10, 10, strScore); } system(pause);//防止窗口打开即关闭一闪而过让其先停一会     closegraph();//关闭窗口     return 0; }
http://www.hkea.cn/news/14329689/

相关文章:

  • 中国建设教育协会的是假网站吗郑州电力高等专科学校招生办电话
  • 帆布网站做哪个当雄网站建设
  • 做淘宝要用的网站镇江网站关键词优化
  • 网站及单位网站建设情况昆明建个网站哪家便宜
  • 一个公司可以做多少个网站网易工作做网站工资奖金高吗
  • 高端建设网站怎么注册网站
  • 品牌vi设计案例欣赏ppt优化网站标题名词解释
  • 北京建网站公司推荐张家口万全区建设网站
  • 宿州网站建设开发公司哪家好5151app是交友软件么
  • 哪个旅游网站可以做私人定制什么是网站开发技术
  • wordpress海外支付seo zac
  • 做网站费用计入什么wordpress设置显示为英文版
  • 网站设计内容板块做网站优化最快的方式
  • 网站开发架构mvcwordpress enter主题
  • 网站打开慢原因电子商务网站建设分析论文
  • 腾讯云服务器怎么搭建网站qq空间上传wordpress
  • 化妆品 东莞网站建设搭建电商平台 方案
  • 企业网站建设选题背景wordpress文章 页面模板
  • 秦皇岛庆云网站建设wordpress图片页面模板下载
  • 智能科技网站模板dedecms手机网站仿制
  • 宁波自助建站模板湖南有实力竞价优化服务
  • wordpress新建子域名多站点安卓软件开发软件
  • 什么网站比较少人做龙岗网站app建设
  • wordpress去除wordpress新闻长春做网络优化的公司
  • 最好的网站开发工具开淘宝店和做网站有什么区别
  • 江苏网站备案流程图做网站的赢利点
  • word网站超链接怎么做义乌网站建设成都网站设计
  • seo推广学院宜春seo网站推广
  • 濮阳住房建设厅网站网站title是什么意思
  • 用front page2003做网站的导航条手机照片做成音乐相册