目录

1.创造棋盘

2.玩家下棋

3.电脑下棋

4.判断输赢

赢的判断(也是最难的):

行的判断:

列的判断:

主副对角线的判断(花费时间最长):

平局或者继续:

最后判断的全部代码

三个文件的代码

头文件的引用及函数的声明

测试部分

函数的实现

一个文件的代码

写完文章完的话


今天我要分享一个小游戏,五子棋游戏(由三子棋改编)。

比较重要的图片

首先用一个通用的do while游戏模式

void meun()
{printf("##############################\n");printf("########### 1. play ##########\n");printf("########### 0. exit ##########\n");printf("##############################\n");
}void test()
{int input = 0;srand((unsigned int)time(NULL));do{meun();printf("请输入你的选择:>");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("输入错误请重新输入\n");break;}} while (input);}int main(void)
{test();return 0;
}

然后给出game()函数怎么做

1.创造棋盘

先用三子棋为例

红色为一个二维数组的各个元素的位置,蓝色为空格先让数组元素赋值为空格。以便之后再人为赋值或者电脑赋值。

//数组元素的初始化
void InitBoard(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){show[i][j] = ' ';}}
}//设置棋盘
void DisplayBoard(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;printf("#");for (i = 0; i < row; i++){printf(" %d ", i + 1);if (i != row - 1){printf(" ");}}printf("\n");for (i = 0; i < row; i++){printf("%d", i + 1);for (j = 0; j < col; j++){printf(" %c ", show[i][j]);if (j != col - 1){printf("|");}else{printf("\n");}}if (i != row - 1){printf(" ");for (j = 0; j < col; j++){printf("---");if (j != col - 1){printf("|");}else{printf("\n");}}}}
}

2.玩家下棋

选择一个坐标,如果这个位置合法且没有被下过就下这里。注意:玩家并不都是程序员,所以访问数组元素的时候要注意下标。例如,玩家输入1 1,其实访问的是[0][0]下标的元素。

void PlayerBoard(char show[ROW][COL], int row, int col)
{int x = 0;int y = 0;while (1){printf("请输入你的坐标:>");scanf("%d%d", &x, &y);if (x >= 1 && x <= row && y >= 1 && y <= col && show[x - 1][y - 1] == ' '){show[x - 1][y - 1] = '*';break;}else{printf("输入错误,请重新输入\n");}}
}

3.电脑下棋

我这里的电脑下棋是随机的,用两个随机数作为坐标下棋.

用的是常用的rand()函数,用srand()撒播随机种子,srand()函数的参数用的是(unsigned int)time(NULL)。这里用了两个头文件#include<stdlib.h>和#include<time.h>

但是还要让这个随机数在一个范围内随机,所以需要用一个操作限制随机数——取余。例如,

10不在1-5之前,则10%5 + 1就在这个区域了。加一是让取余为0的数字进入范围。

//这里需要引用的头文件
#include<stdlib.h>
#include<time.h>//撒播随机种子
srand((unsigned int)time(NULL));//电脑下棋
void ComputerBoard(char show[ROW][COL], int row, int col)
{int x = 0;int y = 0;while (1){x = rand() % row + 1;//限制随机数y = rand() % col + 1;if (x >= 1 && x <= row && y >= 1 && y <= col && show[x - 1][y - 1] == ' '){show[x - 1][y - 1] = '#';break;}}
}

4.判断输赢

不管是人还是电脑,下完棋都要判断输赢尽快告诉玩家,中止游戏。

判断无非有四种情况:玩家赢电脑赢平局继续

人和电脑并不是下一步就停止了,所以用一个循环来然人和电脑不停地玩回合战。

总有一个时刻要分出输赢或平局,继续。用一个if语句来判断战局情况。

所以要设置一个函数来返回一个字符来展示战局情况。

在这个函数里,比较重要的是判断输赢,其次是平局,然后是继续。

判断输赢,其实只用判断赢了没有就可以(反正我也不会判断怎么输),所以在玩家或电脑每下一步棋就判断一次就行。其中还要对每一行、每一列、每个对角线(主副对角线)进行判断。

赢的判断(也是最难的):

行的判断:

先是每一行用一个大循环进行行移动,用count记录该行是否满足条件,再用一个循环进行行内有无满足条件的,如果有就让count++,continue。非则让count赋回原值,知道count满足游戏规则的数值EASY_COUNT(就是你要玩几子棋).

列的判断:

思路和行一样

//逐行判断for (i = 0; i < row; i++){int count = 1;for (j = 0; j < col - 1; j++){if (show[i][j] == show[i][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}//逐列判断for (i = 0; i < col; i++){int count = 1;for (j = 0; j < row - 1; j++){if (show[j][i] == show[j + 1][i] && show[j][i] != ' '){1;        count++;if (count == EASY_COUNT){return show[j][i];}continue;}count = 1;}}

主副对角线的判断(花费时间最长):

首先让对角线的判断分为两个模式(这两个模式是都要进行的):

一、从左上的右下我简称为右下。

二、从左下到右上我简称为右上。

并不是所有对角线都要进行判断。

如果玩的是三子棋,红色箭头的对角线就是没有必要判断的。不要着急,你可能会问不是五子棋吗?怎么又变三子棋了?你可以让棋盘变大,你可以改变EASY_COUNT的值让这个游戏变成5子棋,6子棋。

然后我要引用一个小算法减少不必要的时间浪费。

一个正方形边长是用n个数组成。

例如玩三子棋。你会发现如果横2竖2斜边是2,横3竖3斜边是3,横4竖4斜边是4,横5竖5斜边是5.没错这就是规律。现在玩三子棋那么我需要判断的对角线至少有三个能数的子。用右下(从左上到右下),应该分为两个阶段:红色和蓝色

先分析红色,限制行数应该是行数row减去EASY_COUNT的值。好吧蓝色你应该也会了,但是注意一点,蓝色比红色少一个对角线。

现在判断右上(从左下到右上):

先分析红色,这个简单,就是行数为EASY_COUNT这一行到行数为row那一行。蓝色:列数col减去EASY_COUNT的值为限制列数。

说了这么多,该代码了,但是要提醒一点注意我描述下标是玩家认为的下标并不是真实的下标,还是坐标1 1,其实是[0][0]元素的访问。

//主副对角线//1. 右上k = EASY_COUNT - 1;for (k; k < row; k++){int count = 1;for (i = k, j = 0; i != 0 && j != col - 1; i--, j++){if (show[i][j] == show[i - 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}k = col - EASY_COUNT;for (k; k > 0; k--){int count = 1;for (i = row - 1, j = k; i != 0 && j != col - 1; i--, j++){if (show[i][j] == show[i - 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}//右下k = row - EASY_COUNT;for (k; k >= 0; k--){int count = 1;for (i = k, j = 0; i != row - 1 && j != col - 1; i++, j++){if (show[i][j] == show[i + 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}k = col - EASY_COUNT;for (k; k > 0; k--){int count = 1;for (i = 0, j = k; i != row - 1 && j != col - 1; i++, j++){if (show[i][j] == show[i + 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}

平局或者继续:

这个比较简单,平局我用了一个函数IsFull()。

int IsFull(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){if (show[i][j] == ' '){return 0;}}}return 1;
}if (1 == IsFull(show, ROW, COL)){return 'Q';}else{return 'C';}

最后判断的全部代码

int IsFull(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){if (show[i][j] == ' '){return 0;}}}return 1;
}char IsWin(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;int k = 0;//逐行判断for (i = 0; i < row; i++){int count = 1;for (j = 0; j < col - 1; j++){if (show[i][j] == show[i][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}//逐列判断for (i = 0; i < col; i++){int count = 1;for (j = 0; j < row - 1; j++){if (show[j][i] == show[j + 1][i] && show[j][i] != ' '){1;     count++;if (count == EASY_COUNT){return show[j][i];}continue;}count = 1;}}//主副对角线//1. 右上k = EASY_COUNT - 1;for (k; k < row; k++){int count = 1;for (i = k, j = 0; i != 0 && j != col - 1; i--, j++){if (show[i][j] == show[i - 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}k = col - EASY_COUNT;for (k; k > 0; k--){int count = 1;for (i = row - 1, j = k; i != 0 && j != col - 1; i--, j++){if (show[i][j] == show[i - 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}//右下k = row - EASY_COUNT;for (k; k >= 0; k--){int count = 1;for (i = k, j = 0; i != row - 1 && j != col - 1; i++, j++){if (show[i][j] == show[i + 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}k = col - EASY_COUNT;for (k; k > 0; k--){int count = 1;for (i = 0, j = k; i != row - 1 && j != col - 1; i++, j++){if (show[i][j] == show[i + 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}if (1 == IsFull(show, ROW, COL)){return 'Q';}else{return 'C';}
}

三个文件的代码

头文件的引用及函数的声明

#include<stdio.h>
#include<stdlib.h>
#include<time.h>#define ROW 10//棋盘行数
#define COL 10//棋盘列数#define EASY_COUNT 5//你要玩的几子棋void InitBoard(char show[ROW][COL], int row, int col);void DisplayBoard(char show[ROW][COL], int row, int col);void PlayerBoard(char show[ROW][COL], int row, int col);void ComputerBoard(char show[ROW][COL], int row, int col);char IsWin(char show[ROW][COL], int row, int col);

测试部分

game.h是我自己的头文件的名字

#include"game.h"void meun()
{printf("##############################\n");printf("########### 1. play ##########\n");printf("########### 0. exit ##########\n");printf("##############################\n");
}void game()
{char show[ROW][COL] = { 0 };InitBoard(show, ROW, COL);DisplayBoard(show, ROW, COL);char ret = '\0';while (1){PlayerBoard(show, ROW, COL);DisplayBoard(show, ROW, COL);ret = IsWin(show, ROW, COL);if (ret != 'C'){break;}ComputerBoard(show, ROW, COL);DisplayBoard(show, ROW, COL);ret = IsWin(show, ROW, COL);if (ret != 'C'){break;}}if (ret == '*'){printf("玩家赢\n");}else if (ret == '#'){printf("电脑赢\n");}else{printf("平局\n");}}void meun()
{printf("##############################\n");printf("########### 1. play ##########\n");printf("########### 0. exit ##########\n");printf("##############################\n");
}void test()
{int input = 0;srand((unsigned int)time(NULL));do{meun();printf("请输入你的选择:>");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("输入错误请重新输入\n");break;}} while (input);}int main(void)
{test();return 0;
}

函数的实现

#include"game.h"void InitBoard(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){show[i][j] = ' ';}}
}void DisplayBoard(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;printf("#");for (i = 0; i < row; i++){printf(" %d ", i + 1);if (i != row - 1){printf(" ");}}printf("\n");for (i = 0; i < row; i++){printf("%d", i + 1);for (j = 0; j < col; j++){printf(" %c ", show[i][j]);if (j != col - 1){printf("|");}else{printf("\n");}}if (i != row - 1){printf(" ");for (j = 0; j < col; j++){printf("---");if (j != col - 1){printf("|");}else{printf("\n");}}}}
}void PlayerBoard(char show[ROW][COL], int row, int col)
{int x = 0;int y = 0;while (1){printf("请输入你的坐标:>");scanf("%d%d", &x, &y);if (x >= 1 && x <= row && y >= 1 && y <= col && show[x - 1][y - 1] == ' '){show[x - 1][y - 1] = '*';break;}else{printf("输入错误,请重新输入\n");}}
}void ComputerBoard(char show[ROW][COL], int row, int col)
{int x = 0;int y = 0;while (1){x = rand() % row + 1;y = rand() % col + 1;//printf("%d %d\n", x, y);if (x >= 1 && x <= row && y >= 1 && y <= col && show[x - 1][y - 1] == ' '){show[x - 1][y - 1] = '#';break;}}
}int IsFull(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){if (show[i][j] == ' '){return 0;}}}return 1;
}char IsWin(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;int k = 0;//逐行判断for (i = 0; i < row; i++){int count = 1;for (j = 0; j < col - 1; j++){if (show[i][j] == show[i][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}//逐列判断for (i = 0; i < col; i++){int count = 1;for (j = 0; j < row - 1; j++){if (show[j][i] == show[j + 1][i] && show[j][i] != ' '){1;     count++;if (count == EASY_COUNT){return show[j][i];}continue;}count = 1;}}//主副对角线//1. 右上k = EASY_COUNT - 1;for (k; k < row; k++){int count = 1;for (i = k, j = 0; i != 0 && j != col - 1; i--, j++){if (show[i][j] == show[i - 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}k = col - EASY_COUNT;for (k; k > 0; k--){int count = 1;for (i = row - 1, j = k; i != 0 && j != col - 1; i--, j++){if (show[i][j] == show[i - 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}//右下k = row - EASY_COUNT;for (k; k >= 0; k--){int count = 1;for (i = k, j = 0; i != row - 1 && j != col - 1; i++, j++){if (show[i][j] == show[i + 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}k = col - EASY_COUNT;for (k; k > 0; k--){int count = 1;for (i = 0, j = k; i != row - 1 && j != col - 1; i++, j++){if (show[i][j] == show[i + 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}if (1 == IsFull(show, ROW, COL)){return 'Q';}else{return 'C';}
}

一个文件的代码

我知道有人看不懂,那我就写在一个.c文件上吧,就是说你让代码复制,然后粘贴到你的编译器的.c文件里就可以直接用了。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>#define ROW 10//棋盘行数
#define COL 10//棋盘列数#define EASY_COUNT 5//你要玩的几子棋void InitBoard(char show[ROW][COL], int row, int col);void DisplayBoard(char show[ROW][COL], int row, int col);void PlayerBoard(char show[ROW][COL], int row, int col);void ComputerBoard(char show[ROW][COL], int row, int col);char IsWin(char show[ROW][COL], int row, int col);void InitBoard(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){show[i][j] = ' ';}}
}void DisplayBoard(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;printf("#");for (i = 0; i < row; i++){printf(" %d ", i + 1);if (i != row - 1){printf(" ");}}printf("\n");for (i = 0; i < row; i++){printf("%d", i + 1);for (j = 0; j < col; j++){printf(" %c ", show[i][j]);if (j != col - 1){printf("|");}else{printf("\n");}}if (i != row - 1){printf(" ");for (j = 0; j < col; j++){printf("---");if (j != col - 1){printf("|");}else{printf("\n");}}}}
}void PlayerBoard(char show[ROW][COL], int row, int col)
{int x = 0;int y = 0;while (1){printf("请输入你的坐标:>");scanf("%d%d", &x, &y);if (x >= 1 && x <= row && y >= 1 && y <= col && show[x - 1][y - 1] == ' '){show[x - 1][y - 1] = '*';break;}else{printf("输入错误,请重新输入\n");}}
}void ComputerBoard(char show[ROW][COL], int row, int col)
{int x = 0;int y = 0;while (1){x = rand() % row + 1;y = rand() % col + 1;//printf("%d %d\n", x, y);if (x >= 1 && x <= row && y >= 1 && y <= col && show[x - 1][y - 1] == ' '){show[x - 1][y - 1] = '#';break;}}
}int IsFull(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;for (i = 0; i < row; i++){for (j = 0; j < col; j++){if (show[i][j] == ' '){return 0;}}}return 1;
}char IsWin(char show[ROW][COL], int row, int col)
{int i = 0;int j = 0;int k = 0;//逐行判断for (i = 0; i < row; i++){int count = 1;for (j = 0; j < col - 1; j++){if (show[i][j] == show[i][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}//逐列判断for (i = 0; i < col; i++){int count = 1;for (j = 0; j < row - 1; j++){if (show[j][i] == show[j + 1][i] && show[j][i] != ' '){1;     count++;if (count == EASY_COUNT){return show[j][i];}continue;}count = 1;}}//主副对角线//1. 右上k = EASY_COUNT - 1;for (k; k < row; k++){int count = 1;for (i = k, j = 0; i != 0 && j != col - 1; i--, j++){if (show[i][j] == show[i - 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}k = col - EASY_COUNT;for (k; k > 0; k--){int count = 1;for (i = row - 1, j = k; i != 0 && j != col - 1; i--, j++){if (show[i][j] == show[i - 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}//右下k = row - EASY_COUNT;for (k; k >= 0; k--){int count = 1;for (i = k, j = 0; i != row - 1 && j != col - 1; i++, j++){if (show[i][j] == show[i + 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}k = col - EASY_COUNT;for (k; k > 0; k--){int count = 1;for (i = 0, j = k; i != row - 1 && j != col - 1; i++, j++){if (show[i][j] == show[i + 1][j + 1] && show[i][j] != ' '){count++;if (count == EASY_COUNT){return show[i][j];}continue;}count = 1;}}if (1 == IsFull(show, ROW, COL)){return 'Q';}else{return 'C';}
}void meun()
{printf("##############################\n");printf("########### 1. play ##########\n");printf("########### 0. exit ##########\n");printf("##############################\n");
}void game()
{char show[ROW][COL] = { 0 };InitBoard(show, ROW, COL);DisplayBoard(show, ROW, COL);char ret = '\0';while (1){PlayerBoard(show, ROW, COL);DisplayBoard(show, ROW, COL);ret = IsWin(show, ROW, COL);if (ret != 'C'){break;}ComputerBoard(show, ROW, COL);DisplayBoard(show, ROW, COL);ret = IsWin(show, ROW, COL);if (ret != 'C'){break;}}if (ret == '*'){printf("玩家赢\n");}else if (ret == '#'){printf("电脑赢\n");}else{printf("平局\n");}}void meun()
{printf("##############################\n");printf("########### 1. play ##########\n");printf("########### 0. exit ##########\n");printf("##############################\n");
}void test()
{int input = 0;srand((unsigned int)time(NULL));do{meun();printf("请输入你的选择:>");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("输入错误请重新输入\n");break;}} while (input);}int main(void)
{test();return 0;
}

写完文章完的话

如有错误可直接指出,希望和编程之路与伙伴共同进步。

最后,制作不易,觉得不错可以点赞。

C语言 五子棋游戏(也可n子棋)相关推荐

  1. c语言五子棋游戏源程序代码,C语言五子棋游戏源代码

    <C语言五子棋游戏源代码>由会员分享,可在线阅读,更多相关<C语言五子棋游戏源代码(12页珍藏版)>请在人人文库网上搜索. 1.include#define N 10void ...

  2. c语言五子棋游戏心得体会,下五子棋执白子之心得

    五子棋易学好懂,流传比较广泛,人们也将五子棋称为 连五子 . 连珠;下面是有下五子棋执白子之心得,欢迎参阅. 五子棋执白子之心得 1.防守执白棋最重要的就是防守,而防守的方法或技巧也就决定了是否能赢这 ...

  3. C语言--实现(三)井子棋小游戏(基础版)

    相信大家在生活中肯定知道和了解五子棋的玩法,三子棋的玩法和五子棋一样,当有三个一样的"棋子"连成一条线,不管是横竖斜,谁先完成这个条件,谁就获胜. 那大家有没有想过用编码的形式怎么 ...

  4. 【原创】【程序小游戏】平面四子棋 C++

    平面四子棋 事先声明: 代码是我自个儿写的,规则不是我发明的~~~~. 我觉得我真是太不务正业了! 规则 在一个7*12的棋盘里,下四子棋.只不过,这个棋盘是竖立着的,它的棋子是从上往下掉的. 比如说 ...

  5. 用Java写的简单五子棋游戏(原创五子连珠算法)

    源码jar包(已安装jdk环境可直接运行) 下载地址:http://download.csdn.net/detail/eguid_1/9532912 五子连珠算法为自创算法,对于五子棋该算法性能足以. ...

  6. 五子棋游戏-3(判断五子连心)

    最后是判断五子连心,将以下思路:从落子点开始检测4个方向 1.左右方向相同颜色的子是否达到5个 2.上下方向相同颜色的子是否达到5个 3.左斜方向相同颜色的子是否达到5个 4.右斜方向相同颜色的子是否 ...

  7. java 连珠五子棋.现代职业_用Java写的简单五子棋游戏(原创五子连珠算法)

    源码jar包(已安装jdk环境可直接运行) 五子连珠算法为自创算法,对于五子棋该算法性能足以. 该算法原理是这样的: 根据当前下子位置获取该位置上的4条直线8个方向的与当前棋子同色的棋子连珠数量,如果 ...

  8. c语言五子棋游戏报告,C语言五子棋游戏

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* 初始化游戏界面: 1.绘图环境 2.背景图片 3.背景音乐 4.绘制格子 5.绘制边界线 6.显示黑棋为玩家1,白棋为玩家2 下棋: 1.while ...

  9. c 语言五子棋游戏代码,C语言案例:控制台版本的五子棋游戏【代码】

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 return true; } x++; } return false; } bool isLeftInclinedWin(bool isBlack,int ...

最新文章

  1. 大一期末考试,python,测试题,含答案
  2. python批量读取文件夹中的所有excel文件-python遍历文件夹下所有excel文件
  3. Django值应用和分布式路由
  4. JMeter 正则表达式提取器(二)
  5. 间接银团贷款(Indirectly Syndicated Loan/PARTICIPATED)
  6. SpringBoot2.X 整合Redis实现简单缓存操作
  7. 将权限引入系统的探索
  8. iptraf:一个实用的TCP/UDP网络监控工具
  9. NB-IoT 备胎转正的背后,究竟意味着什么?
  10. mysql索引超出了数组接线_索引超出了数组界限如何解决?
  11. 计算机删除用户8,Win8.1如何删除账户?
  12. wx:key的使用及wx:key的值
  13. 穿上就不想脱下!这款火爆ins的夏季凉鞋,防滑,抗污,速干不臭脚!让你秒变型男!...
  14. php版本微信公众号开发
  15. linux秘钥对生成器,linux – GPG密钥生成器*不*使用熵
  16. 数学物理方程课程感想
  17. 深度学习利器之自动微分(2)
  18. Pycharm学生用户免费激活
  19. 【LeetCode 876】链表的中间结点
  20. 戏说python模块

热门文章

  1. python处理时间序列_Python——Pandas 时间序列数据处理
  2. 基于Keras的LSTM多变量时间序列预测(北京PM2.5数据集pollution.csv)
  3. Mybatis-笔记1
  4. 四川麻将必胜攻略笔记(入门篇1)
  5. [R语言学习笔记] - R语言及Rstudio配置合集
  6. 智慧物联下主机加固安全解决方案分析
  7. 盒子模型有时候会出现设置背景、边框无法撑大和设置内外间距异常,一般来说此类问题的原因是什么?
  8. 基于MATLAB的Rossler系统随参数变化的研究
  9. 【红包雨】活动红包雨实现逻辑(ionic+springboot)
  10. 洛谷P2448 无尽的生命 树状数组