C语言开发实现贪吃蛇游戏

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

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

1、最好用VS运行
2、用到的函数有:_kbhit _getch EasyX图形库内一系列函数
3、蛇身与食物用矩形画的

代码如下:

 #include #include   //easyx头文件 #include #include /********************设置各种属性**********************/ //坐标属性 typedef struct point { int x, y; }PYINT; //蛇 struct snake { PYINT xy[100];    //蛇的每节坐标放到数组中 int position;    //方向 int num;       //长度 }SNAKE; //食物 struct food{ PYINT fdxy; int flag;      //是否存在 int grade;      //成绩 }FOOD; //枚举:方向 //也可用宏 #define enum position { up, down, left, right }; /**********************对蛇的操作*****************************/ //初始化蛇 //蛇的每节为 10x10填充的矩形 void initsnake() { SNAKE.xy[0].x = 0; SNAKE.xy[0].y = 0; //数组第一个元素为蛇头 SNAKE.xy[1].x = 10; SNAKE.xy[1].y = 0; SNAKE.xy[2].x = 20; SNAKE.xy[2].y = 0; SNAKE.position = right; //方向  (随便给) SNAKE.num = 3;      //数量 (随便给) } //画蛇 void Drawsnake() { for (int i = 0; i  0; i--) { SNAKE.xy[i].x = SNAKE.xy[i - 1].x; SNAKE.xy[i].y = SNAKE.xy[i - 1].y;  //使每个元素向前移动 } switch (SNAKE.position) { case up: SNAKE.xy[0].y -= 10; break; case down: SNAKE.xy[0].y += 10; break; //上下移动 X坐标不发生改变 case left: SNAKE.xy[0].x -= 10; break; case right: SNAKE.xy[0].x += 10; break; //左右移动 Y坐标不发生改变 } } /******************************按键操作*****************************************/ //当蛇向上运动时,按向下键无效(其他三个相同) void Keydown() { char ch = _getch(); switch (ch) { case 'W': case 'w': case 72:              //小键盘上的“向上” if (SNAKE.position != down)  //是否向下 SNAKE.position = up; break; case 'S': case 's': case 80:              //小键盘上的“向下” if (SNAKE.position != up)   //是否向上 SNAKE.position = down; break; case 'A': case 'a': case 75:             //小键盘上的“向左” if (SNAKE.position != right) //是否向右 SNAKE.position = left; break; case 'D': case 'd': case 77:              //小键盘上的“向右” if (SNAKE.position != left)  //是否向左 SNAKE.position = right; break; } } /******************************食物操作**************************************/ //初始化食物 void initfood() { FOOD.fdxy.x = rand() % 60 * 10; FOOD.fdxy.y = rand() % 40 * 10;           //把食物的坐标控制在游戏界面内 FOOD.flag = 1; //1代表存在食物 //FOOD.grade = 0; for (int i = 0; i  600 || SNAKE.xy[0].x <0 | snake.xy[0].y>400 || SNAKE.xy[0].y <0) //撞墙 { initgraph(800, 600); settextcolor(RED); outtextxy(600, 400, "你撞墙了"); settextcolor(YELLOW); settextstyle(50, 50, "楷体");   //字体样式 outtextxy(200, 250, "GAME OVER"); //指定位置输出字符串 return 1; } return 0; } /*****************************************************************************************/ int main() { initgraph(600, 400); setbkcolor(BLACK); //背景颜色 cleardevice();         //清屏:刷新屏幕 srand((unsigned int)time(NULL)); //随机数种子 initsnake(); Drawsnake(); while (1) { cleardevice(); //清屏 Movesnake(); Drawsnake(); if (FOOD.flag == 0) { initfood(); } Drawfood(); if (_kbhit()) {   //_kbhit: 检测是否有按键动作 Keydown(); } if (gameover()) {  //若函数返回1:结束游戏 break; } eatfood(); putgrade(); Sleep(100);  //延长时间 (即蛇移动的速度) } _getch();     //防止闪屏 closegraph();   //关闭窗口 return 0; } /**********************************************************/ //RGB(rand() % 255, rand() % 255, rand() % 255) 在三基色范围内随机产生 //记得安装EasyX插件

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

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

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