贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本。既简单又耐玩。该游戏通过控制蛇头方向吃蛋,从而使得蛇变得越来越长。
我们的今天的目标就是:用C语言来实现一个贪吃蛇项目,也不用太复杂,初学者能看懂就行!
贪吃蛇小程序,主要采用C语言描述,采用数组进行数据存储的图形化操作界面,会涉及一点点C++ 知识(特别少的一点点),但是有C语言基础就够用了,编译器:VS2019,会涉及部分库函数的安装及使用,不过也很简单啦!
效果展示:
看到了这个效果之后,那我们就动手来实现吧!
希望大家都能轻松实现这个项目!另外涉及到的include 需要额外安装图形库插件easyX哦~
代码如下:
includeincludeincludeincludeincludeinclude"snake.h"intscore =0;intgamespeed =100;//蛇运行速度staticvoidInit(void);/*图形驱动*/staticvoidClose(void);/*图形结束*/staticvoidGame_interface(void);/*游戏界面*/staticvoidGameOver(void);/*结束游戏*/staticvoidGamePlay(void);/*游戏过程*/staticvoidPrScore(void);/*输出成绩*//*主函数*/intmain(void){
Init();
Game_interface();
GamePlay();
Close();return0;
}/*图形驱动*/staticvoidInit(void){intgd=9,gm=2;
initgraph(&gd,&gm," ");
cleardevice();
}/* 开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙 */staticvoidGame_interface(void){inti;
setcolor(LIGHTCYAN);/*setbkcolor(LIGHTGREEN);*/setlinestyle(PS_SOLID,0,1);/*设置线型*/for(i=50;i<=600;i+=10)/*画边框*/{
rectangle(i,40,i+10,49);/*上边框*/rectangle(i,451,i+10,460);/*下边框*/}for(i=40;i<=450;i+=10)
{
rectangle(50,i,59,i+10);/*左边框*/rectangle(601,i,610,i+10);/*右边框*/}
}/* 游戏主函数 */staticvoidGamePlay(void){inti;
srand(time(NULL));/*随机数发生器*/food.yes =1;/*1表示需要出现新食物,0表示已经存在食物*/snake.life =0;/*活着*/snake.direction =1;/*方向往右*/snake.x[0] =100;
snake.y[0] =100;
snake.x[1] =110;
snake.y[1] =100;
snake.node =2;/*节数*/PrScore();/*输出得分*/while(1)/*可以重复玩游戏,压ESC键结束*/{while( !kbhit() )/*在没有按键的情况下,蛇自己移动*/{if(food.yes ==1)/*需要出现新食物*/{
food.x = rand()%400+60;
food.y = rand()%350+60;while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/food.x++;while(food.y%10!=0)
food.y++;
food.yes =0;/*画面上有食物了*/}if(food.yes ==0)/*画面上有食物了就要显示*/{
setcolor(GREEN);
rectangle(food.x,food.y,food.x +10,food.y -10);
}for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/{
snake.x[i] = snake.x[i-1];
snake.y[i] = snake.y[i-1];
}/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/switch(snake.direction)
{case1:
snake.x[0] +=10;break;case2:
snake.x[0] -=10;break;case3:
snake.y[0] -=10;break;case4:
snake.y[0] +=10;break;
}/* 从蛇的第四节开始判断是否撞到自己 */for(i=3;i
编程学习书籍分享:
编程学习视频分享:
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)最重要的是你可以在群里面交流提问编程问题哦!
对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!
网站声明:文章内容来源于网络,本站不拥有所有权,请认真核实,谨慎使用,本站不承担相关法律责任。