用C语言实现贪吃蛇小游戏

这篇文章主要为大家详细介绍了用C语言实现贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现贪吃蛇小游戏的具体代码,供大家参考,具体内容如下

实现功能

蛇最开始三节,向右移动。用户可以通过按上下左右来控制蛇的移动,食物随机产生,蛇吃到食物后蛇的身体会变长。蛇撞墙或者撞到自己身体后,游戏结束。

怎么实现

要实现一个贪吃蛇小游戏,首先要想清楚游戏里有什么,怎样实现功能。

很明显游戏中只有两样东西,蛇和食物。
所以要建立蛇和食物信息,然后将蛇和食物进行初始化,在将蛇和食物画出来。

实现的功能有:

 1. 蛇的移动
 2. 按键控制蛇的移动
 3. 食物的产生
 4. 蛇吃食物后蛇身体变长
 5. 游戏的结束

用结构体建立蛇和食物的信息

 struct COOR{//位置,x,y坐标 int x; int y; }; struct SNAKE{//蛇的基础信息 int size;//节数 int speed;//运动速度 char dir;//运动方向 struct COOR xy[MAX];//位置 }snakes; struct FOOD{//食物信息 struct COOR fooddir;//食物位置 int flag;//判断食物是否被吃掉,1未被吃掉,0被吃掉 }food;

实现功能的函数:

蛇:

 void snakeInit(){//初始化蛇的信息 void drawSnake(){//画蛇 void moveSnake(){//蛇的移动 void coorSnake(){//按键控制蛇的运动方向

食物:

 void initFood(){//初始化食物的信息 void drawFood(){//画食物

其它:

 int gameOver(){//游戏结束情况 void gameInit(){//初始化窗口范围

代码

 #include #include #include #include #include #include #define MAX 200 HWND hwnd = NULL; enum DIR{//枚举移动方向 UP, DOWN, LEFT, RIGHT, }; struct COOR{//位置,x,y坐标 int x; int y; }; struct SNAKE{//蛇的基础信息 int size;//节数 int speed;//运动速度 char dir;//运动方向 struct COOR xy[MAX];//位置 }snakes; struct FOOD{//食物信息 struct COOR fooddir;//食物位置 int flag;//判断食物是否被吃掉,1未被吃掉,0被吃掉 }food; void snakeInit(){//初始化蛇的信息 snakes.size = 3;//开始节数 snakes.dir = RIGHT;//开始运动方向 snakes.speed = 10; int i = 0; for (; i 0; i--){//蛇身跟着舌头运动 snakes.xy[i].x = snakes.xy[i-1].x; snakes.xy[i].y = snakes.xy[i-1].y; } switch (snakes.dir){ case UP: snakes.xy[0].y-=snakes.speed; break; case DOWN: snakes.xy[0].y+=snakes.speed; break; case LEFT: snakes.xy[0].x-=snakes.speed; break; case RIGHT: snakes.xy[0].x+=snakes.speed; break; default: break; } } void coorSnake(){//按键控制蛇的运动方向 if (_kbhit()){ //等待获取按键 char c = _getch();//获得按键 switch (c){ case 72: case'w': if (snakes.dir != DOWN){ snakes.dir = UP; } break; case 80: case's': if (snakes.dir != UP){ snakes.dir = DOWN; } break; case 75: case'a': if (snakes.dir != RIGHT){ snakes.dir = LEFT; } break; case 77: case'd': if (snakes.dir != LEFT){ snakes.dir = RIGHT; } break; default: break; } } } void initFood(){//初始化食物的信息 food.flag = 1; while (1){ START: food.fooddir.x = rand() % 63 * 10;//食物位置随机 food.fooddir.y = rand() % 47 * 10; for (int i = 0; i  635 || snakes.xy[0].y > 478){ MessageBox(hwnd, "GAME OVER!","你撞墙了!", MB_OK); return 1; } for (int i = 1; i 

以上就是用C语言实现贪吃蛇小游戏的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » C语言