文末有贪吃蛇代码全览,代码有十分细致的注释!!!
文末有贪吃蛇代码全览,代码有十分细致的注释!!!
文末有贪吃蛇代码全览,代码有十分细致的注释!!!

码文不易,给个免费的小星星和免费的赞吧,关注也行呀(⑅•͈ᴗ•͈).:*♡ 

不要白嫖哇(⁍̥̥̥᷄д⁍̥̥̥᷅ ू )伤心

目录

1 课题分析

1.1研究背景与现状

1.2研究意义与研究步骤

2 设计概述

2.1 项目具体内容

2.2 系统框图

2.2.1程序结构图

2.2.2游戏流程图

2.2.3查看规则界面流程图

2. 系统模块划分

3 详细设计说明

3.1 主菜单界面设计说明

3.1.1 设计说明

3.1.2 功能展示

3.2 查看规则界面设计说明

3.2.1 设计说明

3.2.2 功能展示

3.3 开始游戏界面设计说明

3.3.1 设计说明

3.3.2 功能展示

4 结论


设计题目: 贪吃蛇大作战

设计内容与要求:

设计内容:

使用C语言编程,设计出贪吃蛇游戏功能。其中该项目主要分为三个界面,分别是菜单界面,规则界面和游戏主体界面。

创新点: 将蛇身单一颜色变为随游戏进程变化的彩虹色,修改速度机制和分数奖励机制,新增鼠标交互式菜单,增强游戏体验。

设计要求:

通过游戏设计巩固C语言知识,合理规范书写函数并正确调用。运用easyx增加拓展性内容,理解所使用函数的方法。

设计中遇到报错及时调试分析,查阅资料,对同一功能进行多方法比较使用,确保代码正确,正常运行。

指导教师:

年 月 日

1 课题分析


1.1研究背景与现状

随着计算机行业迅速发展,也涌现了多种热门编程语言,作为使用十分广泛的高级程序设计语言,C语言程序开发学习尤为重要,其绘图能力强,可移植性,具有强大数据处理能力的特点,适于编写系统软件、图形和动画。

当今游戏成为时下比较流行的一种消遣方式,贪吃蛇这款游戏正好符合大众心理,适应人群广泛,具有很强的娱乐性和交互性,可以丰富人们娱乐时间。

贪吃蛇作为一款小游戏,运行简单,易上手,游戏机制的刺激性强,能引人入胜,爱不释手,且相较于大型游戏的长时间消耗,贪吃蛇对碎片化娱乐时间更具有合理性,可以做到简单易行,满足人们需求。

本文主要目的为研究并设计C语言贪吃蛇游戏,利用EasyX Graphics Library免费绘图库实现游戏画面,函数设计与调用,制定游戏规则与运行机制,并在Windows控制台主机输出画面,实现游戏运行。

1.2研究意义与研究步骤

研究意义:

在快节奏社会中,人们时间更加紧凑,娱乐休闲时间也显得十分紧促,在大型游戏受众范围广的情况下,轻游戏和快游戏更紧贴胃口,在碎片化时间里让用户得到更满足的快节奏娱乐体验。

通过贪吃蛇小游戏,人们不仅可以在休闲时间娱乐,还可以在游戏中记录自己的分数记录,在一次次挑战中提升自我,游戏的用意也是告诉人们不断向前,突破自我,向着目标前行才能取得成功。同时,研究C语言课程设计,编写贪吃蛇游戏,可以锻炼思维,熟悉代码运用,有利于为未来项目开发积累经验,全面发展。

研究步骤:

(1)设计: 游戏最重要的是界面显示设计,要考虑游戏窗体大小,文字内容提示,让用户在打开游戏过程中有良好的运行体验,明确每个功能的作用与游戏操作。其次是设计流畅良好的键鼠操作,让玩家有更良好的交互反馈。

(2)游戏程序测试是关键步骤。每增加一个游戏功能函数,就要对其进行实例测试,确保代码无报错、贪吃蛇运行过程无误、游戏界面无不良输出。并在键鼠交互保证其流畅性和稳定性,为用户提供良好的游戏体验。

2 设计概述


2.1 项目具体内容

该项目通过C程序语言以及EasyX Graphics Library绘图库设计出贪吃蛇游戏程序。其中该项目主要分为三个界面,分别是主菜单界面,规则界面和开始游戏界面。

通过主菜单界面我们可以进入开始游戏界面,通过鼠标交互点击按钮,即可开始游戏,游戏可实时计分。在查看规则界面可以看到贪吃蛇游戏规则设定,并查看游戏历史最高分。如果想退出游戏,便可在主菜单选择退出按钮结束程序运行。

2.2 系统框图

2.2.1程序结构图

贪吃蛇游戏程序主要由主菜单界面,游戏界面,规则界面和退出游戏界面构成如图2-1所示。

图2-1 程序结构图

2.2.2游戏流程图

游戏的主体由几个函数构成,分别为游戏初始化函数,画面显示函数,分数读写函数,交互函数,下面是游戏运行的流程图,如图2-2所示:

图2-2 游戏流程图

2.2.3查看规则界面流程图

查看规则界面由读取最高分、界面文字输出和鼠标按钮交互实现,定义结构体鼠标,判断其行为,如果不点击按钮,则处于规则界面不进行任何操作,如图2-3所示:

图2-3 规则界面流程图

2. 系统模块划分

课程项目设计中,贪吃蛇游戏主要分为三个界面,分别是菜单界面,规则界面和游戏主体界面。模块划分为主菜单模块、游戏初始化、画面显示、蛇移动模块、与键盘输入有关的更新(即键盘控制蛇的移动方向)、与输入无关的更新(移动速度控制),奖励机制、分数模块

在主菜单界面设计当中,我们通过easyx图形库来设计出按钮的选项,并对界面着色,通过监控鼠标左键的行为及鼠标点击位置来判断用户所选择的按钮选项,以此实现交互,完成界面跳转

当选择“开始游戏”选项,则进入游戏开始函数,进行游戏的初始化和最高分读取,对蛇及画面进行初始化,而后进入循环,当不满足游戏的失败条件,界面就会一直更新绘图,确保游戏的持续进行

其中在贪吃蛇游戏的速度机制和奖励机制分别做了改良,速度可以同时满足长按方向键加速前进,并且吃的食物越多,速度越快;分数奖励机制则满足一定的阈值限定,每当吃的食物达到一定程度,分数会以倍数增加,提高奖励分。

在游戏失败结算界面中,我们添加了分数显示,更直观地看到此局游戏中用户所得分数,而在分数模块,会进行txt文件读写操作,如果玩家分数大于最高分,则此局分数覆盖最高分。

3 详细设计说明


3.1 主菜单界面设计说明

3.1.1 设计说明

主菜单界面运用图形库的绘画功能,绘画出按钮矩形,并在按钮输出提示文字,让玩家理解其功能作用,并通过while函数时刻监控鼠标消息,当鼠标左键单击时,再进行if判断语句,当符合其中一个按钮的点击位置时,就进入该if语句中的函数,实现跳转功能

3.1.2 功能展示

主菜单界面如图3-1所示。

图3-1 主菜单界面

3.2 查看规则界面设计说明

3.2.1 设计说明

查看规则界面功能:在查看规则界面中,玩家可以了解规则事项以及游戏涉及到的按键操作,同时在此界面显示最高分,让玩家有一个游戏目标,在了解相关规则后,玩家可以点击按钮返回主菜单,选择开始游戏或退出游戏。

具体实现:实现的界面展示与主菜单一致,读取最高分则利用到编写的分数读写函数,把txt文件中的分数读取并显示于界面上

3.2.2 功能展示

查看规则界面如图3-2所示。

图3-2查看规则界面

3.3 开始游戏界面设计说明

3.3.1 设计说明

开始游戏界面功能:实现游戏的主体,绘画蛇、食物与游戏界面,键盘操作贪吃蛇移动吃食物,界面展示最高分,并随着进程进行,实时记录分数,当游戏结束时,弹出结算画面字样

具体实现:通过设置画布大小确定界面,并画横竖线把画布分为小方格,计算固定的像素值,把每个矩形方格都一一对应方格数组。在游戏初始化时遍历该数组来绘画蛇以及食物,此后每一次画面更新,都会遍历数组刷新蛇的长度和食物位置。

实时记录分数则通过定义一个int变量,根据分数机制增加对应数值,然后转化成char类型存入字符数组,再将其输出至画面。

游戏结算界面则通过判断蛇头所处位置,让全局变量改变数值,跳出游戏的循环,并输出相应文字。

3.3.2 功能展示

游戏界面如图3-3图3-4所示。

图3-3 游戏界面

图3-4 游戏结算界面

4 结论


通过一个学期的C语言课程的学习,我与我的组员对c语言有了更深一步的了解。从一开始的什么都不会,自己一点点慢慢的摸索。发现书本上学到的东西还是很不够的,还有好多东西需要课外的学习。对于贪吃蛇,知道了它的实现原理,学会了对程序的模块设计、数据结构设计的简单分析。并通过源码分析讲述了各个模块的实现方法。在几个模块的实现过程中渗透了部分图形功能函数。通过本文的编写过程 ,掌握了以下几点知识点:

1.图形系统的初始化和关闭

2.各种画图函数的使用

3.结构体的定义

5.函数嵌套及调用

6.键盘操作

总的来说,编程还是一个很需要耐心的工作,特别是有bug找不出来的时候,特别需要我静下心来好好研究。很多时候都没有耐心改下去了。这次学习对我们组的耐心是一个极大的磨砺,收获还是蛮多的,在这次课程设计中我们巩固了C语言知识,学会了合理规范书写函数并正确调用,并且能够运用easyx增加拓展性内容,最重要的是发现了自己的不足之处。

我们接下来会再接再厉,不断实践,不断突破自己,争取做出更好的作品。

附录:

贪吃蛇程序如下:

#include <graphics.h>
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <cstdio>#define  Width 40        //宽40格
#define Height 30       //高30格
#define Size 20         //格子大小:20int blocks[Width][Height] = {0};       //用以表示所有方格
char moveDir;           //表示运动方向
char oldmove;           //旧的移动方向
int fx, fy;             //food食物坐标
int addspeed = 15;     //控制初始速度
int failure = 0;       //用以判断游戏是否失败,失败赋值为 1
int score = 0;         //记录分数
int max = 0;           //记录最高分
int k = 1;             //奖励机制初始值
char num[20];           //输出分数数组
char best[20];          //最高分数组 void initGame();
void show();            //图像绘制更新显示函数
void WithInput();       //与输入有关的更新
void WithoutInput();    //与输入无关的更新
void movesnake();       //蛇的移动函数
void readscore();       //读取分数
void writescore();      //写入分数
void ShowWord();        //界面文字
void drawmenu();        //主菜单
void gamestart();       //开始游戏
void seerule();         //查看规则
void back();            //退出游戏int main() {              drawmenu();return 0;
}     void initGame() {     int i;initgraph(1000, 600);     //①初始化绘图窗口,格子个数乘格子大小即为长度setbkcolor(CYAN);        //设置背景颜色BeginBatchDraw();       //easyx中实现批绘图功能的函数,可以消除图像闪烁cleardevice();            //使用当前背景色清空绘图设备setlinecolor(WHITE); //划线颜色为白色for (i = Size; i < Width * Size+1; i += Size) {     //用for循环绘制多条线line(i, 0, i, Height * Size);              //竖线坐标从x1(i,0)-> y1(i,Height * Size)}for (i = Size; i < Height * Size; i += Size) {line(0, i, Width * Size, i);             //横线坐标从x2(0,i) -> y2(Width * Size, i)}moveDir = oldmove = 'd';           //初始化默认蛇行进方向朝右blocks[Width / 2][Height / 2] = 1;               /*正中间画蛇头,蛇为赋值的方格0则为空白区域*/for (i = 1; i < 4; i++) {blocks[Width / 2 - i][Height / 2] = i + 1; //y坐标不变,更改x坐标,在蛇头后方画蛇身}srand(time(0));                                    //srand函数产生一个时间种子,从而达到真正的随机效果fx = rand() % (Width - 1) + 1;                   //随机数除39取余并+1,则为食物所生成的格子x坐标fy = rand() % (Height - 1) + 1;                    //随机数除取余并+1,则为食物所生成的格子y坐标
}      void show() {            cleardevice();for (int i = 0; i < Width; i++) {               //遍历所有方格,更新蛇的颜色for (int j = 1; j < Height; j++) {if (blocks[i][j] != 0) {setfillcolor(HSVtoRGB(blocks[i][j] * 10, 0.9, 1));   //HSV转RGB颜色,色调H 0°->360°,此处设置每长一个蛇身,提升10°色调,饱和度0.9,明度1}else{setfillcolor(CYAN);                 //否则更新为正常背景颜色}fillrectangle(i * Size, j * Size, (i + 1) * Size, (j + 1) * Size);      //填充,(参数为左上角和右下角坐标)}}setfillcolor(LIGHTGREEN);                     //食物颜色fillrectangle(fx * Size, fy * Size, (fx + 1) * Size, (fy + 1) * Size);ShowWord();FlushBatchDraw();              /*BeginBatchDraw执行后,任何绘图操作都将暂时不输出到绘图窗口上直到执行 FlushBatchDraw 或 EndBatchDraw 才将之前的绘图输出。*/
}void ShowWord() {if (failure) {settextcolor(LIGHTRED);                     //设置字体颜色settextstyle(80, 0, _T("宋体"));                //设置字体样式setbkmode(TRANSPARENT);outtextxy(240, 220, "游戏失败");settextstyle(40, 0, _T("宋体"));sprintf(num, "%d", score);                       //将int转换为char并存入num中outtextxy(260, 360, "分数:");                    //显示的字体及坐标outtextxy(380, 360, num);}else {                                              //②settextcolor(BLACK);                         //设置分数颜色settextstyle(25, 0, _T("隶书"));                //设置字体样式setbkmode(TRANSPARENT);                         //设置当前设备图案填充和文字输出时的背景模式,THANSPARENT为透明背景sprintf(num, "%d", score);                     //将int转换为char并存入num中outtextxy(860, 40, "分数:");                 //显示的字体及坐标outtextxy(940, 42, num);outtextxy(845, 73, "最高分:");sprintf(best, "%d", max);outtextxy(940, 75, best);}
}
void readscore() {                                      //③FILE* fpread = fopen("score.txt", "r");             //以只读的方式打开文件if (fpread == NULL) {return;}fscanf(fpread, "%d", &max);fclose(fpread);
}void writescore() {FILE* fpWrite = fopen("score.txt", "w");           //"w"打开并写入文本文件.(若不存在则新建,反之,则从头写,覆盖原内容)if (fpWrite == NULL) {return ;}fprintf(fpWrite, "%d", score);fclose(fpWrite);
}void WithInput() {if (_kbhit() && failure == 0) {//键盘输入控制蛇的方向char input = _getch();if (input == 'a' || input == 's' || input == 'd' || input == 'w') {moveDir = input;//设定规则:当向某一方向行动时,按下反向键不起作用(防止误触导致判断为咬到蛇身游戏失败),强制将按下的反向键变为当前运动方向if (moveDir == 'a' && oldmove == 'd') {moveDir = 'd';}else if (moveDir == 's' && oldmove == 'w') {moveDir = 'w';}else if (moveDir == 'd' && oldmove == 'a') {moveDir = 'a';}else if (moveDir == 'w' && oldmove == 's') {moveDir = 's';}else {oldmove = input;}movesnake();}}
}void WithoutInput() {if (failure) {                //先判断是否失败,失败则返回return;}//Sleep(100);             //更新速度控制蛇的移动速度,但使用sleep会产生键盘控制与画面的延迟,所以不使用//movesnake();static int speed = 1;       //设置一个静态变量speed,利用循环特定次数来触发movesnake函数speed++;if (speed == addspeed) {   //每15帧移动一次,同时实现长按方向键加快蛇的移动速度movesnake();speed = 1;}
}void movesnake() {int i, j;//对蛇进行更新,蛇每个格数值都+1,以便后面预备一个数值为1的新蛇头,当吃到食物时,新蛇头改变颜色加入蛇身中for (i = 0; i < Width; i++) {for (j = 0; j < Height; j++) {if (blocks[i][j] != 0) {blocks[i][j]++;}}}int oldhx, oldhy, oldtx, oldty;            //旧蛇头和旧蛇尾的坐标int tailblock = 0;for (i = 0; i < Width; i++) {for (j = 0; j < Height; j++) {if (tailblock < blocks[i][j]) {tailblock = blocks[i][j];  //遍历找出最大值即为蛇尾oldtx = i;oldty = j;}if (blocks[i][j]==2) {            //寻找旧蛇头oldhx = i;oldhy = j;}}}//根据蛇的运动方向来赋值新蛇头的xy坐标int newhx = oldhx, newhy = oldhy;        //定义新蛇头switch (moveDir) {case'a':newhx -= 1;break;case's':newhy += 1;break;case'd':newhx += 1;break;case'w':newhy -= 1;break;}//判断游戏是否失败if (newhx >= Width || newhx < 0 || newhy >= Height || newhy < 0 || blocks[newhx][newhy] != 0) {failure = 1;return;}//令蛇头方格值为1blocks[newhx][newhy] = 1;//对吃到食物以及蛇尾的处理             ⑤if (newhx == fx && newhy == fy) {      //吃到食物,重新随机数生成新食物坐标score = score + k;                  //吃到食物分数+kif (score % 2 == 0) {              //通过判断吃食物的数量来叠加奖励分k = k + 1;}if (score > max) {                    //与最高分判断,条件成立才能覆盖最高分writescore();                    //写入最高分}//④if (score) {                     //“加速”判断,通过判断分数增大的取值,加快蛇的运动速度,score不为0时进入该判断语句if (score % 2 == 0) {          //便于测试结果明显,设置每吃2个食物,蛇速度加快1帧addspeed--;}}fx = rand() % (Width - 1) + 1;      fy = rand() % (Height - 1) + 1;}else{                                 //未吃到食物blocks[oldtx][oldty] = 0;}}void drawmenu() {MOUSEMSG m;                 //定义结构体鼠标minitgraph(600, 600);      //定义画布大小setbkcolor(CYAN);           //设置背景颜色cleardevice();              //使用当前背景色清空绘图设备,类似system(cls)的刷新setfillcolor(WHITE); //方框颜色fillrectangle(140, 50, 460, 170);         //矩形左上角xy坐标和右下角xy坐标fillrectangle(120, 220, 480, 350);           //矩形左上角xy坐标和右下角xy坐标fillrectangle(100, 400, 500, 540);           //矩形左上角xy坐标和右下角xy坐标settextcolor(BLACK);                     //设置字体颜色settextstyle(50, 0, _T("楷体"));            //设置字体格式setbkmode(TRANSPARENT);                     //去除文字背景outtextxy(200, 85, "开始游戏");               //文字输出位置的xy坐标outtextxy(200, 260, "查看规则");outtextxy(200, 445, "退出游戏");while (1) {m = GetMouseMsg();                     //获取一个鼠标消息if (m.x >= 140 && m.x <= 460 && m.y >= 50 && m.y <= 170) {        //判断鼠标点击的位置if (m.uMsg == WM_LBUTTONDOWN) {        //当鼠标按下左键gamestart();                   //开始游戏}}else if (m.x >= 120 && m.x <= 480 && m.y >= 220 && m.y <= 350) {if (m.uMsg == WM_LBUTTONDOWN) {       //当鼠标按下左键seerule();                 //查看规则}}else if (m.x >= 100 && m.x <= 500 && m.y >= 400 && m.y <= 540) {if (m.uMsg == WM_LBUTTONDOWN) {       //当鼠标按下左键back();                    //关闭菜单退出游戏}}}
}void gamestart() {readscore();     //读取最高分initGame();          //游戏初始化while (1) {          //循环进行界面实时刷新,直至游戏判定失败show();         //界面显示WithoutInput();   //先调用与输入无关的更新WithInput();   }
}void seerule() {MOUSEMSG m;                    //定义结构体鼠标mreadscore();              //读取历史最高分initgraph(600, 600);       //定义画布大小setbkcolor(CYAN);           //设置背景颜色cleardevice();              //使用当前背景色清空绘图设备,类似system(cls)的刷新setfillcolor(WHITE); //方框颜色fillrectangle(100, 400, 500, 540);            //矩形左上角xy坐标和右下角xy坐标settextcolor(BLACK);                     //设置字体颜色settextstyle(50, 0, _T("楷体"));            //设置字体格式setbkmode(TRANSPARENT);                     //去除文字背景outtextxy(200, 445, "返回菜单");settextcolor(BLACK);                      //设置字体颜色settextstyle(30, 0, _T("楷体"));            //设置字体格式setbkmode(TRANSPARENT);                     //去除文字背景outtextxy(45, 30, "WASD控制蛇移动,长按方向键可加速移动");outtextxy(45, 80, "碰到墙壁游戏失败");outtextxy(45, 130, "吃的食物越多,分数奖励越高");outtextxy(45, 180, "历史最高分:");sprintf(best, "%d", max);outtextxy(220, 180, best);while (1) {m = GetMouseMsg();                       //获取一个鼠标消息if (m.x >= 100 && m.x <= 500 && m.y >= 400 && m.y <= 540) {if (m.uMsg == WM_LBUTTONDOWN) {      //当鼠标按下左键drawmenu();                    //返回主菜单}}}
}void back() {closegraph();     //关闭画面exit(0);          //退出程序
}

C语言贪吃蛇课程设计实验报告(包含贪吃蛇项目源码)相关推荐

  1. c语言图形时钟编程,C语言图形时钟课程设计实验报告.doc

    C语言图形时钟课程设计实验报告.doc 目录 1.系统功能要求 . 2. 数据结构设计及 说明 . 3.程序结构(画流程图) . 4.各模块的功能 . 5.试验结果(包括输入数据和输出结果) . 6. ...

  2. c语言时钟报告,C语言图形时钟课程设计实验报告

    C语言图形时钟课程设计实验报告 目录1.系统功能要求.2. 数据结构设计及说明.3.程序结构(画流程图) .4.各模块的功能.5.试验结果(包括输入数据和输出结果) .6.体会.7.参考文献.8.附录 ...

  3. part1:推荐一些适合练手、课程设计、毕业设计的python小项目源码,无任何下载门槛

    人生苦短,我用python,随着python这些年的流行,很多人开始使用python来实现各种功能.下面推荐一些适合用来练手.大学生课程设计作业.大学生毕业设计的python小项目,尤其适合新手,源码 ...

  4. C语言课程设计服装店,《C语言程序设计》课程设计实验报告-服装网店信息管理系统.doc...

    #include #ifndef TYPE_H_INCLUDED #define TYPE_H_INCLUDED #define SCR_ROW 25 /*屏幕行数*/ #define SCR_COL ...

  5. python贪吃蛇的实验报告_贪吃蛇游戏课程设计实验报告

    DOC 可编辑修改 -------- 为你整理各种最新最全办公范文 -------- 双击可以删除 爱心 --- 用心 --- 恒心 贪吃蛇游戏课程设计实验报告 辽 宁 科 技 大 学 课程设计说明书 ...

  6. 湖北汽车工业学院c语言程序设计 汽车零部件采购管理程序,湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统).docx...

    湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统) C语言课程设计 商品销售信息管理系统 #include #include #include #include structproduct// ...

  7. c++语言程序设计教程与实验实验报告,C++程序设计课程设计实验报告—网络五子棋...

    C++程序设计课程设计实验报告-网络五子棋 计算机学院 实验报告 课程名称: C++程序设计课程设计 开课学期: 2010-2011学年第2学期 院 班: 计算机学院 093 指导老师: 项目题目: ...

  8. c语言课程设计实验报告模板,[C语言课程设计实验报告模板.doc

    [C语言课程设计实验报告模板 <程序设计基础> 课程设计报告 课程设计题目 通讯录管理系统 指导教师:____李 萍____ 班 级:__ 0903班_ _ __ 学生姓名:2009100 ...

  9. c语言实验与课程设计 李开,华中科技大学C语言课程设计实验报告及源代码.doc...

    华中科技大学C语言课程设计实验报告及源代码 课 程 设 计 报 告 题目: 航班时刻表信息查询系统 课程名称: C语言程序设计 专业班级: 学 号: 姓 名: 指导教师: 报告日期: 计算机科学与技术 ...

最新文章

  1. Specification使用notin
  2. [老贴]《asp.net高级编程》读书笔记(2)
  3. 国家队基金押注,国内商用车ADAS龙头进军乘用市场
  4. [GRYZ2015]快排练习
  5. fir滤波器c++程序_电气信息类专业课程之matlab系统仿真 第三章 滤波器的种类(1)...
  6. ASP.NET Core依赖注入解读amp;使用Autofac替代实现
  7. onlyoffice启用HTTPS
  8. C#使用LitJson解析JSON
  9. installshield 安装包失败问题
  10. 数据结构:图的基本概念
  11. 颜值评分,图像识别,植物、动物、车型、菜品、logo识别
  12. 233621蓝牙2.1无线音箱B700A小测
  13. 百度ai平台接口使用记录
  14. 2021.4.2项目阶段报告
  15. Linux磁盘配额(EXT4XFS)
  16. AVM环视拼接方法介绍
  17. freshman refresh
  18. Springboot整合redis+jedis
  19. 三输入,八输出译码器门级实现
  20. AMD,CMD,UMD 三种模块规范 写法格式

热门文章

  1. Java绘图库JFreeChart的详细使用教程(入门级)
  2. 【数据恢复方法】误删了Word文档如何恢复?
  3. Java 向上转型 向下转型 instanceof
  4. 疯狂猜图(点击图片放大)
  5. 使用 apktool 对apk 签名
  6. vue 多条件密码强度校验
  7. 游戏开发手记:战斗模块设计
  8. java面试准备什么东西_关于Java面试,你应该准备这些知识点
  9. 反思:乔布斯和丹尼斯·里奇的去世
  10. [转载]计算机视觉研究群体及专家主页汇总_拔剑-浆糊的传说_新浪博客