今天分享一篇使用vs2010,配合easy-X图形库编写的五子棋控制台游戏。
自带游戏资源。 且免费下载

下面是百度网盘下载连接:
链接:https://pan.baidu.com/s/1MMJKNDvNJy5UvT9mtM30xw
提取码:4rvv

下载后,根据下图进行操作!

游戏棋盘是15 * 15 的,应该符合很多大专院校的期末大作业!!!

具体过程就不详细解释了,等哪天心情好就把他完善一下,使用C++的面向对象在搞一遍。

代码中关键地方也有注释,自己去看!!!

代码一共650行,其中很多地方都还可以去优化的,写了很多重复的代码,也写了很多垃圾代码。

不过游戏界面基本完善,游戏功能该有还是会有,比如 音乐, 悔棋等。

游戏还有一个BUG,当棋盘下满棋子也还没有分出胜负,程序是不会做任何操作的,唯有点击重新开始游戏或者退出游戏或者悔棋。我就懒得再加代码了,其实很简单的,有兴趣的小伙也可以自行完善一下!
思路:再写一个函数用于判断数组是否存满了(数组中已经没有0值了),如果满了,就显示“棋盘已满”的字体,然后等待用户点击开始游戏或者退出游戏即可。重新开始游戏后记得回复白棋先出,将悔棋记录删除掉,将数组全部值都赋值0.

或许还有其他的BUG是我没有发现的,有兴趣的也可以找一下!!!

另外代码运行需要的文件可以点击我的头像去下载,免费的!
或者点这里

对了,代码中有使用到vector容器作为悔棋记录,不懂的点这里!

不说了,上代码:

#include <iostream>
#include <Windows.h>
#include <graphics.h> // 图形库
#include <vector>     // 动态数组,该地方用于悔棋
#include <mmsystem.h> // 背景音乐// 加载 winmm.lid库文件
#pragma comment(lib,"winmm.lib")using namespace std;#define GRAPHICS_X 880
#define GRAPHICS_Y 780// 游戏棋盘
#define PLATE_X  30             //
#define PLATE_Y  50             /   棋盘的矩形的坐标值
#define PLATE_XX 50*14+PLATE_X
#define PLATE_YY 50*15          ///
// 偏移量
#define OFFSET   50 // 每个棋盘空格相隔50像素// 记录悔棋的容器
typedef struct VECTOR {vector<int> x;vector<int> y;
};
// 悔棋标志
VECTOR pullBack;    // 记录棋盘上一下好的棋子的坐标,好用于悔棋// 游戏初始化界面
void initgraphGame(void) {// 初始化图像界面initgraph(1080, 720);// 将图片应用于界面中loadimage(0, _T("begin-1.jpg"));// 设置字体颜色settextcolor(RGB(255, 255, 255));// 设置字体settextstyle(35, 0, _T("微软雅黑"));// 设置字体的背景颜色为透明setbkmode(TRANSPARENT);// 写字outtextxy(415, 60, _T("正在加载游戏...")); // 设置画笔粗细setlinestyle(PS_SOLID, 5);// 画一个空心矩形rectangle(220, 195, 820, 305);// 设置字体颜色settextcolor(RGB(0, 0, 0));// 设置字体settextstyle(120, 0, _T("微软雅黑"));// 写字outtextxy(244, 190, _T("编程使我快乐")); // 设置字体颜色settextcolor(RGB(255, 200, 88));// 写字outtextxy(110, 410, _T("欢迎进入五子棋游戏")); Sleep(3000);closegraph();
}// 游戏背景音乐
void music(void) {mciSendString("play Sunburst.mp3 repeat", 0, 0, 0);
}// 背景音乐标识
bool gameMusicFlag = true;// 游戏背景音乐开关
void musicFlag(void) {if (gameMusicFlag) {gameMusicFlag = false;mciSendString("pause Sunburst.mp3",NULL,0,NULL); // 暂停//mciSendString("close Sunburst.mp3",NULL,0,NULL);   // 停止} else {gameMusicFlag = true;music();}
}// 棋盘绘制
void plate(void) {// 设置画笔粗细setlinestyle(PS_SOLID, 2);for (int i=0; i<13; i++) {// 固定值加上一个偏移量line(PLATE_X, PLATE_Y+(OFFSET*(i+1)), PLATE_XX, PLATE_Y+(OFFSET*(i+1)));  // 行line(PLATE_X+(OFFSET*(i+1)), PLATE_Y, PLATE_X+(OFFSET*(i+1)), PLATE_YY);    // 纵}
}// 游戏 开始 和 结束 和 悔棋 和 音乐开关 和 五子棋 绘制
void gameButton(void) {// 设置画笔粗细setlinestyle(PS_SOLID, 2);// 设置字体颜色settextcolor(RGB(0, 0, 0));// 设置字体settextstyle(25, 0, _T("微软雅黑"));// 字体外的方框rectangle(760, 175, 850, 225);// 写字outtextxy(767, 185, _T("音乐开关")); // 字体外的方框rectangle(760, 250, 850, 300);// 写字outtextxy(767, PLATE_Y*5+10, _T("开始游戏")); // 字体外的方框rectangle(760, 450, 850, 500);// 写字outtextxy(767, 460, _T("结束游戏")); // 字体外的方框rectangle(760, 650, 850, 700);// 写字outtextxy(785, 662, _T("悔棋")); // 设置字体settextstyle(30, 0, _T("微软雅黑"));// 五子棋outtextxy(700/2, 10, _T("五子棋"));
}// 开始游戏提示
void gameHints(void) {// 设置画笔粗细setlinestyle(PS_SOLID, 2);// 设置字体颜色settextcolor(RGB(0, 0, 0));// 设置字体settextstyle(28, 0, _T("微软雅黑"));// 字体外的方框rectangle(760, 50, 850, 150);// 写字outtextxy(775, 65, _T("请点击")); outtextxy(763, 100, _T("开始游戏"));
}// 清楚提示
void deleteHints(void) {IMAGE image;loadimage(&image, _T("cheng.jpg"));putimage(758, 48, &image);
}// 游戏界面
void gameInterface(void) {// 初始化图像界面initgraph(GRAPHICS_X, GRAPHICS_Y);// 设置图像的背景颜色setbkcolor(RGB(255,200,88));// 应用到图像中cleardevice();// 设置画笔颜色setlinecolor(RGB(0,0,0));// 设置画笔粗细setlinestyle(PS_SOLID, 3);// 画一个空心矩形rectangle(PLATE_X, PLATE_Y, PLATE_XX, PLATE_YY);// 画棋板plate();// 游戏按钮gameButton();// 开始游戏提示gameHints();
}// 游戏选手
typedef struct PLAYER {int white;int black;
};
PLAYER player;  // 用于左上角提示选手下棋// frame of reference 坐标
typedef struct FOR {int x;int y;
};
FOR fofr;   // 用于更新数组// 鼠标坐标
typedef struct MOUSES {int x;int y;
};
MOUSES mouses;  // 用于下棋int Map[15][15] = {     // int Map[15][15] = {0};  <== 可以写成这样
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};IMAGE imageBlack; // 黑棋图片存储变量
IMAGE imageWhite;   // 白棋图片存储变量
// 游戏选手显示
void gamePlayerShow(void) {// 设置画笔粗细setlinestyle(PS_SOLID, 2);// 设置字体settextstyle(30, 0, _T("微软雅黑"));// 字体外的方框rectangle(750, 40, 860, 160);// 清除提示deleteHints();if (player.white) {// 设置字体颜色settextcolor(RGB(255, 255, 255));// 写字outtextxy(780, 52, _T("白方")); outtextxy(780, 80, _T("下棋"));// 预先加载图片loadimage(&imageWhite, _T("white.jpg"), 30, 30);// 显示棋子putimage(790, 110, &imageWhite);} else if (player.black) {// 设置字体颜色settextcolor(RGB(0, 0, 0));// 写字outtextxy(780, 52, _T("黑方")); outtextxy(780, 80, _T("下棋")); // 预先加载图片loadimage(&imageBlack, _T("black.jpg"), 30, 30);// 显示棋子putimage(790, 110, &imageBlack);} else {outtextxy(780, 52, _T("第三方")); outtextxy(780, 80, _T("下棋")); }
}// 鼠标事件:点击开始游戏与退出游戏
bool beginGame(void) {MOUSEMSG mouse;   // 鼠标变量while (1) {mouse = GetMouseMsg();   // 调用系统的函数// 如果有鼠标左键点击操作if (mouse.uMsg == WM_LBUTTONDOWN) {if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 250 && mouse.y < 300)) {return true;} else if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 450 && mouse.y < 500)) {return false;} else if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 175 && mouse.y < 225)) {musicFlag();   // 音乐控制continue;}}Sleep(10);    // 让CPU休息一下下}
}// 重新开始游戏
void newGame(void) {// 重新开始游戏gameInterface();   // 初始化地图for (int i=0; i<15; i++) {    // 地图全部置为零for (int j=0; j<15; j++) {Map[i][j] = 0;}}// 重新开始游戏,将悔棋标志清空pullBack.x.clear();pullBack.y.capacity();// 重新开始游戏之后,恢复白棋先出player.black = 0;player.white = 1;
}// 鼠标点击操作
int ifbool(void) {MOUSEMSG mouse;   // 鼠标变量while (1) {mouse = GetMouseMsg();   // 调用系统的函数// 如果有鼠标左键点击操作if (mouse.uMsg == WM_LBUTTONDOWN) {       // 下棋操作for (int i=0; i<15; i++) {for (int j=0; j<15; j++) {     // 判断鼠标的坐标是否在该区域if ((mouse.x >= i*50+PLATE_X-15 && mouse.x <= i*50+PLATE_X+15) &&(mouse.y >= j*50+PLATE_Y-15 && mouse.y <= j*50+PLATE_Y+15)) {// 等于零,该区域没有棋子if (Map[i][j] == 0) {fofr.x = i;        // 用于更新数组fofr.y = j;mouses.x = i*50+PLATE_X; // 用于下棋mouses.y = j*50+PLATE_Y;pullBack.x.push_back(i);   // 用于悔棋pullBack.y.push_back(j);return 1;} else {return 2;}} else if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 250 && mouse.y < 300)) {    // 重新开始游戏newGame(); // 重新开始游戏函数return 3;} else if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 650 && mouse.y < 700)) {      // 悔棋操作if (pullBack.x.size() > 0 && pullBack.y.size() > 0) {  // 大于零,说明有棋子记录,可以悔棋int x = pullBack.x[pullBack.x.size()-1];int y = pullBack.y[pullBack.y.size()-1];// 删除容器上的一个悔棋记录pullBack.x.pop_back();pullBack.y.pop_back();Map[x][y] = 0;// 重新加载游戏gameInterface();  // 初始化地图for (int i=0; i<15; i++) {    // 将地图上的棋子摆回来for (int j=0; j<15; j++) {if (Map[i][j] == 1) {loadimage(&imageWhite, _T("white.jpg"), 30, 30);putimage(i*50+PLATE_X-15, j*50+PLATE_Y-15, &imageWhite);} else if (Map[i][j] == 2) {loadimage(&imageBlack, _T("black.jpg"), 30, 30);putimage(i*50+PLATE_X-15, j*50+PLATE_Y-15, &imageBlack);}}}if (player.black == 1) {player.black = 0;player.white = 1;} else {player.black = 1;player.white = 0;}return 4;}} else if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 450 && mouse.y < 500)) {        // 推出游戏操作// 结束程序closegraph();exit(1);} else if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 175 && mouse.y < 225)) {musicFlag(); // 音乐控制continue;} }}}Sleep(10);}
}// 下棋
void playChess(void) {if (player.black) { // 如果为真// 预先加载图片loadimage(&imageBlack, _T("black.jpg"), 30, 30);// 将棋子下到棋板上面putimage(mouses.x-15, mouses.y-15, &imageBlack);player.black = 0;  // 下棋顺序标志player.white = 1; // 下棋顺序标志Map[fofr.x][fofr.y] = 2;  // 更新数组} else {// 预先加载图片loadimage(&imageWhite, _T("white.jpg"), 30, 30);// 将棋子下到棋板上面putimage(mouses.x-15, mouses.y-15, &imageWhite);player.black = 1;player.white = 0;Map[fofr.x][fofr.y] = 1;}
}// 提示该处已有棋子
void hint(void) {// 清除提示deleteHints();// 设置画笔粗细setlinestyle(PS_SOLID, 2);// 设置字体颜色settextcolor(RGB(0, 0, 0));// 设置字体settextstyle(25, 0, _T("微软雅黑"));// 字体外的方框rectangle(760, 50, 850, 150);// 写字outtextxy(788, 52, _T("此处")); outtextxy(768, 80, _T("已有棋子")); // 确认 字体外的方框rectangle(765, 110, 845, 145);// 设置字体settextstyle(25, 0, _T("微软雅黑"));// 写字outtextxy(790, 115, _T("确认")); MOUSEMSG mouse; // 鼠标变量while (1) {mouse = GetMouseMsg();   // 调用系统的函数// 如果有鼠标左键点击操作if (mouse.uMsg == WM_LBUTTONDOWN) {if ((mouse.x > 765 && mouse.x < 845) && (mouse.y > 90 && mouse.y < 145)) {// 清除提示deleteHints();break;} else if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 250 && mouse.y < 300)) {newGame();  // 重新开始游戏函数break;} else if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 450 && mouse.y < 500)) {// 结束程序closegraph();exit(1);} else if ((mouse.x > 760 && mouse.x < 850) && (mouse.y > 175 && mouse.y < 225)) {musicFlag();   // 音乐控制continue;}}Sleep(10);}
}void playGames(void);
// 执行胜利界面
void Victory(int victory) {Sleep(300);//closegraph();//initgraph(680, 417);//IMAGE image; 加载图片//loadimage(&image, _T("timg.jpg"));//putimage(0, 0, &image);settextstyle(77, 0, _T("微软雅黑"));// 设置字体的背景颜色为透明setbkmode(TRANSPARENT);if (victory == 1) {settextcolor(RGB(255, 255, 255));outtextxy(180, 150, _T("恭喜白棋获胜"));} else if (victory == 2) {settextcolor(RGB(0, 0, 0));outtextxy(180, 150, _T("恭喜黑棋获胜"));} else {outtextxy(200, 150, _T("参数有问题!"));}// 点击开始游戏if (beginGame()) {newGame(); // 重新加载游戏// 玩游戏playGames();} else {closegraph();exit(1);}/*system("pause");closegraph();exit(1);*/
}// 判断是否下完了五个一样的棋子
void ifVictory(void) {for (int i=0; i<15; i++) {for (int j=0; j<15; j++) {// 核心算法,游戏棋子判断if ((Map[i][j]==1 && Map[i-1][j-1]==1 && Map[i-2][j-2]==1 && Map[i-3][j-3]==1 && Map[i-4][j-4]==1) ||      // 左上角(Map[i][j]==1 && Map[i+1][j-1]==1 && Map[i+2][j-2]==1 && Map[i+3][j-3]==1 && Map[i+4][j-4]==1) ||       // 右上角(Map[i][j]==1 && Map[i-1][j+1]==1 && Map[i-2][j+2]==1 && Map[i-3][j+3]==1 && Map[i-4][j+4]==1) ||       // 左下角(Map[i][j]==1 && Map[i+1][j+1]==1 && Map[i+2][j+2]==1 && Map[i+3][j+3]==1 && Map[i+4][j+4]==1) ||       // 右下角(Map[i][j]==1 && Map[i][j-1]==1 && Map[i][j-2]==1 && Map[i][j-3]==1 && Map[i][j-4]==1) ||               // 上(Map[i][j]==1 && Map[i][j+1]==1 && Map[i][j+2]==1 && Map[i][j+3]==1 && Map[i][j+4]==1) ||             // 下(Map[i][j]==1 && Map[i-1][j]==1 && Map[i-2][j]==1 && Map[i-3][j]==1 && Map[i-4][j]==1) ||             // 左(Map[i][j]==1 && Map[i+1][j]==1 && Map[i+2][j]==1 && Map[i+3][j]==1 && Map[i+4][j]==1)) {             // 右Victory(1); // 执行胜利代码} else if ((Map[i][j]==2 && Map[i-1][j-1]==2 && Map[i-2][j-2]==2 && Map[i-3][j-3]==2 && Map[i-4][j-4]==2) ||     // 左上角(Map[i][j]==2 && Map[i+1][j-1]==2 && Map[i+2][j-2]==2 && Map[i+3][j-3]==2 && Map[i+4][j-4]==2) ||       // 右上角(Map[i][j]==2 && Map[i-1][j+1]==2 && Map[i-2][j+2]==2 && Map[i-3][j+3]==2 && Map[i-4][j+4]==2) ||       // 左下角(Map[i][j]==2 && Map[i+1][j+1]==2 && Map[i+2][j+2]==2 && Map[i+3][j+3]==2 && Map[i+4][j+4]==2) ||       // 右下角(Map[i][j]==2 && Map[i][j-1]==2 && Map[i][j-2]==2 && Map[i][j-3]==2 && Map[i][j-4]==2) ||               // 上(Map[i][j]==2 && Map[i][j+1]==2 && Map[i][j+2]==2 && Map[i][j+3]==2 && Map[i][j+4]==2) ||             // 下(Map[i][j]==2 && Map[i-1][j]==2 && Map[i-2][j]==2 && Map[i-3][j]==2 && Map[i-4][j]==2) ||             // 左(Map[i][j]==2 && Map[i+1][j]==2 && Map[i+2][j]==2 && Map[i+3][j]==2 && Map[i+4][j]==2)) {             // 右Victory(2); // 执行胜利代码}}}
}// 玩游戏
void playGames(void) {while (1) {gamePlayerShow();      // 选手下棋提示   int keyword = ifbool();    // 鼠标点击棋盘if (keyword == 1) {playChess();  // 下棋ifVictory();   // 判断是否下完了五个一样的棋子} else if (keyword == 2) {hint();            // 提示该处已有棋子} else if (keyword == 3) {// 已执行界面重新加载,清楚开始游戏提示deleteHints();} else if (keyword == 4) {// 已执行界面重新加载,清楚开始游戏提示deleteHints();}}
}int main(void) {// 白色为1,白棋先出player.black = 0;player.white = 1;// 加载游戏initgraphGame();// 背景音乐music();// 游戏界面gameInterface();// 开始游戏if (beginGame()) {// 玩游戏playGames();}return 0;
}

最后附上游戏截图:

C/C++ 五子棋游戏相关推荐

  1. 编写五子棋的完整python代码_python制作简单五子棋游戏

    本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下 #五子棋 '" 矩阵做棋盘 16*16 "+" 打印棋盘 for for 游戏是否结束 开 ...

  2. 基于python的游戏设计与实现-python五子棋游戏的设计与实现

    这个python的小案例是五子棋游戏的实现,在这个案例中,我们可以实现五子棋游戏的两个玩家在指定的位置落子,画出落子后的棋盘,并且根据函数判断出输赢的功能. 这个案例的思路如下所示: 首先,根据棋盘的 ...

  3. c语言五子棋开题报告,基于VC的五子棋游戏的设计与实现(附答辩记录)

    基于VC的五子棋游戏的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期检查报告,毕业论文12300字,程序) 摘 要:以计算机技术和网络技术为核心的现代网络技术已在现实生活和生产中得以 ...

  4. java五子棋悔棋代码_小猿圈前端编写JS五子棋游戏

    前段时间发的飞机大战的游戏很多小伙伴都私聊让再做个游戏,今天小猿圈web前端讲师为大家分享的是JS五子棋的游戏,想玩的小伙伴记得自己运行一下呦. JS五子棋游戏代码: 五子棋 canvas { dis ...

  5. 编写五子棋的完整python代码_python实现五子棋游戏(pygame版)

    本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下 目录 简介 实现过程 结语 简介 使用python实现pygame版的五子棋游戏: 环境:Windows系统+pytho ...

  6. ege函数库_基于c++ ege图形库实现五子棋游戏

    本文分享的五子棋实例,制作基于ege图像库, 首先需要安装配置ege环境 就可以编写小游戏了. 用到的ege库函数不多 , 主要是基于c++的. 先看界面效果: 输入界面:(就是控制台) 游戏胜利界面 ...

  7. android sdl,Android下SDL2实现五子棋游戏

    本文实例介绍了Android下用SDL2实现一个简单的五子棋游戏,分享给大家供大家参考,具体内容如下 1. Five.c // Five.c // SDL2 五子棋 // gcc -mwindows ...

  8. c语言改u3d游戏,使用Unity3D怎么制作一个五子棋游戏

    使用Unity3D怎么制作一个五子棋游戏 发布时间:2021-04-17 17:56:36 来源:亿速云 阅读:106 作者:Leah 本篇文章为大家展示了使用Unity3D怎么制作一个五子棋游戏,内 ...

  9. python写游戏棋牌游戏_使用python实现简单五子棋游戏

    使用python实现简单五子棋游戏 发布时间:2020-08-29 06:12:30 来源:脚本之家 阅读:73 作者:weixin_42874933 用python实现五子棋简单人机模式的练习过程, ...

  10. 五子棋人机对战_原生JS+Canvas实现五子棋游戏

    原生JS+Canvas实现五子棋游戏 效果图 主要功能模块为: 1.人机对战功能 2.悔棋功能 3.撤销悔棋功能 二.代码详解 2.1 人机对战功能实现 从效果图可以看到,棋盘的横竖可以放的位置为15 ...

最新文章

  1. 职业梦想是计算机的英语作文,我的梦想职业英语作文
  2. LINQ教程二:LINQ操作语法
  3. CentOS 6.4下安装中文输入法
  4. ajax catch,promise记得写上catch
  5. Spring Cloud Alibaba迁移指南(三):极简的 Config 1
  6. mysql之查询最近7天的数据
  7. 游戏开发如此简单?我直接创建了一个游戏场景【python 游戏实战 02】
  8. markdown公式大全
  9. [PHP]学生成绩管理系统
  10. echarts柱状图多组数据配置
  11. OSError: [WinError 1455] 页面文件太小,无法完成操作
  12. 跨境电商货源采购平台有哪些?
  13. English语法_定语从句 - 限定性与非限定性
  14. 3D大屏制作方法论终于来了!快码
  15. Mr.Xiong使用jQuery从控制器获取数据
  16. Android excludeFromRecents属性 隐藏任务栏中的APP
  17. 区块链100讲:加密货币隐私性概述
  18. CSC停止问题的解决
  19. Android24 怎么添加整体布局背景,更新安卓10可用设置valerie透明主题美化详细教程(2020.2.24)...
  20. 8通道1:2或2:1双向多路复用器/多路解复用器,GRANDMICRO有容微的ASW3810可以代完美替

热门文章

  1. matlab 使用svm进行分类含实例代码(适用于二分类和多分类)
  2. 蛇形印刷天线设计实战
  3. 经颅电刺激对生理和病理衰老过程中情景记忆的影响
  4. 47 Three.js使用THREE.ParametricGeometry生成平面图形、波浪图形、和克莱因瓶
  5. (JAVA)面向对象编程(基础部分)
  6. 周易正易 (2001刊行本影印_易經大意)
  7. isight调用matlab录像
  8. 00后大学生:无穷小微积分教材何在?
  9. 【中间件-keycloak】第一次改开源中间件keycloak总个结
  10. dreamweaver+cs5支持html5吗,如何让Dreamweaver CS5支持Html5