JAVA控制台五子棋的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 05:51:51
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;
}
}

看这段代码
有一个二维String数组代表棋盘
棋盘上面的棋子是以●或者○这样的String存放在这个数组里面
每下完一个棋子
都会运行这段代码来判断下
代码先是横向扫描棋盘上面棋子 把他们连接起来放到一个String变量里
也就是joint这个变量
然后用joint.contains("○○○○○")这个方法来判断是否有5个相同的棋子连起来了
有连起来的就是有结果了
然后再是左斜行的判断,右斜行的判断
其实代码上的注释写的很清楚了。。。。
不过怎么感觉少了纵向的判断了?