断断续续写的第一个比较满意的作品,算是C语言的一个小结吧,可惜以现在的能力,要写人机对战现实在觉得困难,以后有机会再来补充吧

#include <stdio.h>
#include <graphics.h>
#include <math.h>
#include <conio.h>//getch()、kbhit() 用
#include <Windows.h>#define N 15              //15*15棋盘
#define M 44                //棋盘中最近的两平行线之间的坐标相减距离所得距离
#define Width 930           //画布长宽
#define High 700
#define Bk_bigin_x 10       //背景图片起始点
#define Bk_bigin_y 120
#define Qp_begin_x 281-10   //棋盘左上角在画布上的坐标
#define Qp_begin_y 160-120enum { wu = 1, hei = 2, bai = 3 }; //棋子情况 无子为wu,黑子为hei,白子为bai
int p[N][N] = { wu };          //记录棋盘落子情况 无子为1,黑子为2,白子为3
int rank[N][N];
int qizi_amount;
int gameover;               //判断游戏是否结束
int IsJinshou;              //判断黑子是否禁手
enum playerturn { player1, player2 };               //轮到哪一位玩家落子
enum playerturn playerturn;         //黑子先下
struct zuobiao
{int x;int y;
};
struct zuobiao  lz_zuobiao, qp_zuobiao;   //第一个用于bottondown的使用;第二个用于jinshou、judgewin的使用。必须使用两个结构,不能只用一个
IMAGE img_bk;
IMAGE img_Black_Chess;
IMAGE img_White_Chess;
IMAGE img_Without_Chess;
MOUSEMSG a;                               //与鼠标操作有关的结构体
MOUSEMSG b;
FILE  *qj_record, *qj_import;             //指向写入文件的指针、读取文件的指针--棋子状况为wu,bai ,hei
FILE  *lz_record, *lz_import;             //落子顺序 1.2.3.....void drawqp()
{gameover = 0;//数据初始化IsJinshou = 0;playerturn = player1;//五子棋规则,黑先手qizi_amount = 0;//棋盘上棋子的数量for (int i = 0; i < N; i++)for (int j = 0; j < N; j++){p[i][j] = wu;//棋盘棋子清零rank[i][j] = 0;//棋盘落子顺序清零}//导入相关图片loadimage(&img_bk, L"C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\五子棋盘.PNG");   //导入背景图片loadimage(&img_Black_Chess, L"C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\黑2.PNG");//导入黑子图片loadimage(&img_White_Chess, L"C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\白2.PNG");//导入白子图片loadimage(&img_Without_Chess, L"C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\无子.PNG");//导入无子图片putimage(0, 0, Width, High, &img_bk, Bk_bigin_x, Bk_bigin_y);     //输出背景图片setbkmode(TRANSPARENT);settextcolor(WHITE);settextstyle(15, 0, _T("黑体"));outtextxy(20, High*0.7 + 10, L"Tips:");outtextxy(20, High*0.7 + 30, L"1.按右键重新开局");outtextxy(20, High*0.7 + 50, L"2.中途退出可保存棋局");outtextxy(20, High*0.7 + 70, L"3.棋局结束前按鼠标中键可悔棋");
}void impor_data()
{//读取棋盘棋子状况信息if (qj_import = fopen("C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\棋局.txt", "r")){int pos;int h = 0, b = 0;  //黑子,白子 的数量for (int i = 0; i < N; i++)for (int j = 0; j < N; j++){pos = (long)(i *N + j) * sizeof(int);fseek(qj_import, pos, SEEK_SET);             //定位文件指针的位置fread(&p[i][j], sizeof(int), 1, qj_import);if (p[i][j] == hei){putimage(Qp_begin_x + j*M - 20, Qp_begin_y + i*M - 20, &img_Black_Chess);h++;}if (p[i][j] == bai){putimage(Qp_begin_x + j*M - 20, Qp_begin_y + i*M - 20, &img_White_Chess);b++;}}fclose(qj_import);if (h == b)playerturn = player1;elseplayerturn = player2;}//读取棋盘落子顺序信息if (lz_import = fopen("C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\落子顺序.txt", "r")){int pos;for (int i = 0; i < N; i++)for (int j = 0; j < N; j++){pos = (long)(i *N + j) * sizeof(int);fseek(lz_import, pos, SEEK_SET);                //定位文件指针的位置fread(&rank[i][j], sizeof(int), 1, lz_import);if (rank[i][j] > qizi_amount)qizi_amount = rank[i][j];}fclose(lz_import);}
}void place()
{a = GetMouseMsg();                                //获取鼠标操作信息for (int i = 0; i < N; i++)if (abs(Qp_begin_x + i*M - a.x) < M*0.5) { lz_zuobiao.x = i;    break; }//确定鼠标最接近的点的坐标for (int i = 0; i < N; i++)if (abs(Qp_begin_y + i*M - a.y) < M*0.5) { lz_zuobiao.y = i;    break; }
}void bottondown()
{if (p[lz_zuobiao.y][lz_zuobiao.x] == wu)     //鼠标所对应于棋盘的点为无子时{if (a.uMsg == WM_LBUTTONDOWN && playerturn == player1)  //点击左键且轮到玩家1{p[lz_zuobiao.y][lz_zuobiao.x] = hei;qp_zuobiao = lz_zuobiao;                            //为后面判断禁手输赢准备qizi_amount++;rank[lz_zuobiao.y][lz_zuobiao.x] = qizi_amount;putimage(Qp_begin_x + qp_zuobiao.x*M - 20, Qp_begin_y + qp_zuobiao.y*M - 20, &img_Black_Chess);playerturn = player2;  //玩家置换 为下一次到这里的训话做准备//记录棋局状况qj_record = fopen("C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\棋局.txt", "w");fwrite(p, sizeof(int), N*N, qj_record);//记录下一次落子轮到哪一位玩家fclose(qj_record);//记录落子顺序lz_record = fopen("C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\落子顺序.txt", "w");fwrite(rank, sizeof(int), N*N, lz_record);fclose(lz_record);}else if (a.uMsg == WM_LBUTTONDOWN && playerturn == player2){p[lz_zuobiao.y][lz_zuobiao.x] = bai;qp_zuobiao = lz_zuobiao;qizi_amount++;rank[lz_zuobiao.y][lz_zuobiao.x] = qizi_amount;putimage(Qp_begin_x + qp_zuobiao.x*M - 20, Qp_begin_y + qp_zuobiao.y*M - 20, &img_White_Chess);playerturn = player1;//记录棋局状况qj_record = fopen("C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\棋局.txt", "w");fwrite(p, sizeof(int), N*N, qj_record);//记录下一次落子轮到哪一位玩家fclose(qj_record);//记录落子顺序lz_record = fopen("C:\\Users\\pg113\\Desktop\\游戏代码\\素材库\\落子顺序.txt", "w");fwrite(rank, sizeof(int), N*N, lz_record);fclose(lz_record);}}
}int jinshou()
{int count1 = 0, count2 = 0;//黑子 若禁手 则IsJinshou=1、2、3;if (playerturn == player2)//说明当前为黑子的下棋{//长连禁手{//横for (int i = 1; i <= wu; i++) { if (p[qp_zuobiao.y][qp_zuobiao.x + i] == hei) count1++; else break; }for (int i = 1; i <= wu; i++) { if (p[qp_zuobiao.y][qp_zuobiao.x - i] == hei) count2++; else break; }if (count1 + count2 + 1 >= 6) { IsJinshou = 1; return 0; }count1 = 0; count2 = 0;//竖for (int i = 1; i <= wu; i++) { if (p[qp_zuobiao.y + i][qp_zuobiao.x] == hei) count1++; else break; }for (int i = 1; i <= wu; i++) { if (p[qp_zuobiao.y - i][qp_zuobiao.x] == hei) count2++; else break; }if (count1 + count2 + 1 >= 6) { IsJinshou = 1; return 0; }count1 = 0; count2 = 0;//左上到右下for (int i = 1; i <= wu; i++) { if (p[qp_zuobiao.y - i][qp_zuobiao.x - i] == hei) count1++; else break; }for (int i = 1; i <= wu; i++) { if (p[qp_zuobiao.y + i][qp_zuobiao.x + i] == hei) count2++; else break; }if (count1 + count2 + 1 >= 6) { IsJinshou = 1; return 0; }count1 = 0; count2 = 0;//右上到左下for (int i = 1; i <= wu; i++) { if (p[qp_zuobiao.y - i][qp_zuobiao.x + i] == hei) count1++; else break; }for (int i = 1; i <= wu; i++) { if (p[qp_zuobiao.y + i][qp_zuobiao.x - i] == hei) count2++; else break; }if (count1 + count2 + 1 >= 6) { IsJinshou = 1; return 0; }count1 = 0; count2 = 0;}//三三禁手{int a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0;int count33 = 0;//横{if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu) a1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu) a2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == wu) b1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == wu) b2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 2] == wu) c1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 2] == wu) c2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == wu) d1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == wu) d2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 3] == wu) e1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 3] == wu) e2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == wu) f1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == wu) f2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu) g1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu) g2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 3] == 0 && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu) h1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 3] == 0 && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu) h2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 2] == 0 && p[qp_zuobiao.y][qp_zuobiao.x - 3] == 0 && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu) i1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 2] == 0 && p[qp_zuobiao.y][qp_zuobiao.x + 3] == 0 && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu) i2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 2] == 0 && p[qp_zuobiao.y][qp_zuobiao.x - 3] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu) j1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 2] == 0 && p[qp_zuobiao.y][qp_zuobiao.x + 3] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu) j2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu && p[qp_zuobiao.y][qp_zuobiao.x - wu] == wu) k1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu && p[qp_zuobiao.y][qp_zuobiao.x - wu] == wu) k2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu && p[qp_zuobiao.y][qp_zuobiao.x - wu] == wu) l1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu && p[qp_zuobiao.y][qp_zuobiao.x - wu] == wu) l2 = 1;if ((c1 == 1 && d2 == 1) || (c2 == 1 && d1 == 1) || (a1 == 1 && g2 == 1) || (a2 == 1 && g1 == 1) || (e1 == 1 && b2 == 1) || (e2 == 1 && b1 == 1) || (c1 == 1 && i2 == 1) || (c2 == 1 && i1 == 1) || (a1 == 1 && l2 == 1) || (a2 == 1 && l1 == 1)|| (c1 == 1 && h2 == 1) || (c2 == 1 && h1 == 1) || (a1 == 1 && k2 == 1) || (a2 == 1 && k1 == 1) || (e1 == 1 && f2 == 1) || (e2 == 1 && f1 == 1) || (b1 == 1 && j2 == 1) || (b2 == 1 && j1 == 1))count33++;a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0;}//竖{if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu) a1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu) a2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == wu) b1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == wu) b2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x] == wu) c1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x] == wu) c2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == wu) d1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == wu) d2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 3][qp_zuobiao.x] == wu) e1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 3][qp_zuobiao.x] == wu) e2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == wu) f1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == wu) f2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 4][qp_zuobiao.x] == wu) g1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 4][qp_zuobiao.x] == wu) g2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 3][qp_zuobiao.x] == 0 && p[qp_zuobiao.y - 4][qp_zuobiao.x] == wu) h1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 3][qp_zuobiao.x] == 0 && p[qp_zuobiao.y + 4][qp_zuobiao.x] == wu) h2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x] == 0 && p[qp_zuobiao.y - 3][qp_zuobiao.x] == 0 && p[qp_zuobiao.y - 4][qp_zuobiao.x] == wu) i1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x] == 0 && p[qp_zuobiao.y + 3][qp_zuobiao.x] == 0 && p[qp_zuobiao.y + 4][qp_zuobiao.x] == wu) i2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x] == 0 && p[qp_zuobiao.y - 3][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 4][qp_zuobiao.x] == wu) j1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x] == 0 && p[qp_zuobiao.y + 3][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 4][qp_zuobiao.x] == wu) j2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x] == wu && p[qp_zuobiao.y - wu][qp_zuobiao.x] == wu) k1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x] == wu && p[qp_zuobiao.y + wu][qp_zuobiao.x] == wu) k2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x] == wu && p[qp_zuobiao.y - wu][qp_zuobiao.x] == wu) l1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x] == wu && p[qp_zuobiao.y + wu][qp_zuobiao.x] == wu) l2 = 1;if ((c1 == 1 && d2 == 1) || (c2 == 1 && d1 == 1) || (a1 == 1 && g2 == 1) || (a2 == 1 && g1 == 1) || (e1 == 1 && b2 == 1) || (e2 == 1 && b1 == 1) || (c1 == 1 && i2 == 1) || (c2 == 1 && i1 == 1) || (a1 == 1 && l2 == 1) || (a2 == 1 && l1 == 1)|| (c1 == 1 && h2 == 1) || (c2 == 1 && h1 == 1) || (a1 == 1 && k2 == 1) || (a2 == 1 && k1 == 1) || (e1 == 1 && f2 == 1) || (e2 == 1 && f1 == 1) || (b1 == 1 && j2 == 1) || (b2 == 1 && j1 == 1))count33++;a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0;}//左上至右下{if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu) a1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu) a2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == wu) b1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == wu) b2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == wu) c1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == wu) c2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == wu) d1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == wu) d2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == wu) e1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == wu) e2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == wu) f1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == wu) f2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == wu && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == wu) g1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == wu && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == wu) g2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == 0 && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == wu) h1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == 0 && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == wu) h2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == 0 && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == 0 && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == wu) i1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == 0 && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == 0 && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == wu) i2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == 0 && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == wu && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == wu) j1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == 0 && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == wu && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == wu) j2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == wu && p[qp_zuobiao.y - wu][qp_zuobiao.x - wu] == wu) k1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == wu && p[qp_zuobiao.y + wu][qp_zuobiao.x + wu] == wu) k2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == wu && p[qp_zuobiao.y - wu][qp_zuobiao.x - wu] == wu) l1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == wu && p[qp_zuobiao.y + wu][qp_zuobiao.x + wu] == wu) l2 = 1;if ((c1 == 1 && d2 == 1) || (c2 == 1 && d1 == 1) || (a1 == 1 && g2 == 1) || (a2 == 1 && g1 == 1) || (e1 == 1 && b2 == 1) || (e2 == 1 && b1 == 1) || (c1 == 1 && i2 == 1) || (c2 == 1 && i1 == 1) || (a1 == 1 && l2 == 1) || (a2 == 1 && l1 == 1)|| (c1 == 1 && h2 == 1) || (c2 == 1 && h1 == 1) || (a1 == 1 && k2 == 1) || (a2 == 1 && k1 == 1) || (e1 == 1 && f2 == 1) || (e2 == 1 && f1 == 1) || (b1 == 1 && j2 == 1) || (b2 == 1 && j1 == 1))count33++;a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0;}//右上至左下{if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu) a1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu) a2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == wu) b1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == wu) b2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == wu) c1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == wu) c2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == wu) d1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == wu) d2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == wu) e1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == wu) e2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == wu) f1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == wu) f2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == wu && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == wu) g1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == wu && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == wu) g2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == 0 && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == wu) h1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == 0 && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == wu) h2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == 0 && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == 0 && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == wu) i1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == 0 && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == 0 && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == wu) i2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == 0 && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == wu && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == wu) j1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == 0 && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == wu && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == wu) j2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == wu && p[qp_zuobiao.y - wu][qp_zuobiao.x + wu] == wu) k1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == wu && p[qp_zuobiao.y + wu][qp_zuobiao.x - wu] == wu) k2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == wu && p[qp_zuobiao.y - wu][qp_zuobiao.x + wu] == wu) l1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == wu && p[qp_zuobiao.y + wu][qp_zuobiao.x - wu] == wu) l2 = 1;if ((c1 == 1 && d2 == 1) || (c2 == 1 && d1 == 1) || (a1 == 1 && g2 == 1) || (a2 == 1 && g1 == 1) || (e1 == 1 && b2 == 1) || (e2 == 1 && b1 == 1) || (c1 == 1 && i2 == 1) || (c2 == 1 && i1 == 1) || (a1 == 1 && l2 == 1) || (a2 == 1 && l1 == 1)|| (c1 == 1 && h2 == 1) || (c2 == 1 && h1 == 1) || (a1 == 1 && k2 == 1) || (a2 == 1 && k1 == 1) || (e1 == 1 && f2 == 1) || (e2 == 1 && f1 == 1) || (b1 == 1 && j2 == 1) || (b2 == 1 && j1 == 1))count33++;a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0;}if (count33 >= 2) { IsJinshou = 2; return 0; }}//四四禁手{ int a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0, m1 = 0, m2 = 0;int count44 = 0;//横{if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei) a1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei) a2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu) b1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu) b2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei) c1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei) c2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == wu) d1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == wu) d2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei) e1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei) e2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == hei) f1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == hei) f2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == wu) g1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == wu) g2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 3] == hei) h1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 3] == hei) h2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == hei) i1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == hei) i2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 4] == wu) j1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 4] == wu) j2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == wu  && p[qp_zuobiao.y][qp_zuobiao.x - 4] == hei) k1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == wu  && p[qp_zuobiao.y][qp_zuobiao.x + 4] == hei) k2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 3] == hei  && p[qp_zuobiao.y][qp_zuobiao.x - 4] == hei) l1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 2] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 3] == hei  && p[qp_zuobiao.y][qp_zuobiao.x + 4] == hei) l2 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x - 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x - 3] == hei  && p[qp_zuobiao.y][qp_zuobiao.x - 4] == hei) m1 = 1;if (p[qp_zuobiao.y][qp_zuobiao.x + 1] == wu && p[qp_zuobiao.y][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y][qp_zuobiao.x + 3] == hei  && p[qp_zuobiao.y][qp_zuobiao.x + 4] == hei) m2 = 1;if ((g1 == 1 && a2 == 1) || (g2 == 1 && a1 == 1) || (c1 == 1 && d2 == 1) || (c2 == 1 && d1 == 1) || (f1 == 1 && b2 == 1) || (f2 == 1 && b1 == 1) || (e1 == 1 && c2 == 1) || (e2 == 1 && c1 == 1) ||(h1 == 1 && a2 == 1) || (h2 == 1 && a1 == 1) || (a1 == 1 && i2 == 1) || (a2 == 1 && i1 == 1) || (j1 == 1) || (j2 == 1) || (k1 == 1) || (k2 == 1) || (l1 == 1) || (l2 == 1) || (m1 == 1) || (m2 == 1))count44++;a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0, m1 = 0, m2 = 0;}//竖{if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei) a1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei) a2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu) b1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu) b2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei) c1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei) c2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == wu) d1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == wu) d2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu  && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei) e1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu  && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei) e2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == hei) f1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == hei) f2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == wu) g1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == wu) g2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == wu  && p[qp_zuobiao.y - 3][qp_zuobiao.x] == hei) h1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == wu  && p[qp_zuobiao.y + 3][qp_zuobiao.x] == hei) h2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu  && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == hei) i1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu  && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == hei) i2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x] == wu) j1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x] == wu) j2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == wu  && p[qp_zuobiao.y - 4][qp_zuobiao.x] == hei) k1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == wu  && p[qp_zuobiao.y + 4][qp_zuobiao.x] == hei) k2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x] == wu  && p[qp_zuobiao.y - 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x] == hei) l1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x] == wu  && p[qp_zuobiao.y + 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x] == hei) l2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x] == wu  && p[qp_zuobiao.y - 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x] == hei) m1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x] == wu  && p[qp_zuobiao.y + 2][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x] == hei) m2 = 1;if ((g1 == 1 && a2 == 1) || (g2 == 1 && a1 == 1) || (c1 == 1 && d2 == 1) || (c2 == 1 && d1 == 1) || (f1 == 1 && b2 == 1) || (f2 == 1 && b1 == 1) || (e1 == 1 && c2 == 1) || (e2 == 1 && c1 == 1) ||(h1 == 1 && a2 == 1) || (h2 == 1 && a1 == 1) || (a1 == 1 && i2 == 1) || (a2 == 1 && i1 == 1) || (j1 == 1) || (j2 == 1) || (k1 == 1) || (k2 == 1) || (l1 == 1) || (l2 == 1) || (m1 == 1) || (m2 == 1))count44++;a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0, m1 = 0, m2 = 0;}//左上到右下{if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei) a1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei) a2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu) b1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu) b2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei) c1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei) c2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == wu) d1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == wu) d2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu  && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei) e1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu  && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei) e2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == hei) f1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == hei) f2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == wu) g1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == wu) g2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == wu  && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == hei) h1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == wu  && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == hei) h2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu  && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == hei) i1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu  && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == hei) i2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == hei  && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == wu) j1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == hei  && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == wu) j2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == wu   && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == hei) k1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == wu   && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == hei) k2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == wu  && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == hei  && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == hei) l1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == wu  && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == hei  && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == hei) l2 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x - 1] == wu  && p[qp_zuobiao.y - 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x - 3] == hei  && p[qp_zuobiao.y - 4][qp_zuobiao.x - 4] == hei) m1 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x + 1] == wu  && p[qp_zuobiao.y + 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x + 3] == hei  && p[qp_zuobiao.y + 4][qp_zuobiao.x + 4] == hei) m2 = 1;if ((g1 == 1 && a2 == 1) || (g2 == 1 && a1 == 1) || (c1 == 1 && d2 == 1) || (c2 == 1 && d1 == 1) || (f1 == 1 && b2 == 1) || (f2 == 1 && b1 == 1) || (e1 == 1 && c2 == 1) || (e2 == 1 && c1 == 1) ||(h1 == 1 && a2 == 1) || (h2 == 1 && a1 == 1) || (a1 == 1 && i2 == 1) || (a2 == 1 && i1 == 1) || (j1 == 1) || (j2 == 1) || (k1 == 1) || (k2 == 1) || (l1 == 1) || (l2 == 1) || (m1 == 1) || (m2 == 1))count44++;a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0, m1 = 0, m2 = 0;}//右上到左下{if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei) a1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei) a2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu) b1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu) b2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei) c1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei) c2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == wu) d1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == wu) d2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu  && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei) e1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu  && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei) e2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == hei) f1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == hei) f2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == wu) g1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == wu) g2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == wu  && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == hei) h1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == wu  && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == hei) h2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu  && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == hei) i1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu  && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == hei) i2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == wu) j1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == wu) j2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == wu  && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == hei) k1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == wu  && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == hei) k2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == hei && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == wu  && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == hei) l1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == hei && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == wu  && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == hei) l2 = 1;if (p[qp_zuobiao.y + 1][qp_zuobiao.x - 1] == wu  && p[qp_zuobiao.y + 2][qp_zuobiao.x - 2] == hei && p[qp_zuobiao.y + 3][qp_zuobiao.x - 3] == hei && p[qp_zuobiao.y + 4][qp_zuobiao.x - 4] == hei) m1 = 1;if (p[qp_zuobiao.y - 1][qp_zuobiao.x + 1] == wu  && p[qp_zuobiao.y - 2][qp_zuobiao.x + 2] == hei && p[qp_zuobiao.y - 3][qp_zuobiao.x + 3] == hei && p[qp_zuobiao.y - 4][qp_zuobiao.x + 4] == hei) m2 = 1;if ((g1 == 1 && a2 == 1) || (g2 == 1 && a1 == 1) || (c1 == 1 && d2 == 1) || (c2 == 1 && d1 == 1) || (f1 == 1 && b2 == 1) || (f2 == 1 && b1 == 1) || (e1 == 1 && c2 == 1) || (e2 == 1 && c1 == 1) ||(h1 == 1 && a2 == 1) || (h2 == 1 && a1 == 1) || (a1 == 1 && i2 == 1) || (a2 == 1 && i1 == 1) || (j1 == 1) || (j2 == 1) || (k1 == 1) || (k2 == 1) || (l1 == 1) || (l2 == 1) || (m1 == 1) || (m2 == 1))count44++;a1 = 0, a2 = 0, b1 = 0, b2 = 0, c1 = 0, c2 = 0, d1 = 0, d2 = 0, e1 = 0, e2 = 0,f1 = 0, f2 = 0, g1 = 0, g2 = 0, h1 = 0, h2 = 0, i1 = 0, i2 = 0, j1 = 0, j2 = 0,k1 = 0, k2 = 0, l1 = 0, l2 = 0, m1 = 0, m2 = 0;}if (count44 >= 2) { IsJinshou = 3; return 0; }}}
}int judgewin()
{int win = 0, wuzi = 0, count1 = 0, count2 = 0;//win 判断是否赢(连成五子),为1时,则是int judgepalyer;if (playerturn == player1) judgepalyer = bai;  //bottondown 之后的palyerturn 置换 ;黑子下完后palyerturn 为player2else if (playerturn == player2)judgepalyer = hei;//横for (int i = 1; i <= 4; i++) { if (p[qp_zuobiao.y][qp_zuobiao.x - i] == judgepalyer) count1++; else break; }for (int i = 1; i <= 4; i++) { if (p[qp_zuobiao.y][qp_zuobiao.x + i] == judgepalyer) count2++; else break; }if (count1 + count2 + 1 >= 5) { wuzi = 1; }else { count1 = 0; count2 = 0; }//为下面其他方向的检测准备//竖for (int i = 1; i <= 4; i++) { if (p[qp_zuobiao.y - i][qp_zuobiao.x] == judgepalyer) count1++; else break; }for (int i = 1; i <= 4; i++) { if (p[qp_zuobiao.y + i][qp_zuobiao.x] == judgepalyer) count2++; else break; }if (count1 + count2 + 1 >= 5) { wuzi = 1; }else { count1 = 0; count2 = 0; }//左上右下for (int i = 1; i <= 4; i++) { if (p[qp_zuobiao.y - i][qp_zuobiao.x - i] == judgepalyer) count1++; else break; }for (int i = 1; i <= 4; i++) { if (p[qp_zuobiao.y + i][qp_zuobiao.x + i] == judgepalyer) count2++; else break; }if (count1 + count2 + 1 >= 5) { wuzi = 1; }else { count1 = 0; count2 = 0; }//右上 左下for (int i = 1; i <= 4; i++) { if (p[qp_zuobiao.y - i][qp_zuobiao.x + i] == judgepalyer) count1++; else break; }for (int i = 1; i <= 4; i++) { if (p[qp_zuobiao.y + i][qp_zuobiao.x - i] == judgepalyer) count2++; else break; }if (count1 + count2 + 1 >= 5) { wuzi = 1; }else { count1 = 0; count2 = 0; }if (wuzi){settextcolor(GREEN);settextstyle(30, 0, _T("黑体"));if (judgepalyer == hei)outtextxy(Width*0.5 + 100, High*0.6, L"黑赢");else if (judgepalyer == bai) { outtextxy(Width*0.5 + 100, High*0.6, L"白赢"); }outtextxy(Width*0.5 - 30, High*0.7, L"按鼠标右键,则重新开局");gameover = 1;//游戏结束的标志,为后面的结束做准备return 0;}if (IsJinshou >= 1)//若没有连成五子,而黑子禁手,则提前结束{settextcolor(GREEN);settextstyle(30, 0, _T("黑体"));if (IsJinshou == 1)outtextxy(Width*0.5, High*0.6, L"黑子长连禁手,白赢");if (IsJinshou == 2)outtextxy(Width*0.5, High*0.6, L"黑子三三禁手,白赢");if (IsJinshou == 3)outtextxy(Width*0.5, High*0.6, L"黑子四四禁手,白赢");outtextxy(Width*0.5 - 30, High*0.7, L"按鼠标右键,则重新开局");gameover = 1;        //游戏结束的标志,为后面的结束做准备return 0;}return 0;}void end()
{a = GetMouseMsg();while (a.uMsg == WM_RBUTTONDOWN){//若想在连成五子关闭后再次打开时没有上一棋局,可在这里修改,把两文件内容归零,drawqp();break;}
}int huiqi()
{for (int i = 0; i < N; i++)for (int j = 0; j < N; j++){if (rank[i][j] == qizi_amount){p[i][j] = wu;rank[i][j] = 0;qizi_amount-=1;putimage(Qp_begin_x + j*M - 20, Qp_begin_y + i*M - 20, 40, 40, &img_bk, 281 + j*M - 20, 160 + i*M - 20);if (playerturn == player1)playerturn = player2;else playerturn = player1;return 0;}}
}void main()
{initgraph(Width, High);                                            //创建画布                                                              // 获得窗口句柄HWND hWnd = GetHWnd();// 使用 API 函数修改窗口名称SetWindowText(hWnd, L"五子棋");drawqp();                   //绘制棋盘及相关变量初始化impor_data();             //导入中途关闭的棋局while (1){place();               //手机鼠标最接近落子点的坐标信息bottondown();          //有敲击操作时落子,并记录棋盘信息jinshou();             //判断是否禁手,若是,则IsJinshou=1,、2、3;judgewin();             //判断是否结束并输出有关信息while (gameover){end();              //进入死循环,若按下鼠标中键,则重新开局}if (a.uMsg == WM_RBUTTONDOWN)  //除结束外任意时刻按下鼠标右键,可重新开局drawqp();if (a.uMsg == WM_MBUTTONDOWN)huiqi();}
}

效果展示视频:点这里(视频中有一处错误,代码已经改正好了)

文件下载地址

链接:https://pan.baidu.com/s/1S2TUifv42Zngq40rzV6SVA 密码:4wgk

用eaxyx 写的五子棋,功能包括: 禁手判断,棋局保存,悔棋,重新开局,全部通过鼠标操作相关推荐

  1. 人工智能博弈树极大极小搜索算法alpha-beta剪枝实现五子棋,带禁手

    由于2020的特殊情况,导致了一个被拖了挺久的大作业.... 五子棋其实大家很多时候会在闲暇时刻和朋友随便玩玩,这不仅让我回忆起了高中时候摸鱼休息就喜欢和同学在自己打的格子中用铅笔来一盘五子棋,回想起 ...

  2. 大道五目Flash英文版(Renju Problems)程序分析之禁手判断

    现在界面已经完成了, 刚刚完成了禁手算法,把代码共享出来: Code private function IsForbidden(x:int, y:int, board:Array):int {     ...

  3. python判断五子棋胜负_一个连珠(带禁手的五子棋)判断胜负的PHP实现

    gist 打不开的凑合看这个吧 xsir317/renju 曾经从一个C++的源码那里(传送门: Index of /renlib/opensrc 就是那个ForbiddenPointFinder ) ...

  4. 五子棋人人对战功能的C语言实现(无禁手)

    文章目录 前言 显示棋盘 执行落子 胜负判定 功能综合 前言 之前C语言课的大作业是设计一个可以进行人人对战和人机对战的五子棋程序.我在初期开始写的时候参考过很多份代码,但对于当时我的水平而言不够直观 ...

  5. 简易五子棋(包含开始、双人对战、简易AI、悔棋、认输、判断输赢)不含禁手

    简易五子棋 先上效果图 一.问题分析 五子棋游戏分析: 五子棋作为较为普遍且简易的娱乐游戏,受到众多人的热爱,且五子棋AI也是一个较为容易实现的AI.下面我们先来分析游戏规则.(哈哈,虽然大家都知道, ...

  6. 五子棋程序设计(C语言、人机对战、禁手)

    五子棋程序设计(C语言.人机对战.禁手) 一.程序需求分析 1.1五子棋简介 五子棋是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏. 五子棋有两种玩法.玩法一:双方分别使用黑白两色的棋 ...

  7. python有哪些主要功能包括_python是什么 特点及功能

    随着信息时代的发展,计算机行业的就业前景相当不错,通过了解,最近有很多小伙伴打算学习python,那么python是什么?它的特点和功能有哪些呢?相关内容如下,赶快来了解吧! python是什么 Py ...

  8. JAVAWEB使用JSP+Servlet实现商品管理功能,后台为数据库,功能包括商品信息浏览、商品信息详情、商品信息删除及修改。

    商品管理功能 一.功能介绍 1.1显示 1.2商品详情 1.3新增 1.4修改 1.5删除 二.数据库语句 三.项目结构 四.java代码 4.1Good类 4.2 Charge类 4.3GoodDa ...

  9. SH367309 BMS 锂电池保护板方案 该电池管理系统由SH367309和MCU实现,其主要功能包括:充电管理、放电管理、容量计、安全保护、数据备份、ISP、静 置功耗和低功耗模式等

    SH367309 BMS 锂电池保护板方案 该电池管理系统由SH367309和MCU实现,其主要功能包括:充电管理.放电管理.容量计.安全保护.数据备份.ISP.静 置功耗和低功耗模式等 烧写工具 W ...

最新文章

  1. python类方法可以访问类变量_python类变量可以从类方法访问? - python
  2. 阿里云高可用-容灾解决方案
  3. 前端测试 jest 中判断函数由来
  4. python输入一个\输出2个\问题
  5. 虚拟机系列 | 执行引擎和垃圾回收
  6. 延时函数、数码管显示头文件(单片机)
  7. 关于RabbitMQ以及RabbitMQ和Spring的整合
  8. (原)MongoDB在系统中的使用
  9. Python3 GUI编程: 自带图形库 tkinter 学习教程
  10. 解决IE6中PNG图出现灰色背景问题
  11. python报表自动化系列 - 译码:与Excel单元格索引对应的十进制数坐标
  12. 集成学习的前世今生(一)
  13. Git/Repo/Gerrit区别
  14. ICDAR2017 Competition on Reading Chinese Text in the Wild(RCTW-17) 介绍
  15. angular中利用zone避归没必要的开销提高程序的性能demo
  16. 【Vijos1659】河蟹王国
  17. OpenGL超级宝典(第7版)笔记15 前三章实例 下个五子棋全代码 (附)
  18. 用于解决SQL2014安装时出现需要更新vs2010的问题
  19. 恭贺好友入选微软全国IT英雄,庆贺与王达老师达成合作关系
  20. 【常用传感器】DS18B20温度传感器原理详解及例程代码

热门文章

  1. 网络爬虫对对方服务器造成的压力到底有多大(汇总整理)
  2. 【力扣-141】 环形链表 + 【力扣-142】 环形链表 II
  3. Direct Connect
  4. npm semver理解以及package-lock.json的探索
  5. 利用Intent.ACTION_SEND进行分享
  6. #Paper Reading# Ad Click Prediction: a View from the Trenches
  7. FPS游戏开发--后坐力分析
  8. matlab绘制的图如何变得清晰科学网,科学网—[转载] MATLAB导出高清晰图片 - 刘若芸的博文...
  9. 【游戏面包屑】图片自定义裁剪
  10. 金融机构银行架构变迁