寻找五子棋源代码c++

Devc++带注释运行。

# include & ltbits/stdc++。h & gt

# include & ltwindows.h & gt

# include & ltconio.h & gt

# include & ltctime & gt

使用命名空间std

void gotoxy(int x,int y) {

COORD pos = {x,y };

HANDLE hOut = GetStdHandle(STD _ OUTPUT _ HANDLE);

SetConsoleCursorPosition(hOut,pos);

}//将光标移动到x和y点?

int mp[16][16]= {0},x1=0,x2 = 0;//地图,用来搜索五个孩子?

作废打印(int x) {

gotoxy(x,1);

cout & lt& lt"┬";

for(int I = 2;我& lt=14;i++) {

gotoxy(x,I);

cout & lt& lt"┼";

}

gotoxy(x,15);

cout & lt& lt"┴";

}//输出棋盘的中间部分?

void gotoc() {

系统(“cls”);

gotoxy(55,10);

cout & lt& lt“五个?儿子?棋”;

gotoxy(56,20);

cout & lt& lt"正在加载...";

gotoxy(55,21);

cout & lt& lt“作者:北辰”;

for(int j = 0;j & lt100;j++) {

睡眠(17);

gotoxy(j+3,15);

cout & lt& lt" " " & lt& ltj & lt& lt"%";

gotoxy(j,15);

cout & lt& lt"■";

}

系统(“cls”);

for(int I = 0;我& lt100;i++) {

for(int j = 0;j & lt40;j++) {

gotoxy(i,j);

cout & lt& lt"■";

//set color(rand()% 10);

}

}

系统(“cls”);

}//加载接口函数?

int main() {

gotoc();//加载?

for(int I = 2;我& lt=30;i+=2) {

gotoxy(i,0);

cout & lt& ltI/2;

}//横坐标?

for(int I = 1;我& lt=15;i++) {

gotoxy(0,I);

cout & lt& lt我;

}//纵坐标?

gotoxy(21);

cout & lt& lt"┌";

for(int I = 2;我& lt=14;i++) {

gotoxy(2,I);

cout & lt& lt"├";

}

gotoxy(215);

cout & lt& lt"└";//输出棋盘左侧?

for(int I = 4;我& lt=28;i+=2) {

印刷(一);

}//用循环输出棋盘的中间部分?

gotoxy(30,1);

cout & lt& lt"┐";

for(int I = 2;我& lt=14;i++) {

gotoxy(30,I);

cout & lt& lt"┤";

}

gotoxy(3015);

cout & lt& lt"┘";//输出棋盘的右边

bool l = 0;//无用标志?

long long m = 2;//这个很重要。用来判断白棋该走还是黑棋该走。每次++结束,都判定为偶数。白棋是奇数,黑棋(一般以旗判断,这是我个人的喜好)?

gotoxy(0,17);

cout & lt& lt“游戏描述:白棋先行,移动时请输入坐标,其他不用我说了”;//描述,一定要看?

while(l=1) {

gotoxy(3216);

int x,y;

CIN & gt;& gtx & gt& gty;//读入xy坐标?

gotoxy(3216);

cout & lt& lt" ? ";

if(mp[x][y]!=0) {?

gotoxy(3216);

cout & lt& lt“这个位置被移动了!”;

睡眠(1000);

gotoxy(3216);

cout & lt& lt" ";

继续;

}//很重要,用来判断这个位置是否定了?

if(x & gt;15 & amp;& ampy & lt=15) {

gotoxy(3216);

cout & lt& lt" X坐标超出了棋盘的范围!";

睡眠(1000);

gotoxy(3216);

cout & lt& lt" ";

继续;

}?

如果(y & gt15 & amp;& ampx & lt=15) {

gotoxy(3216);

cout & lt& lt" Y坐标超出棋盘范围!";

睡眠(1000);

gotoxy(3216);

cout & lt& lt" ";

继续;

}

如果(y & gt15 & amp;& ampx & gt15) {

gotoxy(3216);

cout & lt& lt“X和Y坐标都不在棋盘范围内!”;

睡眠(1000);

gotoxy(3216);

cout & lt& lt" ";

继续;

}//以上三个if用来判断是否超过棋盘大小?

gotoxy(x*2,y);

如果(m%2==0) {//是偶数,下哪个白棋?

cout & lt& lt"●";//输出棋子?

MP[x][y]= 1;

//横坐标搜索是连成五的吗?

if(MP[x+1][y]= = 1 & amp;& ampMP[x+2][y]= = 1 & amp;& ampMP[x+3][y]= = 1 & amp;& ampmp[x+4][y]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x-1][y]= = 1 & amp;& ampMP[x+1][y]= = 1 & amp;& ampMP[x+2][y]= = 1 & amp;& ampmp[x+3][y]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x-2][y]= = 1 & amp;& ampMP[x-1][y]= = 1 & amp;& ampMP[x+1][y]= = 1 & amp;& ampmp[x+2][y]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x-3][y]= = 1 & amp;& ampMP[x-2][y]= = 1 & amp;& ampMP[x-1][y]= = 1 & amp;& ampmp[x+1][y]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x-4][y]= = 1 & amp;& ampMP[x-3][y]= = 1 & amp;& ampMP[x-2][y]= = 1 & amp;& ampmp[x-1][y]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

//垂直

if(MP[x][y+1]= = 1 & amp;& ampMP[x][y+2]= = 1 & amp;& ampMP[x][y+3]= = 1 & amp;& ampmp[x][y+4]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x][y-1]= = 1 & amp;& ampMP[x][y+1]= = 1 & amp;& ampMP[x][y+2]= = 1 & amp;& ampmp[x][y+3]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x][y-2]= = 1 & amp;& ampMP[x][y-1]= = 1 & amp;& ampMP[x][y+1]= = 1 & amp;& ampmp[x][y+2]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x][y-3]= = 1 & amp;& ampMP[x][y-2]= = 1 & amp;& ampMP[x][y-1]= = 1 & amp;& ampmp[x][y+1]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x][y-4]= = 1 & amp;& ampMP[x][y-3]= = 1 & amp;& ampMP[x][y-2]= = 1 & amp;& ampmp[x][y-1]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

//斜“\”

if(MP[x+1][y+1]= = 1 & amp;& ampMP[x+2][y+2]= = 1 & amp;& ampMP[x+3][y+3]= = 1 & amp;& ampmp[x+4][y+4]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x-1][y-1]= = 1 & amp;& ampMP[x+1][y+1]= 1 & amp;& ampMP[x+2][y+2]= = 1 & amp;& ampmp[x+3][y+3]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x-2][y-2]= = 1 & amp;& ampMP[x-1][y-1]= = 1。& ampMP[x+1][y+1]= 1 & amp;& ampmp[x+2][y+2]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x-3][y-3]= = 1 & amp;& ampMP[x-2][y-2]= = 1 & amp;& ampMP[x-1][y-1]= = 1。& ampMP[x+1][y+1]= = 1){

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x-4][y-4]= = 1 & amp;& ampMP[x-3][y-3]= = 1 & amp;& ampMP[x-2][y-2]= = 1 & amp;& ampMP[x-1][y-1]= = 1){

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

//倾斜“/”

if(MP[x-1][y+1]= = 1 & amp;& ampMP[x-2][y+2]= = 1 & amp;& ampMP[x-3][y+3]= = 1 & amp;& ampmp[x-4][y+4]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x+1][y-1]= = 1 & amp;& ampMP[x-1][y+1]= 1 & amp;& ampMP[x-2][y+2]= = 1 & amp;& ampmp[x-3][y+3]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x+2][y-2]= = 1 & amp;& ampMP[x+1][y-1]= = 1。& ampMP[x-1][y+1]= 1 & amp;& ampmp[x-2][y+2]==1) {

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x+3][y-3]= = 1 & amp;& ampMP[x+2][y-2]= = 1 & amp;& ampMP[x+1][y-1]= = 1。& ampMP[x-1][y+1]= = 1){

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

if(MP[x+4][y-4]= = 1 & amp;& ampMP[x+3][y-3]= = 1 & amp;& ampMP[x+2][y-2]= = 1 & amp;& ampMP[x+1][y-1]= = 1){

gotoxy(3216);

cout & lt& lt“白棋赢了!”;

返回0;

}

} else如果(m%2==1) {//是奇数,哪个黑棋?

cout & lt& lt"○";

MP[x][y]= 2;

//水平

if(MP[x+1][y]= = 2 & amp;& ampMP[x+2][y]= = 2 & amp;& ampMP[x+3][y]= = 2 & amp;& ampmp[x+4][y]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x-1][y]= = 2 & amp;& ampMP[x+1][y]= = 2 & amp;& ampMP[x+2][y]= = 2 & amp;& ampmp[x+3][y]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x-2][y]= = 2 & amp;& ampMP[x-1][y]= = 2 & amp;& ampMP[x+1][y]= = 2 & amp;& ampmp[x+2][y]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x-3][y]= = 2 & amp;& ampMP[x-2][y]= = 2 & amp;& ampMP[x-1][y]= = 2 & amp;& ampmp[x+1][y]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x-4][y]= = 2 & amp;& ampMP[x-3][y]= = 2 & amp;& ampMP[x-2][y]= = 2 & amp;& ampmp[x-1][y]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

//垂直

if(MP[x][y+1]= = 2 & amp;& ampMP[x][y+2]= = 2 & amp;& ampMP[x][y+3]= = 2 & amp;& ampmp[x][y+4]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x][y-1]= = 2 & amp;& ampMP[x][y+1]= = 2 & amp;& ampMP[x][y+2]= = 2 & amp;& ampmp[x][y+3]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x][y-2]= = 2 & amp;& ampMP[x][y-1]= 2 & amp;& ampMP[x][y+1]= = 2 & amp;& ampmp[x][y+2]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x][y-3]= = 2 & amp;& ampMP[x][y-2]= = 2 & amp;& ampMP[x][y-1]= 2 & amp;& ampmp[x][y+1]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x][y-4]= = 2 & amp;& ampMP[x][y-3]= = 2 & amp;& ampMP[x][y-2]= = 2 & amp;& ampmp[x][y-1]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

//斜“\”

if(MP[x+1][y+1]= = 2 & amp;& ampMP[x+2][y+2]= = 2 & amp;& ampMP[x+3][y+3]= = 2 & amp;& ampmp[x+4][y+4]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x-1][y-1]= 2 & amp;& ampMP[x+1][y+1]= 2 & amp;& ampMP[x+2][y+2]= = 2 & amp;& ampmp[x+3][y+3]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x-2][y-2]= = 2 & amp;& ampMP[x-1]= = 2 & amp;& ampMP[x+1][y+1]= 2 & amp;& ampmp[x+2][y+2]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x-3][y-3]= = 2 & amp;& ampMP[x-2][y-2]= = 2 & amp;& ampMP[x-1]= = 2 & amp;& ampmp[x+1][y+1]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x-4][y-4]= = 2 & amp;& ampMP[x-3][y-3]= = 2 & amp;& ampMP[x-2][y-2]= = 2 & amp;& ampmp[x-1][y-1]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

//倾斜“/”

if(MP[x-1][y+1]= = 2 & amp;& ampMP[x-2][y+2]= = 2 & amp;& ampMP[x-3][y+3]= = 2 & amp;& ampmp[x-4][y+4]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x+1][y-1]= = 2 & amp;& ampMP[x-1][y+1]= 2 & amp;& ampMP[x-2][y+2]= = 2 & amp;& ampmp[x-3][y+3]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x+2][y-2]= = 2 & amp;& ampMP[x+1][y-1]= 2 & amp;& ampMP[x-1][y+1]= 2 & amp;& ampmp[x-2][y+2]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x+3][y-3]= = 2 & amp;& ampMP[x+2][y-2]= = 2 & amp;& ampMP[x+1][y-1]= 2 & amp;& ampmp[x-1][y+1]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

if(MP[x+4][y-4]= = 2 & amp;& ampMP[x+3][y-3]= = 2 & amp;& ampMP[x+2][y-2]= = 2 & amp;& ampmp[x+1][y-1]==2) {

gotoxy(3216);

cout & lt& lt“黑的赢!”;

返回0;

}

}

m++;//别忘了++m?

}

返回0;//这个没用,但是游戏里别忘了加,不然0分?

}