五子棋算法篇

来源:互联网 发布:硅藻泥装修 知乎 编辑:程序博客网 时间:2024/05/20 10:56

package chess;


import java.awt.Color;


public class AiPlayer {
public static final int SFLVAL = 30;//形成“单四”值为30
public static final int CTLVAL = 20;//形成“双三”值为20
public static final int STLVAL = 10;//形成“单三”值为10
public static final int DTLVAL = 5;//防守形成“连二”值为5
public static final int OTLVAL = 2;//进攻形成“连二”值为2
int[][] def = new int[16][16];//各个点的防守值
int[][] off = new int[16][16];//各个点的进攻值
int xloc = 7;
int yloc = 7;//返回的棋盘坐标位置,缺省值为(7,7)
Chessman cm;


public AiPlayer() {
for (int i = 0; i <= 15; i++) {
for (int j = 0; j <= 15; j++) {
def[i][j] = 0;
off[i][j] = 0;
}
}
}
public void decLoacation() {
int tmp = 0;//当前最大的防守加进攻综合值
int tmpd = 0;//当前最大综合值的防守值
for (int m = 1; m <= 15; m++) {
for (int n = 1; n <= 15; n++) {
if (ChessBoard.val[m][n] != 0) {
continue;
}
if (off_five_lnie(m, n)) {
xloc = m;
yloc = n;
return;
}
}
}
// 四个for循环不能写在一起!否则“双四”出现在“死五”前面时,直接返回,出现“死局”
for (int m = 1; m <= 15; m++) {
for (int n = 1; n <= 15; n++) {
if (ChessBoard.val[m][n] != 0) {
continue;
}
if (def_five_lnie(m, n)) {
xloc = m;
yloc = n;
return;
}
}
}
for (int m = 1; m <= 15; m++) {
for (int n = 1; n <= 15; n++) {
if (ChessBoard.val[m][n] != 0) {
continue;
}
if (off_cfour_line(m, n)) {
xloc = m;
yloc = n;
return;
}
}
}
for (int m = 1; m <= 15; m++) {
for (int n = 1; n <= 15; n++) {
if (ChessBoard.val[m][n] != 0) {
continue;
}
if (def_cfour_line(m, n)) {
xloc = m;
yloc = n;
return;
}
offAnalyse(m, n);
defAnalyse(m, n);
int t = def[m][n] + off[m][n];
if (tmp == t && def[m][n] >= tmpd) {
//如果防守加进攻综合值相等,则取防守值大的点
tmp = t;
tmpd = def[m][n];
xloc = m;
yloc = n;
} else if (tmp < t) { 
//取防守加进攻的综合值大的点
tmp = t;
tmpd = def[m][n];
xloc = m;
yloc = n;
}
//把分析表从新置零
off[m][n] = 0;
def[m][n] = 0;
}
}
/*
* 遍历整个棋盘得到所有位置防守进攻综合值为零时,
* 若(7,7)点没有棋子时,棋子下在(7,7)点;否则
* 从(1,1)点开始顺序遍历整个棋盘,在第一个空格
* 子位置处下棋
*/
if(tmp == 0){
if(ChessBoard.val[7][7]==0){
xloc = 7;
yloc = 7;
}else{
for(int i = 1;i<16;i++){
for(int j =1;j<16;j++){
if(ChessBoard.val[i][j]==0){
xloc = i;
yloc = j;
}
}
}
}
}
}
public void run() {
decLoacation();
if (ChessBoard.val[xloc][yloc] != 0)
return;
cm = new Chessman(xloc, yloc, Color.white);
ChessBoard.val[xloc][yloc] = 2;
ChessBoard.turn = 1;
}
public boolean def_five_lnie(int x, int y) {
// 当出现对方五子成线的“危险”情况,直接返回x和y的值
// 对方在\方向构成五子连线的情况
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 1) {
return true;
}
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1) {
return true;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1) {
return true;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x + 1][y + 1] == 1) {
return true;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 4][y - 4] == 1) {
return true;
}
// 对方在/方向构成五子连线的情况
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 1) {
return true;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1) {
return true;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1) {
return true;
}
if (x - 1 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x - 1][y + 1] == 1) {
return true;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 4][y - 4] == 1) {
return true;
}
// 对方在-方向构成五子连线的情况
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 1) {
return true;
}
if (x + 3 <= 15 && x - 1 > 0 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x - 1][y] == 1) {
return true;
}
if (x + 2 <= 15 && x - 2 > 0 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x - 2][y] == 1) {
return true;
}
if (x + 1 <= 15 && x - 3 > 0 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 3][y] == 1) {
return true;
}
if (x - 4 > 0 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 4][y] == 1) {
return true;
}
// 对方在|方向构成五子连线的情况
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 1) {
return true;
}
if (y + 3 <= 15 && y - 1 > 0 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y - 1] == 1) {
return true;
}
if (y + 2 <= 15 && y - 2 > 0 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y - 2] == 1) {
return true;
}
if (y + 1 <= 15 && y - 3 > 0 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 3] == 1) {
return true;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 4] == 1) {
return true;
} else
return false;
}


public boolean def_cfour_line(int x, int y) {
// 当对方在\方向形成“双四”的情况011110
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 0) {
return true;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
return true;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
return true;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
return true;
}
// 对方在/方向形成“双四”的情况011110
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 0) {
return true;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
return true;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
return true;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
return true;
}
// 对方在|方向形成“双四”的情况011110
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 0) {
return true;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
return true;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
return true;
} else if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
return true;
}
// 对方在-方向形成“双四”的情况011110
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 0) {
return true;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
return true;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
return true;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
return true;
} else
return false;
}


public void def_sfour_line(int x, int y) {
// 对方在\方向形成“单四”的情况011112
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 2) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 2) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 2) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 2) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况011112
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 2) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 2) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 2) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 2) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况011112
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 2) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 2) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 2) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 2) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况011112
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 2) {
def[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况01111*
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 3) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 3) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 3) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 3) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况01111*
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 3) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 3) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 3) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && x + 4 <= 15 && ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 3) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况01111*
if (y - 1 > 0 && y + 4 == 16 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 == 16 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 == 16 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 == 16 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况01111*
if (x - 1 > 0 && x + 4 == 16 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 == 16 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 == 16 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 == 16 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////////////////
// 对方在\方向形成“单四”10111
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x + 2 <= 15 && x - 2 > 0 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (x + 1 <= 15 && x - 3 > 0 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 1
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”10111
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 1
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”10111
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 1
&& ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”10111
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 1
&& ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////
// 对方在\方向形成“单四”11011
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x + 3 <= 15 && x - 1 > 0 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (x + 1 <= 15 && x - 3 > 0 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 1
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”11011
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 2 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 1
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”11011
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 1
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”11011
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 1
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////////////
// 对方在\方向形成“单四”11101
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0
&& ChessBoard.val[x + 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x + 3 <= 15 && x - 1 > 0 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0
&& ChessBoard.val[x + 3][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (x + 2 <= 15 && x - 2 > 0 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 1
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”11101
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0
&& ChessBoard.val[x - 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 2 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0
&& ChessBoard.val[x - 3][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 1
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”11101
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0
&& ChessBoard.val[x][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0
&& ChessBoard.val[x][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 1
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”11101
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0
&& ChessBoard.val[x + 4][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0
&& ChessBoard.val[x + 3][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 1
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况211110
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 2
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况211110
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 2
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况211110
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 2
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况211110
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 2
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况*11110
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x - 1][y - 1] == 3
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (y + 3 <= 15 && y + 3 <= 15 && x - 1 > 0 && y - 1 > 0
&& ChessBoard.val[x - 2][y - 2] == 3
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (y + 2 <= 15 && y + 2 <= 15 && x - 2 > 0 && y - 2 > 0
&& ChessBoard.val[x - 3][y - 3] == 3
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (y + 1 <= 15 && y + 1 <= 15 && x - 3 > 0 && y - 3 > 0
&& ChessBoard.val[x - 4][y - 4] == 3
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况*11110
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x + 1][y - 1] == 3
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y + 3 <= 15 && x + 1 <= 15 && y - 1 > 0
&& ChessBoard.val[x + 2][y - 2] == 3
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y + 2 <= 15 && x + 2 <= 15 && y - 2 > 0
&& ChessBoard.val[x + 3][y - 3] == 3
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y + 1 <= 15 && x + 3 <= 15 && y - 3 > 0
&& ChessBoard.val[x + 4][y - 4] == 3
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况*11110
if (y - 1 == 0 && y + 4 <= 15 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (y - 2 == 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (y - 3 == 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (y - 4 == 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况*11110
if (x - 1 == 0 && x + 4 <= 15 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 == 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 == 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 4 == 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += SFLVAL;
}
}


public void def_cthree_line(int x, int y) {
// !对方在\方向构成三子成线01110
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += CTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += CTLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += CTLVAL;
}
// !对方在/方向构成三子成线01110
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += CTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += CTLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += CTLVAL;
}
// !对方在|方向构成三子成线01110
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += CTLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += CTLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += CTLVAL;
}
// !对方在|方向构成三子成线01110
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += CTLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += CTLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += CTLVAL;
}
}


public void def_sthree_line(int x, int y) {
// !对方在\方向构成三子成线21110
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在/方向构成三子成线21110
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在|方向构成三子成线21110
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在-方向构成三子成线21110
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += STLVAL;
}
   ///////////////////////////////////////////////////////////////
// !对方在\方向构成三子成线31110
if ( x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 3
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 3
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 3
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在/方向构成三子成线31110
if (x - 3 > 0  && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 3
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 3
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 3
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在|方向构成三子成线31110
if (y - 1 == 0 && y + 3 <= 15 
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (y - 2 == 0 && y + 2 <= 15 
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (y - 3 == 0 && y + 1 <= 15 
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在-方向构成三子成线31110
if (x - 1 == 0 && x + 3 <= 15 
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 == 0 && x + 2 <= 15 
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += STLVAL;
}
if (x - 3 == 0 && x + 1 <= 15 
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += STLVAL;
}
// ////////////////////////////////////////////////////////////
// !对方在\方向构成三子成线01112
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 2) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 2) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 2) {
def[x][y] += STLVAL;
}
// !对方在/方向构成三子成线01112
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 2) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 2) {
def[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 2) {
def[x][y] += STLVAL;
}
// !对方在|方向构成三子成线01112
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 2) {
def[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 2) {
def[x][y] += STLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 2) {
def[x][y] += STLVAL;
}
// !对方在-方向构成三子成线01112
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 2) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 2) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 2) {
def[x][y] += STLVAL;
}
///////////////////////////////////////////////////////////////////////
// !对方在\方向构成三子成线01113
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 3) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 3) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 3) {
def[x][y] += STLVAL;
}
// !对方在/方向构成三子成线01113
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 3) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 3) {
def[x][y] += STLVAL;
}
if (x + 3 <= 15 && y - 3 > 0 
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 3) {
def[x][y] += STLVAL;
}
// !对方在|方向构成三子成线01113
if (y - 1 > 0 && y + 2 == 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1) {
def[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 1 == 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1) {
def[x][y] += STLVAL;
}
if (y - 3 > 0 && y  == 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1) {
def[x][y] += STLVAL;
}
// !对方在-方向构成三子成线01113
if (x - 1 > 0 && x + 2 == 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 1 == 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && x == 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += STLVAL;
}
}


public void def_two_line(int x, int y) {
// !对方在\方向构成两子子成线0110
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += DTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += DTLVAL;
}
// !对方在/方向构成两子成线0110
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += DTLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += DTLVAL;
}


// !对方在|方向构成两子成线0110
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += DTLVAL;
}
if (y - 2 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += DTLVAL;
}
// !对方在|方向构成两子成线0110
if (x - 1 > 0 && x + 2 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += DTLVAL;
}
if (x - 2 > 0 && x + 1 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += DTLVAL;
}
}


public void defAnalyse(int x, int y) {
def_sfour_line(x, y);
def_cthree_line(x, y);
def_sthree_line(x, y);
def_two_line(x, y);
}


public boolean off_five_lnie(int x, int y) {
// 当出现己方五子成线的“有利”情况,直接返回x和y的值
// 己方在\方向构成五子连线的情况
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 2) {
return true;
}
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2) {
return true;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2) {
return true;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x + 1][y + 1] == 2) {
return true;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 4][y - 4] == 2) {
return true;
}
// 己方在/方向构成五子连线的情况
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 2) {
return true;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2) {
return true;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2) {
return true;
}
if (x - 1 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x - 1][y + 1] == 2) {
return true;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 4][y - 4] == 2) {
return true;
}
// 己方在-方向构成五子连线的情况
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 2) {
return true;
}
if (x + 3 <= 15 && x - 1 > 0 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x - 1][y] == 2) {
return true;
}
if (x + 2 <= 15 && x - 2 > 0 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x - 2][y] == 2) {
return true;
}
if (x + 1 <= 15 && x - 3 > 0 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 3][y] == 2) {
return true;
}
if (x - 4 > 0 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 4][y] == 2) {
return true;
}
// 己方在|方向构成五子连线的情况
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 2) {
return true;
}
if (y + 3 <= 15 && y - 1 > 0 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y - 1] == 2) {
return true;
}
if (y + 2 <= 15 && y - 2 > 0 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y - 2] == 2) {
return true;
}
if (y + 1 <= 15 && y - 3 > 0 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 3] == 2) {
return true;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 4] == 2) {
return true;
} else
return false;
}


public boolean off_cfour_line(int x, int y) {
// 当对方在\方向形成“双四”的情况022220
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 0) {
return true;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
return true;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
return true;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
return true;
}
// 对方在/方向形成“双四”的情况
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 0) {
return true;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
return true;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
return true;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
return true;
}
// 对方在|方向形成“双四”的情况
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 0) {
return true;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
return true;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
return true;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
return true;
}
// 对方在-方向形成“双四”的情况
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 0) {
return true;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
return true;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
return true;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
return true;
} else
return false;
}


public void off_sfour_line(int x, int y) {
// 己方在\方向形成“单四”的情况022221
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 1) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 1) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 1) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 1) {
off[x][y] += SFLVAL;
}
// 己方在/方向形成“单四”的情况022221
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 1) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 1) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 1) {
off[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 1) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”的情况022221
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 1) {
off[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 1) {
off[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 1) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 1) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”的情况022221
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 1) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 1) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 1) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 1) {
off[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况02222*
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 3) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 3) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 3) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 3) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况02222*
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 3) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 3) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 3) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && x + 4 <= 15 && ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 3) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况02222*
if (y - 1 > 0 && y + 4 == 16 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 == 16 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 == 16 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 == 16 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况02222*
if (x - 1 > 0 && x + 4 == 16 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 == 16 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 == 16 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 == 16 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2) {
def[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////////////////
// 己方在\方向形成“单四”20222
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x + 2 <= 15 && x - 2 > 0 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (x + 1 <= 15 && x - 3 > 0 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 2
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在/方向形成“单四”20222
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 2
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”20222
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 2
&& ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”20222
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 2
&& ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2) {
off[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////
// 己方在\方向形成“单四”22022
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x + 3 <= 15 && x - 1 > 0 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (x + 1 <= 15 && x - 3 > 0 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 2
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在/方向形成“单四”22022
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 2 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 2
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”22022
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 2
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”22022
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 2
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2) {
off[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////////////
// 己方在\方向形成“单四”22202
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0
&& ChessBoard.val[x + 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x + 3 <= 15 && x - 1 > 0 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0
&& ChessBoard.val[x + 3][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (x + 2 <= 15 && x - 2 > 0 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 2
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在\方向形成“单四”22202
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0
&& ChessBoard.val[x - 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 2 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0
&& ChessBoard.val[x - 3][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 2
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”22202
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0
&& ChessBoard.val[x][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0
&& ChessBoard.val[x][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 2
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”22202
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0
&& ChessBoard.val[x + 4][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0
&& ChessBoard.val[x + 3][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 2
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2) {
off[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////////////////////////////
// 己方在\方向形成“单四”的情况122220
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 0) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 1
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在/方向形成“单四”的情况122220
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 0) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 1
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”的情况122220
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 0) {
off[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 1
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”的情况122220
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 1
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况*22220
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x - 1][y - 1] == 3
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (y + 3 <= 15 && y + 3 <= 15 && x - 1 > 0 && y - 1 > 0
&& ChessBoard.val[x - 2][y - 2] == 3
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (y + 2 <= 15 && y + 2 <= 15 && x - 2 > 0 && y - 2 > 0
&& ChessBoard.val[x - 3][y - 3] == 3
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (y + 1 <= 15 && y + 1 <= 15 && x - 3 > 0 && y - 3 > 0
&& ChessBoard.val[x - 4][y - 4] == 3
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况*22220
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x + 1][y - 1] == 3
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y + 3 <= 15 && x + 1 <= 15 && y - 1 > 0
&& ChessBoard.val[x + 2][y - 2] == 3
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y + 2 <= 15 && x + 2 <= 15 && y - 2 > 0
&& ChessBoard.val[x + 3][y - 3] == 3
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y + 1 <= 15 && x + 3 <= 15 && y - 3 > 0
&& ChessBoard.val[x + 4][y - 4] == 3
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”的情况*22220
if (y - 1 == 0 && y + 4 <= 15 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 0) {
off[x][y] += SFLVAL;
}
if (y - 2 == 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += SFLVAL;
}
if (y - 3 == 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += SFLVAL;
}
if (y - 4 == 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”的情况*22220
if (x - 1 == 0 && x + 4 <= 15 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 2 == 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 3 == 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 4 == 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += SFLVAL;
}
}


public void off_cthree_line(int x, int y) {
// !己方在\方向构成三子成线02220
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
off[x][y] += CTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += CTLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += CTLVAL;
}
// !己方在/方向构成三子成线02220
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
off[x][y] += CTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += CTLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += CTLVAL;
}
// !己方在|方向构成三子成线02220
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += CTLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += CTLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += CTLVAL;
}
// !己方在-方向构成三子成线02220
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += CTLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += CTLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += CTLVAL;
}
}


public void off_sthree_line(int x, int y) {
// !己方在\方向构成三子成线12220
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在/方向构成三子成线12220
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在|方向构成三子成线12220
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在-方向构成三子成线12220
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += STLVAL;
}
///////////////////////////////////////////////////////////////
// !己方在\方向构成三子成线32220
if ( x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 3
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 3
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 3
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在/方向构成三子成线32220
if (x - 3 > 0  && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 3
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 3
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 3
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在|方向构成三子成线32220
if (y - 1 == 0 && y + 3 <= 15 
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (y - 2 == 0 && y + 2 <= 15 
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (y - 3 == 0 && y + 1 <= 15 
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在-方向构成三子成线32220
if (x - 1 == 0 && x + 3 <= 15 
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 == 0 && x + 2 <= 15 
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += STLVAL;
}
if (x - 3 == 0 && x + 1 <= 15 
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += STLVAL;
}
// ////////////////////////////////////////////////////////////
// !己方在\方向构成三子成线02221
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 1) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 1) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 1) {
off[x][y] += STLVAL;
}
// !己方在/方向构成三子成线02221
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 1) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 1) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 1) {
off[x][y] += STLVAL;
}
// !己方在|方向构成三子成线02221
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 1) {
off[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 1) {
off[x][y] += STLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 1) {
off[x][y] += STLVAL;
}
// !己方在-方向构成三子成线02221
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 1) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 1) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 1) {
off[x][y] += STLVAL;
}
//////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////
// !己方在\方向构成三子成线02223
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 3) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 3) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 3) {
off[x][y] += STLVAL;
}
// !己方在/方向构成三子成线02223
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 3) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 3) {
off[x][y] += STLVAL;
}
if ( y - 3 > 0 && x + 3 <= 15 
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 3) {
off[x][y] += STLVAL;
}
// !己方在|方向构成三子成线02223
if (y - 1 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2) {
off[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 1 == 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2) {
off[x][y] += STLVAL;
}
if (y - 3 > 0 && y  == 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2) {
off[x][y] += STLVAL;
}
// !己方在-方向构成三子成线02223
if (x - 1 > 0 && x + 2 == 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 1 == 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && x == 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2) {
off[x][y] += STLVAL;
}
}


public void off_two_line(int x, int y) {
// !己方在\方向构成两子子成线0220
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += OTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += OTLVAL;
}
// !己方在/方向构成两子子成线0220
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += OTLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += OTLVAL;
}


// !己方在|方向构成两子子成线0220
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += OTLVAL;
}
if (y - 2 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += OTLVAL;
}
// !己方在-方向构成两子子成线0220
if (x - 1 > 0 && x + 2 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += OTLVAL;
}
if (x - 2 > 0 && x + 1 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += OTLVAL;
}
}


public void offAnalyse(int x, int y) {
off_sfour_line(x, y);
off_cthree_line(x, y);
off_sthree_line(x, y);
off_two_line(x, y);
}


}package chess;


import java.awt.Color;


public class AiPlayer {
public static final int SFLVAL = 30;//形成“单四”值为30
public static final int CTLVAL = 20;//形成“双三”值为20
public static final int STLVAL = 10;//形成“单三”值为10
public static final int DTLVAL = 5;//防守形成“连二”值为5
public static final int OTLVAL = 2;//进攻形成“连二”值为2
int[][] def = new int[16][16];//各个点的防守值
int[][] off = new int[16][16];//各个点的进攻值
int xloc = 7;
int yloc = 7;//返回的棋盘坐标位置,缺省值为(7,7)
Chessman cm;


public AiPlayer() {
for (int i = 0; i <= 15; i++) {
for (int j = 0; j <= 15; j++) {
def[i][j] = 0;
off[i][j] = 0;
}
}
}
public void decLoacation() {
int tmp = 0;//当前最大的防守加进攻综合值
int tmpd = 0;//当前最大综合值的防守值
for (int m = 1; m <= 15; m++) {
for (int n = 1; n <= 15; n++) {
if (ChessBoard.val[m][n] != 0) {
continue;
}
if (off_five_lnie(m, n)) {
xloc = m;
yloc = n;
return;
}
}
}
// 四个for循环不能写在一起!否则“双四”出现在“死五”前面时,直接返回,出现“死局”
for (int m = 1; m <= 15; m++) {
for (int n = 1; n <= 15; n++) {
if (ChessBoard.val[m][n] != 0) {
continue;
}
if (def_five_lnie(m, n)) {
xloc = m;
yloc = n;
return;
}
}
}
for (int m = 1; m <= 15; m++) {
for (int n = 1; n <= 15; n++) {
if (ChessBoard.val[m][n] != 0) {
continue;
}
if (off_cfour_line(m, n)) {
xloc = m;
yloc = n;
return;
}
}
}
for (int m = 1; m <= 15; m++) {
for (int n = 1; n <= 15; n++) {
if (ChessBoard.val[m][n] != 0) {
continue;
}
if (def_cfour_line(m, n)) {
xloc = m;
yloc = n;
return;
}
offAnalyse(m, n);
defAnalyse(m, n);
int t = def[m][n] + off[m][n];
if (tmp == t && def[m][n] >= tmpd) {
//如果防守加进攻综合值相等,则取防守值大的点
tmp = t;
tmpd = def[m][n];
xloc = m;
yloc = n;
} else if (tmp < t) { 
//取防守加进攻的综合值大的点
tmp = t;
tmpd = def[m][n];
xloc = m;
yloc = n;
}
//把分析表从新置零
off[m][n] = 0;
def[m][n] = 0;
}
}
/*
* 遍历整个棋盘得到所有位置防守进攻综合值为零时,
* 若(7,7)点没有棋子时,棋子下在(7,7)点;否则
* 从(1,1)点开始顺序遍历整个棋盘,在第一个空格
* 子位置处下棋
*/
if(tmp == 0){
if(ChessBoard.val[7][7]==0){
xloc = 7;
yloc = 7;
}else{
for(int i = 1;i<16;i++){
for(int j =1;j<16;j++){
if(ChessBoard.val[i][j]==0){
xloc = i;
yloc = j;
}
}
}
}
}
}
public void run() {
decLoacation();
if (ChessBoard.val[xloc][yloc] != 0)
return;
cm = new Chessman(xloc, yloc, Color.white);
ChessBoard.val[xloc][yloc] = 2;
ChessBoard.turn = 1;
}
public boolean def_five_lnie(int x, int y) {
// 当出现对方五子成线的“危险”情况,直接返回x和y的值
// 对方在\方向构成五子连线的情况
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 1) {
return true;
}
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1) {
return true;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1) {
return true;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x + 1][y + 1] == 1) {
return true;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 4][y - 4] == 1) {
return true;
}
// 对方在/方向构成五子连线的情况
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 1) {
return true;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1) {
return true;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1) {
return true;
}
if (x - 1 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x - 1][y + 1] == 1) {
return true;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 4][y - 4] == 1) {
return true;
}
// 对方在-方向构成五子连线的情况
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 1) {
return true;
}
if (x + 3 <= 15 && x - 1 > 0 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x - 1][y] == 1) {
return true;
}
if (x + 2 <= 15 && x - 2 > 0 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x - 2][y] == 1) {
return true;
}
if (x + 1 <= 15 && x - 3 > 0 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 3][y] == 1) {
return true;
}
if (x - 4 > 0 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 4][y] == 1) {
return true;
}
// 对方在|方向构成五子连线的情况
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 1) {
return true;
}
if (y + 3 <= 15 && y - 1 > 0 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y - 1] == 1) {
return true;
}
if (y + 2 <= 15 && y - 2 > 0 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y - 2] == 1) {
return true;
}
if (y + 1 <= 15 && y - 3 > 0 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 3] == 1) {
return true;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 4] == 1) {
return true;
} else
return false;
}


public boolean def_cfour_line(int x, int y) {
// 当对方在\方向形成“双四”的情况011110
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 0) {
return true;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
return true;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
return true;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
return true;
}
// 对方在/方向形成“双四”的情况011110
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 0) {
return true;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
return true;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
return true;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
return true;
}
// 对方在|方向形成“双四”的情况011110
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 0) {
return true;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
return true;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
return true;
} else if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
return true;
}
// 对方在-方向形成“双四”的情况011110
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 0) {
return true;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
return true;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
return true;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
return true;
} else
return false;
}


public void def_sfour_line(int x, int y) {
// 对方在\方向形成“单四”的情况011112
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 2) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 2) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 2) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 2) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况011112
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 2) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 2) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 2) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 2) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况011112
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 2) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 2) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 2) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 2) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况011112
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 2) {
def[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况01111*
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 3) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 3) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 3) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 3) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况01111*
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 3) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 3) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 3) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && x + 4 <= 15 && ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 3) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况01111*
if (y - 1 > 0 && y + 4 == 16 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 == 16 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 == 16 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 == 16 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况01111*
if (x - 1 > 0 && x + 4 == 16 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 == 16 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 == 16 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 == 16 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////////////////
// 对方在\方向形成“单四”10111
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x + 2 <= 15 && x - 2 > 0 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (x + 1 <= 15 && x - 3 > 0 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 1
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”10111
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 1
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”10111
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 1
&& ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”10111
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 1
&& ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////
// 对方在\方向形成“单四”11011
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x + 3 <= 15 && x - 1 > 0 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (x + 1 <= 15 && x - 3 > 0 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 1
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”11011
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 2 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 1
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”11011
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 1
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”11011
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 1
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////////////
// 对方在\方向形成“单四”11101
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0
&& ChessBoard.val[x + 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x + 3 <= 15 && x - 1 > 0 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0
&& ChessBoard.val[x + 3][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (x + 2 <= 15 && x - 2 > 0 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 1
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”11101
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0
&& ChessBoard.val[x - 4][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 2 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0
&& ChessBoard.val[x - 3][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 1
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”11101
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0
&& ChessBoard.val[x][y + 4] == 1) {
def[x][y] += SFLVAL;
}
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0
&& ChessBoard.val[x][y + 3] == 1) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 1) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 1
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”11101
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0
&& ChessBoard.val[x + 4][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0
&& ChessBoard.val[x + 3][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 1) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 1
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况211110
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 2
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况211110
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 2
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况211110
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 2
&& ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况211110
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 2
&& ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况*11110
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x - 1][y - 1] == 3
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 1
&& ChessBoard.val[x + 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (y + 3 <= 15 && y + 3 <= 15 && x - 1 > 0 && y - 1 > 0
&& ChessBoard.val[x - 2][y - 2] == 3
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (y + 2 <= 15 && y + 2 <= 15 && x - 2 > 0 && y - 2 > 0
&& ChessBoard.val[x - 3][y - 3] == 3
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (y + 1 <= 15 && y + 1 <= 15 && x - 3 > 0 && y - 3 > 0
&& ChessBoard.val[x - 4][y - 4] == 3
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况*11110
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x + 1][y - 1] == 3
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 1
&& ChessBoard.val[x - 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y + 3 <= 15 && x + 1 <= 15 && y - 1 > 0
&& ChessBoard.val[x + 2][y - 2] == 3
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y + 2 <= 15 && x + 2 <= 15 && y - 2 > 0
&& ChessBoard.val[x + 3][y - 3] == 3
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y + 1 <= 15 && x + 3 <= 15 && y - 3 > 0
&& ChessBoard.val[x + 4][y - 4] == 3
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况*11110
if (y - 1 == 0 && y + 4 <= 15 && ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 1
&& ChessBoard.val[x][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (y - 2 == 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (y - 3 == 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (y - 4 == 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况*11110
if (x - 1 == 0 && x + 4 <= 15 && ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 1
&& ChessBoard.val[x + 4][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 == 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 == 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += SFLVAL;
}
if (x - 4 == 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += SFLVAL;
}
}


public void def_cthree_line(int x, int y) {
// !对方在\方向构成三子成线01110
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += CTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += CTLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += CTLVAL;
}
// !对方在/方向构成三子成线01110
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += CTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += CTLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += CTLVAL;
}
// !对方在|方向构成三子成线01110
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += CTLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += CTLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += CTLVAL;
}
// !对方在|方向构成三子成线01110
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += CTLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += CTLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += CTLVAL;
}
}


public void def_sthree_line(int x, int y) {
// !对方在\方向构成三子成线21110
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在/方向构成三子成线21110
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在|方向构成三子成线21110
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在-方向构成三子成线21110
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += STLVAL;
}
   ///////////////////////////////////////////////////////////////
// !对方在\方向构成三子成线31110
if ( x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 3
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 3
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 3
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在/方向构成三子成线31110
if (x - 3 > 0  && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 3
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 3
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 3
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在|方向构成三子成线31110
if (y - 1 == 0 && y + 3 <= 15 
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 0) {
def[x][y] += STLVAL;
}
if (y - 2 == 0 && y + 2 <= 15 
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += STLVAL;
}
if (y - 3 == 0 && y + 1 <= 15 
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += STLVAL;
}
// !对方在-方向构成三子成线31110
if (x - 1 == 0 && x + 3 <= 15 
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 0) {
def[x][y] += STLVAL;
}
if (x - 2 == 0 && x + 2 <= 15 
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += STLVAL;
}
if (x - 3 == 0 && x + 1 <= 15 
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += STLVAL;
}
// ////////////////////////////////////////////////////////////
// !对方在\方向构成三子成线01112
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 2) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 2) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 2) {
def[x][y] += STLVAL;
}
// !对方在/方向构成三子成线01112
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 2) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 2) {
def[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 2) {
def[x][y] += STLVAL;
}
// !对方在|方向构成三子成线01112
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1
&& ChessBoard.val[x][y + 3] == 2) {
def[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 2) {
def[x][y] += STLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 2) {
def[x][y] += STLVAL;
}
// !对方在-方向构成三子成线01112
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1
&& ChessBoard.val[x + 3][y] == 2) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 2) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 2) {
def[x][y] += STLVAL;
}
///////////////////////////////////////////////////////////////////////
// !对方在\方向构成三子成线01113
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 1
&& ChessBoard.val[x + 3][y + 3] == 3) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 3) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 3) {
def[x][y] += STLVAL;
}
// !对方在/方向构成三子成线01113
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 1
&& ChessBoard.val[x - 3][y + 3] == 3) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 3) {
def[x][y] += STLVAL;
}
if (x + 3 <= 15 && y - 3 > 0 
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 3) {
def[x][y] += STLVAL;
}
// !对方在|方向构成三子成线01113
if (y - 1 > 0 && y + 2 == 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 1) {
def[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 1 == 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 1) {
def[x][y] += STLVAL;
}
if (y - 3 > 0 && y  == 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 1) {
def[x][y] += STLVAL;
}
// !对方在-方向构成三子成线01113
if (x - 1 > 0 && x + 2 == 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 1) {
def[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 1 == 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 1) {
def[x][y] += STLVAL;
}
if (x - 3 > 0 && x == 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 1) {
def[x][y] += STLVAL;
}
}


public void def_two_line(int x, int y) {
// !对方在\方向构成两子子成线0110
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 1
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += DTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += DTLVAL;
}
// !对方在/方向构成两子成线0110
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 1
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += DTLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += DTLVAL;
}


// !对方在|方向构成两子成线0110
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 1
&& ChessBoard.val[x][y + 2] == 0) {
def[x][y] += DTLVAL;
}
if (y - 2 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 0) {
def[x][y] += DTLVAL;
}
// !对方在|方向构成两子成线0110
if (x - 1 > 0 && x + 2 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 1
&& ChessBoard.val[x + 2][y] == 0) {
def[x][y] += DTLVAL;
}
if (x - 2 > 0 && x + 1 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 0) {
def[x][y] += DTLVAL;
}
}


public void defAnalyse(int x, int y) {
def_sfour_line(x, y);
def_cthree_line(x, y);
def_sthree_line(x, y);
def_two_line(x, y);
}


public boolean off_five_lnie(int x, int y) {
// 当出现己方五子成线的“有利”情况,直接返回x和y的值
// 己方在\方向构成五子连线的情况
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 2) {
return true;
}
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2) {
return true;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2) {
return true;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x + 1][y + 1] == 2) {
return true;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 4][y - 4] == 2) {
return true;
}
// 己方在/方向构成五子连线的情况
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 2) {
return true;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2) {
return true;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2) {
return true;
}
if (x - 1 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x - 1][y + 1] == 2) {
return true;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 4][y - 4] == 2) {
return true;
}
// 己方在-方向构成五子连线的情况
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 2) {
return true;
}
if (x + 3 <= 15 && x - 1 > 0 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x - 1][y] == 2) {
return true;
}
if (x + 2 <= 15 && x - 2 > 0 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x - 2][y] == 2) {
return true;
}
if (x + 1 <= 15 && x - 3 > 0 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 3][y] == 2) {
return true;
}
if (x - 4 > 0 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 4][y] == 2) {
return true;
}
// 己方在|方向构成五子连线的情况
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 2) {
return true;
}
if (y + 3 <= 15 && y - 1 > 0 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y - 1] == 2) {
return true;
}
if (y + 2 <= 15 && y - 2 > 0 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y - 2] == 2) {
return true;
}
if (y + 1 <= 15 && y - 3 > 0 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 3] == 2) {
return true;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 4] == 2) {
return true;
} else
return false;
}


public boolean off_cfour_line(int x, int y) {
// 当对方在\方向形成“双四”的情况022220
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 0) {
return true;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
return true;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
return true;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
return true;
}
// 对方在/方向形成“双四”的情况
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 0) {
return true;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
return true;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
return true;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
return true;
}
// 对方在|方向形成“双四”的情况
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 0) {
return true;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
return true;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
return true;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
return true;
}
// 对方在-方向形成“双四”的情况
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 0) {
return true;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
return true;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
return true;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
return true;
} else
return false;
}


public void off_sfour_line(int x, int y) {
// 己方在\方向形成“单四”的情况022221
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 1) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 1) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 1) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 1) {
off[x][y] += SFLVAL;
}
// 己方在/方向形成“单四”的情况022221
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 1) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 1) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 1) {
off[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 1) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”的情况022221
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 1) {
off[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 1) {
off[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 1) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 1) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”的情况022221
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 1) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 1) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 1) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 1) {
off[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况02222*
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 3) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 3) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 3) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 0
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 3) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况02222*
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 3) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 3) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 3) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && x + 4 <= 15 && ChessBoard.val[x + 4][y - 4] == 0
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 3) {
def[x][y] += SFLVAL;
}
// 对方在|方向形成“单四”的情况02222*
if (y - 1 > 0 && y + 4 == 16 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2) {
def[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 == 16 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2) {
def[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 == 16 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2) {
def[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 == 16 && ChessBoard.val[x][y - 4] == 0
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2) {
def[x][y] += SFLVAL;
}
// 对方在-方向形成“单四”的情况02222*
if (x - 1 > 0 && x + 4 == 16 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 == 16 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 == 16 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2) {
def[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 == 16 && ChessBoard.val[x - 4][y] == 0
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2) {
def[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////////////////
// 己方在\方向形成“单四”20222
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x + 2 <= 15 && x - 2 > 0 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (x + 1 <= 15 && x - 3 > 0 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 2
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在/方向形成“单四”20222
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 2
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”20222
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 2
&& ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”20222
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 2
&& ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2) {
off[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////
// 己方在\方向形成“单四”22022
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x + 3 <= 15 && x - 1 > 0 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (x + 1 <= 15 && x - 3 > 0 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 2
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在/方向形成“单四”22022
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 2 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 3 <= 15 && y - 3 > 0 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 2
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”22022
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 2
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”22022
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 2
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2) {
off[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////////////
// 己方在\方向形成“单四”22202
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0
&& ChessBoard.val[x + 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x + 3 <= 15 && x - 1 > 0 && y - 1 > 0 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0
&& ChessBoard.val[x + 3][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (x + 2 <= 15 && x - 2 > 0 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0
&& ChessBoard.val[x + 2][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && ChessBoard.val[x - 4][y - 4] == 2
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在\方向形成“单四”22202
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0
&& ChessBoard.val[x - 4][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && y - 2 > 0 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0
&& ChessBoard.val[x - 3][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && y - 2 > 0 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0
&& ChessBoard.val[x - 2][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (x + 4 <= 15 && y - 4 > 0 && ChessBoard.val[x + 4][y - 4] == 2
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”22202
if (y + 4 <= 15 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0
&& ChessBoard.val[x][y + 4] == 2) {
off[x][y] += SFLVAL;
}
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0
&& ChessBoard.val[x][y + 3] == 2) {
off[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0
&& ChessBoard.val[x][y + 2] == 2) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && ChessBoard.val[x][y - 4] == 2
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”22202
if (x + 4 <= 15 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0
&& ChessBoard.val[x + 4][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0
&& ChessBoard.val[x + 3][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0
&& ChessBoard.val[x + 2][y] == 2) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && ChessBoard.val[x - 4][y] == 2
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2) {
off[x][y] += SFLVAL;
}
// /////////////////////////////////////////////////////////////////////////////////////
// 己方在\方向形成“单四”的情况122220
if (x - 1 > 0 && y - 1 > 0 && x + 4 <= 15 && y + 4 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 0) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && y - 4 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 4][y - 4] == 1
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在/方向形成“单四”的情况122220
if (x - 4 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 4 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 0) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += SFLVAL;
}
if (x - 1 > 0 && y - 4 > 0 && x + 4 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 4][y - 4] == 1
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”的情况122220
if (y - 1 > 0 && y + 4 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 0) {
off[x][y] += SFLVAL;
}
if (y - 2 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += SFLVAL;
}
if (y - 3 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += SFLVAL;
}
if (y - 4 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 4] == 1
&& ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”的情况122220
if (x - 1 > 0 && x + 4 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 2 > 0 && x + 3 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 3 > 0 && x + 2 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 4 > 0 && x + 1 <= 15 && ChessBoard.val[x - 4][y] == 1
&& ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += SFLVAL;
}
// ////////////////////////////////////////////////////////
// 对方在\方向形成“单四”的情况*22220
if (x + 4 <= 15 && y + 4 <= 15 && ChessBoard.val[x - 1][y - 1] == 3
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 2
&& ChessBoard.val[x + 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (y + 3 <= 15 && y + 3 <= 15 && x - 1 > 0 && y - 1 > 0
&& ChessBoard.val[x - 2][y - 2] == 3
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (y + 2 <= 15 && y + 2 <= 15 && x - 2 > 0 && y - 2 > 0
&& ChessBoard.val[x - 3][y - 3] == 3
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (y + 1 <= 15 && y + 1 <= 15 && x - 3 > 0 && y - 3 > 0
&& ChessBoard.val[x - 4][y - 4] == 3
&& ChessBoard.val[x - 3][y - 3] == 2
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 对方在/方向形成“单四”的情况*22220
if (x - 4 > 0 && y + 4 <= 15 && ChessBoard.val[x + 1][y - 1] == 3
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 2
&& ChessBoard.val[x - 4][y + 4] == 0) {
def[x][y] += SFLVAL;
}
if (x - 3 > 0 && y + 3 <= 15 && x + 1 <= 15 && y - 1 > 0
&& ChessBoard.val[x + 2][y - 2] == 3
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
def[x][y] += SFLVAL;
}
if (x - 2 > 0 && y + 2 <= 15 && x + 2 <= 15 && y - 2 > 0
&& ChessBoard.val[x + 3][y - 3] == 3
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
def[x][y] += SFLVAL;
}
if (x - 1 > 0 && y + 1 <= 15 && x + 3 <= 15 && y - 3 > 0
&& ChessBoard.val[x + 4][y - 4] == 3
&& ChessBoard.val[x + 3][y - 3] == 2
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
def[x][y] += SFLVAL;
}
// 己方在|方向形成“单四”的情况*22220
if (y - 1 == 0 && y + 4 <= 15 && ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 2
&& ChessBoard.val[x][y + 4] == 0) {
off[x][y] += SFLVAL;
}
if (y - 2 == 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += SFLVAL;
}
if (y - 3 == 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += SFLVAL;
}
if (y - 4 == 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 2
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += SFLVAL;
}
// 己方在-方向形成“单四”的情况*22220
if (x - 1 == 0 && x + 4 <= 15 && ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 2
&& ChessBoard.val[x + 4][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 2 == 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 3 == 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += SFLVAL;
}
if (x - 4 == 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 2
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += SFLVAL;
}
}


public void off_cthree_line(int x, int y) {
// !己方在\方向构成三子成线02220
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
off[x][y] += CTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += CTLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += CTLVAL;
}
// !己方在/方向构成三子成线02220
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
off[x][y] += CTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += CTLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += CTLVAL;
}
// !己方在|方向构成三子成线02220
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += CTLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += CTLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += CTLVAL;
}
// !己方在-方向构成三子成线02220
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += CTLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += CTLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += CTLVAL;
}
}


public void off_sthree_line(int x, int y) {
// !己方在\方向构成三子成线12220
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 1
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 1
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 1
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在/方向构成三子成线12220
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 1
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 1
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 1
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在|方向构成三子成线12220
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 1
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 1
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 1
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在-方向构成三子成线12220
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 1
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 1
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 1
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += STLVAL;
}
///////////////////////////////////////////////////////////////
// !己方在\方向构成三子成线32220
if ( x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 3
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 3
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 3
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在/方向构成三子成线32220
if (x - 3 > 0  && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 3
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 3
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 3
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在|方向构成三子成线32220
if (y - 1 == 0 && y + 3 <= 15 
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 0) {
off[x][y] += STLVAL;
}
if (y - 2 == 0 && y + 2 <= 15 
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += STLVAL;
}
if (y - 3 == 0 && y + 1 <= 15 
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += STLVAL;
}
// !己方在-方向构成三子成线32220
if (x - 1 == 0 && x + 3 <= 15 
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 0) {
off[x][y] += STLVAL;
}
if (x - 2 == 0 && x + 2 <= 15 
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += STLVAL;
}
if (x - 3 == 0 && x + 1 <= 15 
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += STLVAL;
}
// ////////////////////////////////////////////////////////////
// !己方在\方向构成三子成线02221
if (x - 1 > 0 && y - 1 > 0 && x + 3 <= 15 && y + 3 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 1) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 1) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 1) {
off[x][y] += STLVAL;
}
// !己方在/方向构成三子成线02221
if (x - 3 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 3 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 1) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 1) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 3 > 0 && x + 3 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 1) {
off[x][y] += STLVAL;
}
// !己方在|方向构成三子成线02221
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2
&& ChessBoard.val[x][y + 3] == 1) {
off[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 1) {
off[x][y] += STLVAL;
}
if (y - 3 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 1) {
off[x][y] += STLVAL;
}
// !己方在-方向构成三子成线02221
if (x - 1 > 0 && x + 3 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2
&& ChessBoard.val[x + 3][y] == 1) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 2 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 1) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && x + 1 <= 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 1) {
off[x][y] += STLVAL;
}
//////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////
// !己方在\方向构成三子成线02223
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 2
&& ChessBoard.val[x + 3][y + 3] == 3) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 3) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && y - 3 > 0 
&& ChessBoard.val[x - 3][y - 3] == 0
&& ChessBoard.val[x - 2][y - 2] == 2
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 3) {
off[x][y] += STLVAL;
}
// !己方在/方向构成三子成线02223
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 2
&& ChessBoard.val[x - 3][y + 3] == 3) {
off[x][y] += STLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 3) {
off[x][y] += STLVAL;
}
if ( y - 3 > 0 && x + 3 <= 15 
&& ChessBoard.val[x + 3][y - 3] == 0
&& ChessBoard.val[x + 2][y - 2] == 2
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 3) {
off[x][y] += STLVAL;
}
// !己方在|方向构成三子成线02223
if (y - 1 > 0 && y + 2 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 2) {
off[x][y] += STLVAL;
}
if (y - 2 > 0 && y + 1 == 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 2) {
off[x][y] += STLVAL;
}
if (y - 3 > 0 && y  == 15 && ChessBoard.val[x][y - 3] == 0
&& ChessBoard.val[x][y - 2] == 2
&& ChessBoard.val[x][y - 1] == 2) {
off[x][y] += STLVAL;
}
// !己方在-方向构成三子成线02223
if (x - 1 > 0 && x + 2 == 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 2) {
off[x][y] += STLVAL;
}
if (x - 2 > 0 && x + 1 == 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 2) {
off[x][y] += STLVAL;
}
if (x - 3 > 0 && x == 15 && ChessBoard.val[x - 3][y] == 0
&& ChessBoard.val[x - 2][y] == 2
&& ChessBoard.val[x - 1][y] == 2) {
off[x][y] += STLVAL;
}
}


public void off_two_line(int x, int y) {
// !己方在\方向构成两子子成线0220
if (x - 1 > 0 && y - 1 > 0 && x + 2 <= 15 && y + 2 <= 15
&& ChessBoard.val[x - 1][y - 1] == 0
&& ChessBoard.val[x + 1][y + 1] == 2
&& ChessBoard.val[x + 2][y + 2] == 0) {
off[x][y] += OTLVAL;
}
if (x - 2 > 0 && y - 2 > 0 && x + 1 <= 15 && y + 1 <= 15
&& ChessBoard.val[x - 2][y - 2] == 0
&& ChessBoard.val[x - 1][y - 1] == 2
&& ChessBoard.val[x + 1][y + 1] == 0) {
off[x][y] += OTLVAL;
}
// !己方在/方向构成两子子成线0220
if (x - 2 > 0 && y - 1 > 0 && x + 1 <= 15 && y + 2 <= 15
&& ChessBoard.val[x + 1][y - 1] == 0
&& ChessBoard.val[x - 1][y + 1] == 2
&& ChessBoard.val[x - 2][y + 2] == 0) {
off[x][y] += OTLVAL;
}
if (x - 1 > 0 && y - 2 > 0 && x + 2 <= 15 && y + 1 <= 15
&& ChessBoard.val[x + 2][y - 2] == 0
&& ChessBoard.val[x + 1][y - 1] == 2
&& ChessBoard.val[x - 1][y + 1] == 0) {
off[x][y] += OTLVAL;
}


// !己方在|方向构成两子子成线0220
if (y - 1 > 0 && y + 3 <= 15 && ChessBoard.val[x][y - 1] == 0
&& ChessBoard.val[x][y + 1] == 2
&& ChessBoard.val[x][y + 2] == 0) {
off[x][y] += OTLVAL;
}
if (y - 2 > 0 && y + 1 <= 15 && ChessBoard.val[x][y - 2] == 0
&& ChessBoard.val[x][y - 1] == 2
&& ChessBoard.val[x][y + 1] == 0) {
off[x][y] += OTLVAL;
}
// !己方在-方向构成两子子成线0220
if (x - 1 > 0 && x + 2 <= 15 && ChessBoard.val[x - 1][y] == 0
&& ChessBoard.val[x + 1][y] == 2
&& ChessBoard.val[x + 2][y] == 0) {
off[x][y] += OTLVAL;
}
if (x - 2 > 0 && x + 1 <= 15 && ChessBoard.val[x - 2][y] == 0
&& ChessBoard.val[x - 1][y] == 2
&& ChessBoard.val[x + 1][y] == 0) {
off[x][y] += OTLVAL;
}
}


public void offAnalyse(int x, int y) {
off_sfour_line(x, y);
off_cthree_line(x, y);
off_sthree_line(x, y);
off_two_line(x, y);
}


}


原创粉丝点击