C语言实现贪吃蛇游戏(命令行)
这是一个纯C语言写的贪吃蛇游戏,供大家参考,具体内容如下
#include#include #include #include #include #defineSNAKE_LENGTH100//定义蛇的最大长度 #defineSCREEN_WIDETH80 #defineSCREEN_HEIGHT30 //定义每一节蛇的坐标 structcoor{ intx; inty; }; //枚举方向 enumCH{ right=VK_RIGHT, left=VK_LEFT, up=VK_UP, down=VK_DOWN }; //定义蛇的属性 structsnake{ intlen;//当前蛇的长度 structcoorcoord[SNAKE_LENGTH];//每一节蛇的坐标 enumCHCH;//定义蛇的方向 intSPEED; intflag;//定义蛇的状态1表示存活0表示死亡 }snake; //光标移动函数 voidgotoxy(intx,inty) { COORDpos; pos.X=x; pos.Y=y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos); } //初始化游戏界面 voidinit_sence() { //初始化上下墙 for(inti=0;i =100)snake.SPEED-=50; } elseif(GetAsyncKeyState(VK_F2)) { if(snake.SPEED<=3000)snake.SPEED+=100; } //根据检测到的方向改变蛇头的位置 switch(snake.CH) { caseright:snake.coord[1].x+=2;break; caseleft:snake.coord[1].x-=2;break; caseup:snake.coord[1].y-=1;break; casedown:snake.coord[1].y+=1;break; } } //画出蛇 voiddraw_snake() { //画出蛇头 gotoxy(snake.coord[1].x,snake.coord[1].y); printf("□"); //画出蛇身,直接一个for循环实现 for(inti=2;i<=snake.len;i++) { gotoxy(snake.coord[i].x,snake.coord[i].y); printf("□"); } //擦掉尾巴 gotoxy(snake.coord[snake.len].x,snake.coord[snake.len].y); printf(""); //遍历每一节蛇 for(inti=snake.len;i>1;i--) { snake.coord[i].x=snake.coord[i-1].x; snake.coord[i].y=snake.coord[i-1].y; } gotoxy(0,0); printf("■"); gotoxy(85,25); printf("得分:%d",snake.len-1); } //产生食物 voidcreatfood() { //随机种子生成 srand((unsigned)time(NULL)); if(food.flag) while(1) { food.x=rand()%80; food.y=rand()%30; if(food.x%2==0&&food.x>=2&&food.x<=78&&food.y>1&&food.y<30) { intflag=0; //判断产生的食物可不可能在蛇的身体上 for(inti=1;i<=snake.len;i++) { if(snake.coord[i].x==food.x&&snake.coord[i].y==food.y) { flag=1; break; } } if(flag)continue; //绘制食物 else { gotoxy(food.x,food.y); printf("⊙"); food.flag=0; break; } } } food.flag=0; } //判断蛇是否吃到食物 voideatfood() { //只需要判断蛇头是否与食物重合 if(food.x==snake.coord[1].x&&food.y==snake.coord[1].y) { snake.len+=1; food.flag=1; } } //判断蛇是否死掉 voidSnakeState() { if(snake.coord[1].x<2||snake.coord[1].x>78||snake.coord[1].y<1||snake.coord[1].y>29) snake.flag=0; for(inti=2;i<=snake.len;i++) { if(snake.coord[1].x==snake.coord[i].x&&snake.coord[1].y==snake.coord[i].y) snake.flag=0; } }
更多有趣的经典小游戏实现专题,分享给大家:
C++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏玩不停
java经典小游戏汇总
javascript经典小游戏汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。