**
五子棋
**
#include <iostream>
#include <string>
#include <conio.h>
#include <windows.h>
#include "mmsystem.h" //BGM 函数 头文件
#pragma comment(lib, "winmm.lib")
#define pure "●"
#define dark "○"
HANDLE hOutput;//句柄
COORD coord = {
0,0 }; //控制台屏幕上的坐标(结构体)
std::string qiPan[15][15];//数组_棋盘
bool isBlack{
false };//当前是否是黑子下棋
bool gameOver{
true };//判断游戏是否结束
/*
* 控制字体颜色
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 10 = 淡绿色
3 = 浅绿色 11 = 淡浅绿色
4 = 红色 12 = 淡红色
5 = 紫色 13 = 淡紫色
6 = 黄色 14 = 淡黄色
7 = 白色 15 = 亮白色
*/
void COLOR_PRINT(const char* s, int front_color, int back_color)
{
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);//获取当前窗口句柄
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | front_color);//BACKGROUND_INTENSITY | back_color * 16(修改文字背景颜色)
printf(s);
SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | 7);
}
//刷新棋盘
void RecordedQiPan(const int x, const int y, bool isDown)
{
SetConsoleCursorPosition(hOutput, coord);//获取当前窗口 光标位置
std::cout << " 五子棋游戏\n";
COLOR_PRINT("游戏规则:\n", 14, 0);
COLOR_PRINT("W,A,S,D控制下棋光标移动\nEnter确认下棋\n", 11, 0);//输出不同颜色的字符串
std::cout << "--------------------------------\n";
if (isDown)//是否是下子操作
{
qiPan[x][y] = isBlack ? dark : pure;//判断当前下子是黑棋还是白棋 true 就标注○,false就是●
}
for (int i = 0; i < 15; i++)//刷新棋盘达到下子,位置变化,和创建棋盘功能
{
for (int j =