五子棋游戏(智能版)-c语言

本博客介绍了一个使用C语言编写的五子棋游戏,电脑AI采用智能策略,包括判断自身形成活四/冲四,阻止玩家形成活四/冲四,以及预防性布局。游戏代码分为test.c、game.h和game.c三个部分,欢迎大家优化和提供反馈。
摘要由CSDN通过智能技术生成

前面用数组知识写过一个三子棋的游戏,由于电脑下是瞎逼下(随机值),玩家很轻松就赢了,现在将电脑下改得更智能一些,并将三子棋扩展成了五子棋(9*9棋盘),依然是利用数组知识。

电脑下的主要规则如下:

1.先判断电脑是否将要成5,已有活4/冲4;

2.再判断玩家是否将要成5,已有活4/冲4,堵住玩家赢的路;

3.然后判断电脑是否将要成4,已有活3;

4.最后判断玩家是否将要成4,已有活3,堵住玩家赢的路;

此游戏中暂时先实现了这几个智能落子的功能

游戏效果如下:

 

​详细代码如下:

1.test.c

/*
date:2018/12/24
author:Better Me1
program:The Five Son Of Chess Games
compiler:Visual Studio 2013
*/

/*测试部分*/
#include "game.h"

void menu(){
	printf("************ 五子棋小游戏  ************\n");
	printf("******  1.进入游戏  2.退出游戏  ******\n");
	printf("**************************************\n");
}
void game(){
	char chess[ROW][COL] = { ' ' };
	InitBoard(chess, ROW, COL, ' ');//初始化
	DisplayBoard(chess, ROW, COL);//打印棋盘
	PlayGame(chess, ROW, COL);//玩游戏
}
void test(){
	int input = 0;
	while (input!=2){
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		system("cls");
		switch (input){
		case 1:
			game();
			break;
		case 2:
			printf("退出游戏!\n");
			break;
		default:
			printf("输入有误,请重新选择!\n");
			break;
		}
	}
}
void main(){
	test();
	system("pause");
}

2.game.h

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#define ROW 9
#define COL 9

void InitBoard(char board[ROW][COL], int row, int col, char set);
void DisplayBoard(char board[ROW][COL], int row,int col);
void PlayerMove(char board[ROW][COL], int row, int col);
int FiveSon(char board[ROW][COL], int row, int col, int k,char a,char b,char c);//用于检测成5,活4/冲4
int ThreeSon(char board[ROW][COL], int row, int col, int k, char a, char b, char c);//用于检测活3,成4
void ComputerMove(char board[ROW][COL], int row, int col);
int CheckWiner(char board[ROW][COL], int row, int col);
void PlayGame(char board[ROW][COL], int row, int col);

3.game.c

#define _CRT_SECURE_NO_WARNINGS 1

#include "game.h"
void InitBoard(char board[ROW][COL], int row, int col, char set){//初始化棋盘
	memset(board, set, row*col*sizeof(board[0][0]));
}
void DisplayBoard(char board[ROW][COL], int row, int col){    //打印棋盘
	int i = 0;
	int j = 0;
	for (i = -1; i < row; i++){
		for (j = -1; j < col; j++){
			if (i == -1){
				printf(" %d ",j+1);
			}
			else if (j == -1){
				printf(" %d ", i+1);
			}
			else{
				printf(" %c ", board[i][j]);
			} 
			if (j != col - 1){
				printf("|");
			}
		}
		printf("\n");
		if (i != row - 1){
			printf("---+---+---+---+---+---+---+---+---+---");
			printf("\n");
		}
	}
}
void PlayerMove(char board[ROW][COL], int row, int col){
	int i = 0;//横坐标
	int j = 0;//纵坐标
	while (1){
		printf("请输入放置棋子的坐标(如:a b):>");
		scanf("%d %d", &i, &j);
		if (i<1 || i>row || j<1 || j>col){
			printf("坐标输入错误,请重新输入!\n");
		}
		else if (board[i - 1][j - 1] != ' '){
			printf("此坐标已被棋子占用!请重新输入!\n");
		}
		else{
			break;
		}
	}
	system("cls");
	printf("玩家走:\n");
	printf("\n");
	board[i - 1][j - 1] = 'X';
}
int FiveSon(char board[ROW][COL], int row, int col, int k, char a, char b, char c){
	int i = 0;//横坐标
	int j = 0;//纵坐标
	//检测行中的成5,活4/冲4
	if (k == 1){
		for (i = 0; i < row; i++){
			for (j = 0; j < col - 4; j++){
				if (board[i][j] == board[i][j + 1] && board[i][j] == board[i][j + 2] &&
					board[i][j] == board[i][j + 3] && board[i][j] == a && board[i][j + 4] == b){
					board[i][j + 4] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i][j + 1] && board[i][j] == board[i][j + 2] &&
					board[i][j] == board[i][j + 4] && board[i][j] == a && board[i][j + 3] == b){
					board[i][j + 3] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i][j + 1] && board[i][j] == board[i][j + 3] &&
					board[i][j] == board[i][j + 4] && board[i][j] == a && board[i][j + 2] == b){
					board[i][j + 2] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i][j + 2] && board[i][j] == board[i][j + 3] &&
					board[i][j] == board[i][j + 4] && board[i][j] == a && board[i][j + 1] == b){
					board[i][j + 1] = c;
					k = 0;
					break;
				}
				if (board[i][j + 1] == board[i][j + 2] && board[i][j + 1] == board[i][j + 3] &&
					board[i][j + 1] == board[i][j + 4] && board[i][j + 1] == a && board[i][j] == b){
					board[i][j] = c;
					k = 0;
					break;
				}
			}
			if (k == 0){
				break;
			}
		}
	}
	//检测列中的成5,活4/冲4
	if (k == 1){
		for (j = 0; j < col; j++){
			for (i = 0; i < row - 4; i++){
				if (board[i][j] == board[i + 1][j] && board[i][j] == board[i + 2][j] &&
					board[i][j] == board[i + 3][j] && board[i][j] == a && board[i + 4][j] == b){
					board[i + 4][j] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j] && board[i][j] == board[i + 2][j] &&
					board[i][j] == board[i + 4][j] && board[i][j] == a && board[i + 3][j] == b){
					board[i + 3][j] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j] && board[i][j] == board[i + 3][j] &&
					board[i][j] == board[i + 4][j] && board[i][j] == a && board[i + 2][j] == b){
					board[i + 2][j] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 2][j] && board[i][j] == board[i + 3][j] &&
					board[i][j] == board[i + 4][j] && board[i][j] == a && board[i + 1][j] == b){
					board[i + 1][j] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j] == board[i + 2][j] && board[i + 1][j] == board[i + 3][j] &&
					board[i + 1][j] == board[i + 4][j] && board[i + 1][j] == a && board[i][j] == b){
					board[i][j] = c;
					k = 0;
					break;
				}
			}
			if (k == 0){
				break;
			}
		}
	}
	//检测斜角中的成5,活4/冲4
	//反斜
	if (k == 1){
		for (int m = row - 5; m >= 0; m--){
			for (i = m, j = 0; i < row - 4; i++){
				if (board[i][j] == board[i + 1][j + 1] && board[i][j] == board[i + 2][j + 2] &&
					board[i][j] == board[i + 3][j + 3] && board[i][j] == a && board[i + 4][j + 4] == b){
					board[i + 4][j + 4] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j + 1] && board[i][j] == board[i + 2][j + 2] &&
					board[i][j] == board[i + 4][j + 4] && board[i][j] == a && board[i + 3][j + 3] == b){
					board[i + 3][j + 3] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j + 1] && board[i][j] == board[i + 3][j + 3] &&
					board[i][j] == board[i + 4][j + 4] && board[i][j] == a && board[i + 2][j + 2] == b){
					board[i + 2][j + 2] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 2][j + 2] && board[i][j] == board[i + 3][j + 3] &&
					board[i][j] == board[i + 4][j + 4] && board[i][j] == a && board[i + 1][j + 1] == b){
					board[i + 1][j + 1] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j + 1] == board[i + 2][j + 2] && board[i + 1][j + 1] == board[i + 3][j + 3] &&
					board[i + 1][j + 1] == board[i + 4][j + 4] && board[i + 1][j + 1] == a && board[i][j] == b){
					board[i][j] = c;
					k = 0;
					break;
				}
				j++;
			}
			if (k == 0){
				break;
			}
		}
	}
	if (k == 1){
		for (int n = 1; n <= col - 4; n++){
			for (i = 0, j = n; i < row - 4; i++){
				if (board[i][j] == board[i + 1][j + 1] && board[i][j] == board[i + 2][j + 2] &&
					board[i][j] == board[i + 3][j + 3] && board[i][j] == a && board[i + 4][j + 4] == b){
					board[i + 4][j + 4] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j + 1] && board[i][j] == board[i + 2][j + 2] &&
					board[i][j] == board[i + 4][j + 4] && board[i][j] == a && board[i + 3][j + 3] == b){
					board[i + 3][j + 3] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j + 1] && board[i][j] == board[i + 3][j + 3] &&
					board[i][j] == board[i + 4][j + 4] && board[i][j] == a && board[i + 2][j + 2] == b){
					board[i + 2][j + 2] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 2][j + 2] && board[i][j] == board[i + 3][j + 3] &&
					board[i][j] == board[i + 4][j + 4] && board[i][j] == a && board[i + 1][j + 1] == b){
					board[i + 1][j + 1] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j + 1] == board[i + 2][j + 2] && board[i + 1][j + 1] == board[i + 3][j + 3] &&
					board[i + 1][j + 1] == board[i + 4][j + 4] && board[i + 1][j + 1] == a && board[i][j] == b){
					board[i][j] = c;
					k = 0;
					break;
				}
				j++;
			}
			if (k == 0){
				break;
			}
		}
	}
	//正斜
	if (k == 1){
		for (int m = row - 5; m >= 0; m--){
			for (i = m, j = col - 1; i < row - 4; i++){
				if (board[i][j] == board[i + 1][j - 1] && board[i][j] == board[i + 2][j - 2] &&
					board[i][j] == board[i + 3][j - 3] && board[i][j] == a && board[i + 4][j - 4] == b){
					board[i + 4][j - 4] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j - 1] && board[i][j] == board[i + 2][j - 2] &&
					board[i][j] == board[i + 4][j - 4] && board[i][j] == a && board[i + 3][j - 3] == b){
					board[i + 3][j - 3] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j - 1] && board[i][j] == board[i + 3][j - 3] &&
					board[i][j] == board[i + 4][j - 4] && board[i][j] == a && board[i + 2][j - 2] == b){
					board[i + 2][j - 2] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 2][j - 2] && board[i][j] == board[i + 3][j - 3] &&
					board[i][j] == board[i + 4][j - 4] && board[i][j] == a && board[i + 1][j - 1] == b){
					board[i + 1][j - 1] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j - 1] == board[i + 2][j - 2] && board[i + 1][j - 1] == board[i + 3][j - 3] &&
					board[i + 1][j - 1] == board[i + 4][j - 4] && board[i + 1][j - 1] == a && board[i][j] == b){
					board[i][j] = c;
					k = 0;
					break;
				}
				j--;
			}
			if (k == 0){
				break;
			}
		}
	}
	if (k == 1){
		for (int n = col - 5; n < col - 1; n++){
			for (i = 0, j = n; i < row - 4; i++){
				if (board[i][j] == board[i + 1][j - 1] && board[i][j] == board[i + 2][j - 2] &&
					board[i][j] == board[i + 3][j - 3] && board[i][j] == a && board[i + 4][j - 4] == b){
					board[i + 4][j - 4] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j - 1] && board[i][j] == board[i + 2][j - 2] &&
					board[i][j] == board[i + 4][j - 4] && board[i][j] == a && board[i + 3][j - 3] == b){
					board[i + 3][j - 3] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 1][j - 1] && board[i][j] == board[i + 3][j - 3] &&
					board[i][j] == board[i + 4][j - 4] && board[i][j] == a && board[i + 2][j - 2] == b){
					board[i + 2][j - 2] = c;
					k = 0;
					break;
				}
				if (board[i][j] == board[i + 2][j - 2] && board[i][j] == board[i + 3][j - 3] &&
					board[i][j] == board[i + 4][j - 4] && board[i][j] == a && board[i + 1][j - 1] == b){
					board[i + 1][j - 1] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j - 1] == board[i + 2][j - 2] && board[i + 1][j - 1] == board[i + 3][j - 3] &&
					board[i + 1][j - 1] == board[i + 4][j - 4] && board[i + 1][j - 1] == a && board[i][j] == b){
					board[i][j] = c;
					k = 0;
					break;
				}
				j--;
			}
			if (k == 0){
				break;
			}
		}
	}
	return k;
}
//用于检测活3,成4
int ThreeSon(char board[ROW][COL], int row, int col, int k, char a, char b, char c){
	int i = 0;//横坐标
	int j = 0;//纵坐标
	//行
	if (k == 1){
		for (i = 0; i < row; i++){
			for (j = 0; j < col - 4; j++){
				if (board[i][j + 1] == board[i][j + 2] && board[i][j + 1] == board[i][j + 3] &&
					board[i][j] == board[i][j + 4] && board[i][j + 1] == a && board[i][j + 4] == b){
					board[i][j + 4] = c;
					k = 0;
					break;
				}
				if (board[i][j + 1] == board[i][j + 2] && board[i][j + 1] == board[i][j + 4] &&
					board[i][j] == board[i][j + 3] && board[i][j + 1] == a && board[i][j + 3] == b){
					board[i][j + 3] = c;
					k = 0;
					break;
				}
				if (board[i][j + 1] == board[i][j + 3] && board[i][j + 1] == board[i][j + 4] &&
					board[i][j] == board[i][j + 2] && board[i][j + 1] == a && board[i][j + 2] == b){
					board[i][j + 2] = c;
					k = 0;
					break;
				}
			}
			if (k == 0){
				break;
			}
		}
	}
	//列
	if (k == 1){
		for (j = 0; j < col; j++){
			for (i = 0; i < row - 4; i++){
				if (board[i + 1][j] == board[i + 2][j] && board[i + 1][j] == board[i + 3][j] &&
					board[i][j] == board[i + 4][j] && board[i + 1][j] == a && board[i + 4][j] == b){
					board[i + 4][j] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j] == board[i + 2][j] && board[i + 1][j] == board[i + 4][j] &&
					board[i][j] == board[i + 3][j] && board[i + 1][j] == a && board[i + 3][j] == b){
					board[i + 3][j] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j] == board[i + 3][j] && board[i + 1][j] == board[i + 4][j] &&
					board[i][j] == board[i + 2][j] && board[i + 1][j] == a && board[i + 2][j] == b){
					board[i + 2][j] = c;
					k = 0;
					break;
				}
			}
			if (k == 0){
				break;
			}
		}
	}
	//斜
	if (k == 1){
		for (int m = row - 5; m >= 0; m--){
			for (i = m, j = 0; i < row - 4; i++){
				if (board[i + 1][j + 1] == board[i + 2][j + 2] && board[i + 1][j + 1] == board[i + 3][j + 3] &&
					board[i][j] == board[i + 4][j + 4] && board[i + 1][j + 1] == a && board[i + 4][j + 4] == b){
					board[i + 4][j + 4] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j + 1] == board[i + 2][j + 2] && board[i + 1][j + 1] == board[i + 4][j + 4] &&
					board[i][j] == board[i + 3][j + 3] && board[i + 1][j + 1] == a && board[i + 3][j + 3] == b){
					board[i + 3][j + 3] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j + 1] == board[i + 3][j + 3] && board[i + 1][j + 1] == board[i + 4][j + 4] &&
					board[i][j] == board[i + 2][j + 2] && board[i + 1][j + 1] == a && board[i + 2][j + 22] == b){
					board[i + 2][j + 2] = c;
					k = 0;
					break;
				}
				j++;
			}
			if (k == 0){
				break;
			}
		}
	}
	if (k == 1){
		for (int n = 1; n <= col - 4; n++){
			for (i = 0, j = n; i < row - 4; i++){
				if (board[i + 1][j + 1] == board[i + 2][j + 2] && board[i + 1][j + 1] == board[i + 3][j + 3] &&
					board[i][j] == board[i + 4][j + 4] && board[i + 1][j + 1] == a && board[i + 4][j + 4] == b){
					board[i + 4][j + 4] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j + 1] == board[i + 2][j + 2] && board[i + 1][j + 1] == board[i + 4][j + 4] &&
					board[i][j] == board[i + 3][j + 3] && board[i + 1][j + 1] == a && board[i + 3][j + 3] == b){
					board[i + 3][j + 3] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j + 1] == board[i + 3][j + 3] && board[i + 1][j + 1] == board[i + 4][j + 4] &&
					board[i][j] == board[i + 2][j + 2] && board[i + 1][j + 1] == a && board[i + 2][j + 2] == b){
					board[i + 2][j + 2] = c;
					k = 0;
					break;
				}
				j++;
			}
			if (k == 0){
				break;
			}
		}
	}
	if (k == 1){
		for (int m = row - 5; m >= 0; m--){
			for (i = m, j = col - 1; i < row - 4; i++){
				if (board[i + 1][j - 1] == board[i + 2][j - 2] && board[i + 1][j - 1] == board[i + 3][j - 3] &&
					board[i][j] == board[i + 4][j - 4] && board[i + 1][j - 1] == a && board[i + 4][j - 4] == b){
					board[i + 4][j - 4] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j - 1] == board[i + 2][j - 2] && board[i + 1][j - 1] == board[i + 4][j - 4] &&
					board[i][j] == board[i + 3][j - 3] && board[i + 1][j - 1] == a && board[i + 3][j - 3] == b){
					board[i + 3][j - 3] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j - 1] == board[i + 3][j - 3] && board[i + 1][j - 1] == board[i + 4][j - 4] &&
					board[i][j] == board[i + 2][j - 2] && board[i + 1][j - 1] == a && board[i + 2][j - 2] == b){
					board[i + 2][j - 2] = c;
					k = 0;
					break;
				}
				j--;
			}
			if (k == 0){
				break;
			}
		}
	}
	if (k == 1){
		for (int n = col - 5; n < col - 1; n++){
			for (i = 0, j = n; i < row - 4; i++){
				if (board[i + 1][j - 1] == board[i + 2][j - 2] && board[i + 1][j - 1] == board[i + 3][j - 3] &&
					board[i][j] == board[i + 4][j - 4] && board[i + 1][j - 1] == a && board[i + 4][j - 4] == b){
					board[i + 4][j - 4] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j - 1] == board[i + 2][j - 2] && board[i + 1][j - 1] == board[i + 4][j - 4] &&
					board[i][j] == board[i + 3][j - 3] && board[i + 1][j - 1] == a && board[i + 3][j - 3] == b){
					board[i + 3][j - 3] = c;
					k = 0;
					break;
				}
				if (board[i + 1][j - 1] == board[i + 3][j - 3] && board[i + 1][j - 1] == board[i + 4][j - 4] &&
					board[i][j] == board[i + 2][j - 2] && board[i + 1][j - 1] == a && board[i + 2][j - 2] == b){
					board[i + 2][j - 2] = c;
					k = 0;
					break;
				}
				j--;
			}
			if (k == 0){
				break;
			}
		}
	}
	return k;
}
void ComputerMove(char board[ROW][COL], int row, int col) {
	int i = 0;//横坐标;
	int j = 0;//纵坐标;
	int k = 1;//判断电脑是否已落子,避免二次落子;
	k = FiveSon(board, row, col, k, '*', ' ', '*');//电脑是否将要成5;
	k = FiveSon(board, row, col, k, 'X', ' ', '*');//玩家是否将要成5;
	k = ThreeSon(board, row, col, k, '*', ' ', '*');//电脑是否成4/活3;
	k = ThreeSon(board, row, col, k, 'X', ' ', '*');//玩家是否成4/活3;
	if (k == 1){
		//下中间;
		if (board[row / 2][col / 2] == ' '){
			board[row / 2][col / 2] = '*';
		}
		//下中间的周围;
		else if (board[row / 2 - 1][col / 2 - 1] == ' '){
			board[row / 2 - 1][col / 2 - 1] = '*';
		}
		else if (board[row / 2 - 1][col / 2] == ' '){
			board[row / 2 - 1][col / 2] = '*';
		}
		else if (board[row / 2 - 1][col / 2 + 1] == ' '){
			board[row / 2 - 1][col / 2 + 1] = '*';
		}
		else if (board[row / 2][col / 2 - 1] == ' '){
			board[row / 2][col / 2 - 1] = '*';
		}
		else if (board[row / 2][col / 2 + 1] == ' '){
			board[row / 2][col / 2 + 1] = '*';
		}
		else if (board[row / 2 + 1][col / 2 - 1] == ' '){
			board[row / 2 + 1][col / 2 - 1] = '*';
		}
		else if (board[row / 2 + 1][col / 2] == ' '){
			board[row / 2 + 1][col / 2] = '*';
		}
		else if (board[row / 2 + 1][col / 2 + 1] == ' '){
			board[row / 2 + 1][col / 2 + 1] = '*';
		}
		else{
			while (1){
				i = rand() % row;
				j = rand() % col;
				if (board[i][j] == ' '){
					board[i][j] = '*';
					break;
				}
			}
		}
	}
	printf("电脑走:>\n");
	printf("\n");
}
int CheckWiner(char board[ROW][COL], int row, int col){
	int count = 0;//计算剩余可以放棋子的位置
	if (FiveSon(board, row, col, 1, '*', '*', '*') == 0){
		printf("很遗憾,电脑赢了!\n");
		return 1;
	}
	if (FiveSon(board, row, col, 1, 'X', 'X', 'X') == 0){
		printf("恭喜你,你赢了!\n");
		return 1;
	}
	for (int m = 0; m < row; m++){
		for (int n = 0; n < col; n++){
			if (board[m][n] == ' '){
				count++;
			}
		}
	}
	if (count == 0){//棋盘摆满
		printf("平局!\n");
		return 1;
	}
	return 0;
}
void PlayGame(char board[ROW][COL], int row, int col){
	srand(time(0));
	int isover = 0;
	while (1){
		PlayerMove(board, row, col);
		DisplayBoard(board, row, col);
		isover = CheckWiner(board, row, col);
		if (isover == 1){
			break;
		}
		Sleep(1200);
		system("cls");
		ComputerMove(board, row, col);
		DisplayBoard(board, row, col);
		isover = CheckWiner(board, row, col);
		if (isover == 1){
			break;
		}
	}
}

代码都是用简单思想来实现的,欢迎进行优化和改进,欢迎指点。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值