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

网站统计 中文域名公众号小程序开发公司

网站统计 中文域名,公众号小程序开发公司,做企业网站设,望野古诗带拼音一、引言 贪吃蛇#xff0c;这款经典的电子游戏#xff0c;自1976年诞生以来#xff0c;一直受到全球玩家的喜爱。它的规则简单#xff0c;玩法直观#xff0c;但同时也充满了挑战性。在这篇文章中#xff0c;我们将一起探索如何开发一个贪吃蛇游戏#xff0c;无论是作为…一、引言 贪吃蛇这款经典的电子游戏自1976年诞生以来一直受到全球玩家的喜爱。它的规则简单玩法直观但同时也充满了挑战性。在这篇文章中我们将一起探索如何开发一个贪吃蛇游戏无论是作为编程新手的练手项目还是作为游戏开发爱好者的娱乐之作都是一个不错的选择。 二、贪吃蛇游戏基本规则 游戏规则 游戏目标控制一条蛇在屏幕上移动吃掉出现的食物每吃一个食物蛇的长度就会增加一节。控制方式通过键盘的上下左右键控制蛇的移动方向。游戏结束条件蛇撞到屏幕边界或者自己的身体时游戏结束。 基本思路 使用数组或链表来表示蛇的身体。通过改变蛇头的位置来控制蛇的移动。使用随机数来生成食物的位置。检测蛇头与食物、墙壁和自身身体的碰撞。 三、代码 首先绘制一个范围确定面积多大 #includestdio.h #includestring.h #includestdlib.h #includetime.h #includewindows.h #includeconio.h//设置地图边界 #define W 120 #define H 30//测试Ui界面多大 void text_ui() {for (int i 0;i H; i){for (int j 0;j W; j){printf();}printf(\n);} }int main() {text_ui();return 0;} 得到结果如下 整个游戏复制以下代码运行即可 #includestdio.h #includestring.h #includestdlib.h #includetime.h #includewindows.h #includeconio.h//设置地图边界 #define W 120 #define H 30//设置贪吃蛇结构体 typedef struct _body {int x; //坐标xint y; //坐标y }BODY;typedef struct snake {BODY list[W*H]; //贪吃蛇最大沾满整个地图int size; //实际身体个数。蛇头 蛇身 *BODY food; //食物 #COORD coord; //定位光标int dx; //移动方向int dy; //移动方向BODY tail; //记录蛇尾用于清除蛇尾痕迹int score; //记录分数 }SNAKE;//食物函数 void init_food(BODY* food) {//设置随机数种子srand(time(NULL));//设置食物坐标food-x rand() % (W - 1) 1;food-y rand() % (H - 1) 1; }//初始化蛇的函数 void init_snake(SNAKE *snake) {//设置蛇头与蛇尾的位置snake-list[0].x W / 2;snake-list[0].y H / 2;snake-list[1].x W / 2 - 1;snake-list[1].y H / 2 - 1;snake-size 2;//设置移动方向snake-dx 1;snake-dy 0;snake-score 0;//设置食物位置init_food((snake-food)); } //展示UI函数 void show_ui(SNAKE* snake) {//显示蛇for (int i 0;i snake-size;i){snake-coord.X snake-list[i].x;snake-coord.Y snake-list[i].y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), snake-coord);if (i 0) //显示蛇头{printf();}else{printf(*);}}//显示食物snake-coord.X snake-food.x;snake-coord.Y snake-food.y;//定位光标位置SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), snake-coord);printf(#);//清除蛇尾痕迹snake-coord.X snake-tail.x;snake-coord.Y snake-tail.y;//定位光标位置SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), snake-coord);printf( );} void show_wall() {for (int i 0;i H; i){for (int j 0;j W; j){if (i 0 || j 0 || i H || j W){printf();}else{printf( );}}printf(\n);} } /* 测试Ui界面多大 void text_ui() {for (int i 0;i H; i){for (int j 0;j W; j){printf();}printf(\n);} } */void hide_cur()//隐藏光标 {CONSOLE_CURSOR_INFO cci;cci.dwSize sizeof(cci);cci.bVisible FALSE;SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), cci); }void move_snake(SNAKE* snake) //移动函数 {snake-tail snake-list[snake-size - 1];for (int i snake-size - 1; i 0; i--){snake-list[i] snake-list[i - 1];}snake - list[0].x snake-dx;snake - list[0].y snake-dy; }void contorl_snake(SNAKE *snake) {char key0;while (_kbhit()) //判断是否按下按键按下不等于0{key _getch();}switch (key){casew:snake - dy -1;snake - dx 0;break;cases:snake-dy 1;snake-dx 0;break;casea:snake-dy 0;snake-dx -1;break;cased:snake-dy 0;snake-dx 1;break;}}void snake_eat_food(SNAKE* snake) //吃食物函数 {if (snake-list[0].x snake-food.x snake-list[0].y snake-food.y){snake-size;init_food((snake-food));snake-score 10;} }void game_over(SNAKE *snake) {snake-coord.X 110;snake-coord.Y 65;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), snake-coord);printf(游戏结束总分数%d\n, snake-score); }void start_game(SNAKE *snake) {while (snake-list[0].x0 snake-list[0].xW snake-list[0].y0 snake-list[0].y H){show_ui(snake); //显示蛇和食物contorl_snake(snake); //控制蛇snake_eat_food(snake); //判断是否吃到食物move_snake(snake); //移动蛇Sleep(100); //延时100毫秒}game_over(snake); }int main(int argc, char* argv[]) {hide_cur(); //隐藏光标//text_ui();SNAKE* snake (SNAKE*)malloc(sizeof(SNAKE));init_snake(snake); //初始化show_wall(); //显示墙start_game(snake);free(snake);while (1);return 0; } 代码解析 头文件包含 stdio.h标准输入输出头文件。string.h字符串操作头文件。stdlib.h标准库头文件包含内存分配等函数。time.h时间操作头文件用于生成随机数。windows.hWindows API 头文件用于控制台操作。conio.h控制台输入输出头文件用于非缓冲输入。 宏定义 W 和 H 分别定义了游戏地图的宽度和高度。 结构体定义 BODY用于存储蛇的身体部分的坐标。SNAKE包含蛇的身体、食物、方向、分数等信息。 函数定义 init_food初始化食物的位置。init_snake初始化蛇的位置和方向。show_ui显示蛇和食物。show_wall显示游戏的边界。hide_cur隐藏控制台光标。move_snake根据蛇的方向移动蛇的身体。contorl_snake通过键盘输入控制蛇的移动方向。snake_eat_food判断蛇是否吃到食物并更新蛇的长度和分数。game_over游戏结束时显示分数。start_game游戏的主循环控制游戏的流程。 主函数 main程序的入口点初始化游戏隐藏光标显示边界并开始游戏循环。
http://www.w-s-a.com/news/624011/

相关文章:

  • 金寨县住房和城乡建设部网站网页作业怎么做一个网站
  • 做ppt模板网站有哪些内容wap是什么意思卡老师
  • 网站建设一定要域名吗网站后台关键词设置
  • 标书制作公司网站坪山网站建设哪家便宜
  • 防止做网站的人修改数值门户网站架构
  • 电子项目外包网站考二建需要什么学历和专业
  • 做网站推广引流效果好吗电商推广技巧
  • 亦庄网站建设价格广州网站推广服务
  • 十大免费ppt网站下载重庆在线高校平台登录
  • 做环保网站案例百度seo教程
  • 体育用品网站模板网站建设话术
  • 潍坊网站建设服务商做网站多久能盈利
  • 嘉定区做网站房产信息查询官网
  • 网站直播间 是怎么做的唐山论坛建站模板
  • 深圳洲聚网站建设wordpress 泛解析
  • 五金东莞网站建设技术支持wordpress 添加模板
  • 网站申请专利春节网页设计素材
  • 进网站备案md风格的wordpress主题
  • 如何建站网站十大免费建站app
  • 工作号做文案素材的网站晋城网站设计人
  • 建设部网站官网 施工许可怎样建网站 需要
  • 什么网站都能打开的浏览器同城小程序怎么推广
  • 在电脑上怎么做网站网址seo分析
  • 石家庄做网站网络公司电子商务营销推广
  • 网站开发 前端专做婚礼logo的网站
  • 同创企业网站建设拖拽建设网站源码
  • wordpress调用网站标题网站页面排版
  • 哈尔滨营销网站建设电子商城网站开发要多少钱
  • 免费织梦导航网站模板下载地址自己建站网站
  • 获取网站访客qq号码代码做抽奖网站违法吗