【发布时间】:2013-12-28 10:23:45
【问题描述】:
我或多或少是 Java 新手。
我正在用 java 制作一个基于控制台的 connect 4 游戏,我已经完成了很多工作,我只是在努力检查如何检查对角线获胜(对角线连续四块)。我的垂直/水平胜利跳棋工作正常,但我不知道如何为对角跳棋做类似的事情。棋盘是打印到控制台的二维数组,为了检查是否获胜,我检查了四个相同的棋子是否彼此相邻或彼此上方。
这里是板代码的位:
private String board[][] = new String[8][8];
创建数组
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
board[i][j] = "( )";
}
}
用空白槽填充板
void displayBoard() {
for (int i = 1; i < 9; i++) {
System.out.print(" " + i + " ");
}
System.out.println();
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
System.out.print(board[i][j]);
}
System.out.println();
}
}
这是winchecker
boolean winCheck1() {
String p = "(" + piece1 + ")";
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 5; j++) {
if ((board[i][j].equals(p) && board[i][j + 1].equals(p)
&& board[i][j + 2].equals(p) && board[i][j + 3]
.equals(p))) {
this.win1();
return false;
}
}
}
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 5; j++) {
if ((board[j][i].equals(p) && board[j + 1][i].equals(p)
&& board[j + 2][i].equals(p) && board[j + 3][i]
.equals(p))) {
this.win1();
return false;
}
}
}
this.play2();
return false;
}
任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: java algorithm for-loop multidimensional-array