【发布时间】:2013-12-04 20:16:45
【问题描述】:
我有这个 10x10 数组:
private static int[][] intersections = new int[10][10];
我正在使用此代码来查找水平方向是否有 5 个值:
public static int horizontalCheck() {
String horizontal = "";
for (int i = 0; i < intersections.length; i++) {
for (int j = 0; j < intersections[i].length; j++) {
horizontal += Integer.toString(intersections[i][j]);
}
if (horizontal.indexOf("11111") != -1) {
// White wins.
return 1;
} else if (horizontal.indexOf("22222") != -1) {
// Black wins.
return 2;
}
horizontal = "";
}
return 0;
}
还有一个类似的代码可以垂直执行。但我的问题是,我怎样才能找到对角线是否有 5 个值?棋盘大小为 10x10,对角线可以在棋盘上的任何位置进行双向。如果您有任何问题或需要有关代码的更多信息,请务必提出。
【问题讨论】:
-
这是什么意思?水平方向连续 5 个值。
-
我认为使用
horizontal.contains会更习惯。 -
@Trojan.ZBOT 基本上我的意思是,它是一个五子棋游戏,你可以在水平、垂直或对角线连续拥有 5 个按钮的情况下获胜。播放器按钮在数组中相应地表示为 1 和 2。
-
小点。不管交叉的奇怪算法,如果它运行多次,你不应该使用字符串连接。这是致命的无效。请改用
StringBuilder。
标签: java