原创作品
点赞关注
复制了就在评论区扣1
如果全做到了我点赞你所有做作品并关注
上代码:
#include<bits/stdc++.h>
#include<windows.h>
#include<time.h>
using namespace std;
int qipan[19][19];//0空 1白棋 2黑棋
int moniqipan[19][19];
int pingu[15][6]= {
{50,0,1,1,0,0},
{50,0,0,1,1,0},
{200,1,1,0,1,0},
{500,0,0,1,1,1},
{500,1,1,1,0,0},
{1000,0,1,1,1,0},
{1000,0,1,0,1,1},
{1000,0,1,1,0,1},
{5000,1,1,1,0,1},
{5000,1,1,0,1,1},
{5000,1,0,1,1,1},
{5000,1,1,1,1,0},
{5000,0,1,1,1,1},
{50000,0,1,1,1,1},
{99999999,1,1,1,1,1}
};
int y=19;
int s,s1[2];
void color(int a) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
//这儿使用包暴力法判断游戏是否结束
bool check1()
{
int UR, R, DR, D;
//UR表示右上判断是否形成五点连线;UR用来计数,判断右上对角是否形成5颗。
//R表示向右判断是否形成五点连线
//DR表示右下
//D向下
//依次遍历数组
for (int i = 0; i < y; i++)
{
for (int j = 0; j < y; j++)
{
UR = 0, R = 0, DR = 0, D = 0;
int k = 0;
for (k = 0; k < 5; k++)
{
if (j + k < y && qipan[i][j + k] == 1)
R++;
if (i + k < y && qipan[i + k][j] == 1)
D++;
if (j + k < y && i + k < y && qipan[i + k][j + k] == 1)
DR++;
if (i - k > -1 && i - k < y && j + k>-1 && j + k < y && qipan[i - k][j + k] == 1)
UR++;
}
//如果有五颗连成线则返回
if (UR == 5 || R == 5 || DR == 5 || D == 5)
{
return true;
}
}
}
return false;
}
bool check2()
{
int UR, R, DR, D;
//UR表示右上判断是否形成五点连线;UR用来计数,判断右上对角是否形成5颗。
//R表示向右判断是否形成五点连线
//DR表示右下
//D向下
//依次遍历数组
for (int i = 0; i < y; i++)
{
for (int j = 0; j < y; j++)
{
UR = 0, R = 0, DR = 0, D = 0;
int k = 0;
for (k = 0; k < 5; k++)
{
if (j + k < y && qipan[i][j + k] == 2)
R++;
if (i + k < y && qipan[i + k][j] == 2)
D++;
if (j + k < y && i + k < y && qipan[i + k][j + k] == 2)
DR++;
if (i - k > -1 && i - k < y && j + k>-1 && j + k < y && qipan[i - k][j + k] == 2)
UR++;
}
//如果有五颗连成线则返回
if (UR == 5 || R == 5 || DR == 5 || D == 5)
{
return true;
}
}
}
return false;
}
void coutqipan() {
HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE);//SetConsoleCursorPosition(a,{x,y});
SetConsoleCursorPosition(a,{0,0});
color(0);
for(int b=0;b<=25;b++){
for(int v=0;v<=44;v++){
cout<<" ";
}
cout<<endl;
}
SetConsoleCursorPosition(a,{0,0});
cout<<endl;
color(15);
cout<<" 1 2 3 4 5 6 7 8 9 10111213141516171819"<<endl;
for(int i=1; i<=19; i++) {
if(i<10)
cout<<" ";
cout<<i;
for(int j=0; j<19; j++) {
switch(qipan[i-1][j]) {
case 0: {
color(96);
cout<<"十";
color(15);
break;
}
case 1: {
color(111);
cout<<"●";
color(15);
break;
}
case 2: {
color(96);
cout<<"●";
color(15);
break;
}
}
}
color(0);
cout<<endl;
color(15);
}
}
int get1(int a1[4])
{
int temp=a1[0];
int tp1=1;
for(int i=1; i<4; i++)
if(a1[i]>temp)
{
temp=a1[i];
tp1=i+1;
}
return tp1;
}
int max1(int a1[4])
{
int temp=a1[0];
for(int i=1; i<4; i++)
if(a1[i]>temp)
{
temp=a1[i];
}
return temp;
}
int AI() {
int t1=0;
int han=0;
// 判断自己有没有四子的情况
for(int i=0; i<15; i++)
{
for(int j=0; j<15; j++)
{