privatebooleanjudgeWin(){//flag表示是否可以断定赢/输booleanflag=false;Stringjoint;//joint:元素连接起来得到的一个字符串//进行横行扫描for(inti=0;i
private boolean judgeWin()
{
//flag表示是否可以断定赢/输
boolean flag = false;
String joint; //joint:元素连接起来得到的一个字符串
//进行横行扫描
for (int i = 0 ; i < BOARD_SIZE ; i++)
{
joint = "";
for (int j = 0 ; j < BOARD_SIZE ; j++)
{
joint += board[i][j];
}
if (joint.contains("●●●●●"))
{
System.out.println("您赢啦!");
flag = true;
return flag;
}
else if (joint.contains("○○○○○"))
{
System.out.println("您输啦!");
flag = true;
//提前返回flag
return flag;
}
}
//进行左斜行扫描
for (int i = -(BOARD_SIZE - 2) ; i < BOARD_SIZE - 1 ; i++)
{
joint = "";
for (int j = 0 ; j < BOARD_SIZE ; j++)
{
int line = i + j;
//只截取坐标值没有越界的点
if (line >= 0 && line < 15)
{
joint += board[j][line];
}
}
if (joint.contains("●●●●●"))
{
System.out.println("您赢啦!");
flag = true;
return flag;
}
else if (joint.contains("○○○○○"))
{
System.out.println("您输啦!");
flag = true;
return flag;
}
}
//进行右斜行扫描
for (int i = 1 ; i < 2*(BOARD_SIZE - 1) ; i++)
{
joint = "";
for (int j = 0 ; j < BOARD_SIZE ; j++)
{
int line = i - j;
if (line >= 0 && line < 15)
{
joint += board[j][line];
}
}
if (joint.contains("●●●●●"))
{
System.out.println("您赢啦!");
flag = true;
return flag;
}
else if (joint.contains("○○○○○"))
{
System.out.println("您输啦!");
flag = true;
//最后这个return可省略
}
}
return flag;
}
------------------------------------------------
由于代码太长所以只能贴出判断错误的方法
请问这个判断是怎么计算的 详细讲解 谢谢
谁能留个QQ 我发全代码0,0追加分
展开