既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取
三、贪吃蛇游戏源码
源码里部分重要代码已经加上了注释,如果想研究的朋友可以私信我与我交流
源码如下:
/\* 项目名称:贪吃蛇 作者: 微凉秋意 开发环境:VS2022+easyx \*/ #include<time.h> //辅助生成随机数种子 #include<stdio.h> //C语言标准输入输出库 #include<conio.h> //键盘输入 #include<graphics.h> //easyx图像库,提供函数,绘图和贴图 #define MAX\_SNAKE 500 //蛇的最大节数 #define WIN\_WIDTH 640 //游戏窗口的宽度 #define WIN\_HEIGHT 480 //游戏窗口的高度 //枚举 enum Dir { //枚举,从上往下代表0,1,2,3 UP, DOWN, LEFT, RIGHT }; //食物结构体 struct Food { int x; int y; DWORD color; bool flag; //是否被吃掉,决定是否重新生成 }food; //蛇每个节点的位置和颜色 struct P { int x; int y; DWORD color;//DWORD是数据类型,可包含字符串 }; //设计蛇的结构体 struct Snake { int num; //当前节数 int dir; //方向 int score; //得分 int size; //蛇的宽和高 int speed; //移动速度 struct P coor[MAX_SNAKE]; //表示每节蛇的坐标,数组表示 }snake; //初始化游戏函数 void GameInit() { //设置随机数种子 srand((unsigned int)time(NULL)); snake.num = 3; snake.dir = RIGHT;//初识移动方向为右 snake.score = 0; snake.size = 10; snake.speed = 10; //初始化蛇有三个节点 snake.coor[0].x = 320; snake.coor[0].y = 240; snake.coor[0].color = (RGB(rand()%256, rand() % 256, rand() % 256));//随机生成颜色 snake.coor[1].x = 310; snake.coor[1].y = 240; snake.coor[1].color = (RGB(rand()%256, rand() % 256, rand() % 256));//随机生成颜色 snake.coor[2].x = 300; snake.coor[2].y = 240; snake.coor[2].color = (RGB(rand()%256, rand() % 256, rand() % 256));//随机生成颜色 //初始化食物 food.x = rand() % (WIN_WIDTH/10)\*10;//这样写的目的是让食物坐标为10的倍数 food.y = rand() % (WIN_HEIGHT/10)\*10; food.color = RGB(rand() % 256, rand() % 256, rand() % 256);//随机生成食物颜色 food.flag = true; } //绘制游戏所需资源 void DrawGame() { cleardevice();//刷新窗口 //绘制蛇 for (int i = 0; i < snake.num; i++) { //设置图形填充颜色 setfillcolor(snake.coor[i].color); //画矩形 fillrectangle(snake.coor[i].x, snake.coor[i].y, snake.coor[i].x + 10, snake.coor[i].y+10); } //绘制食物(椭圆) if (food.flag) { setfillcolor(food.color); solidellipse(food.x, food.y, food.x + 10, food.y + 10); } //绘制分数 char temp[20] = " "; sprintf(temp, "分数:%d", snake.score); outtextxy(10, 10, temp);//报错的话是因为字符集问题 /\*解决方案如下: \* 1、打开项目属性,把常规改为多字节 \* 2、打开项目属性,C/C++常规设置里把SDL检查关掉 \*/ } //蛇移动 void MoveSnake() { //从尾部开始移动 for (int i =snake.num-1 ;i > 0;i--) { snake.coor[i].x = snake.coor[i - 1].x; snake.coor[i].y = snake.coor[i - 1].y; } switch (snake.dir) { case UP: snake.coor[0].y -= snake.speed; if (snake.coor[0].y < 0) { snake.coor[0].y = WIN_HEIGHT; } break; case DOWN: snake.coor[0].y += snake.speed; if (snake.coor[0].y > WIN_HEIGHT) { snake.coor[0].y = 0; } break; case LEFT: snake.coor[0].x -= snake.speed; if (snake.coor[0].x < 0) { snake.coor[0].x = WIN_WIDTH; } break; case RIGHT: snake.coor[0].x += snake.speed; if (snake.coor[0].x > WIN_WIDTH) { snake.coor[0].x = 0; } break; } } void GameControl() { //获取键盘输入,\_getch();不回显函数: char key = \_getch(); switch (key) { //72代表上,80代表下,75代表左,77代表右 case 72: if (snake.dir!=DOWN)//如果正在往下,则不能掉头往上 { snake.dir = UP; } break; case 80: if (snake.dir != UP)//如果正在往上,则不能掉头往下 { snake.dir = DOWN; } break; case 75: if (snake.dir !=RIGHT)//如果正在往右,则不能掉头往左 { snake.dir = LEFT; } break; case 77: if (snake.dir != LEFT)//如果正在往左,则不能掉头往右 { snake.dir = RIGHT; } break; } } //吃食物 void CreatFood() { if (!food.flag) { food.x = rand() % (WIN_WIDTH / 10) \* 10;//这样写的目的是让食物坐标为10的倍数 food.y = rand() % (WIN_HEIGHT / 10) \* 10; food.color = RGB(rand() % 256, rand() % 256, rand() % 256);//随机生成食物颜色 food.flag = true; } } void EatFood() { //食物存在且坐标对应,吃掉后节数加一,食物变为不存在 if (food.flag && snake.coor[0].x == food.x && snake.coor[0].y == food.y) { food.flag = false; snake.num++; snake.score += 10; snake.coor[snake.num].color = food.color; CreatFood(); } } int main(void) { //1.创建窗口,initgraoh初始化 graphics 图形窗口 initgraph(WIN_WIDTH,WIN_HEIGHT); setbkcolor(RGB(190,190,190));//设置颜色 cleardevice(); //刷新窗口 GameInit(); //调用初始化 while (1) {   网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。 [需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/) 一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长! 习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。 [需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/) 一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
讯享网



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/35993.html