【发布时间】:2015-04-17 10:25:02
【问题描述】:
我正在制作这个基本上是Connect 4 game 的程序。正如您在下面看到的,我有一组设置的圆圈 c0、c1、c2 等,以及一个重复的圆圈 c0d,它在每次按钮单击时产生并下降到一个可用的插槽。在“背景”中,我制作了一个 2d 矩阵,一个布尔数组,它可以帮助我决定何时赢得比赛(通过在一行中有 4 次相同的颜色。当然,我还有 6 个其他行具有相同的颜色功能也一样,但它们基本上是一样的。
Circle c0d = new Circle(64, 32, 32);
TranslateTransition translate = new TranslateTransition(
Duration.millis(750), c0d);
translate.setToX(0);
FadeTransition fade = new FadeTransition();
fade.setDuration(Duration.seconds(1));
GridPane.setConstraints(c0d, 0, 0);
GridPane.setHalignment(c0d, HPos.CENTER);
grid.getChildren().add(c0d);
if (c0.getFill() == Color.YELLOW) {
c0.setFill(Color.RED);
c1.setFill(Color.RED);
c2.setFill(Color.RED);
c3.setFill(Color.RED);
c4.setFill(Color.RED);
c5.setFill(Color.RED);
c6.setFill(Color.RED);
c0d.setFill(Color.YELLOW);
switch (x0) {
case 0:
translate.setToY(432);
x0++;
wl[5][0] = true;
break;
case 1:
translate.setToY(360);
x0++;
wl[4][0] = true;
break;
case 2:
translate.setToY(288);
x0++;
wl[3][0] = true;
break;
case 3:
translate.setToY(216);
x0++;
wl[2][0] = true;
break;
case 4:
translate.setToY(144);
x0++;
wl[1][0] = true;
break;
case 5:
translate.setToY(72);
x0++;
wl[0][0] = true;
butt0.setDisable(true);
break;
}
} else {
c0.setFill(Color.YELLOW);
c1.setFill(Color.YELLOW);
c2.setFill(Color.YELLOW);
c3.setFill(Color.YELLOW);
c4.setFill(Color.YELLOW);
c5.setFill(Color.YELLOW);
c6.setFill(Color.YELLOW);
c0d.setFill(Color.RED);
switch (x0) {
case 0:
translate.setToY(432);
x0++;
wl[5][0] = false;
break;
case 1:
translate.setToY(360);
x0++;
wl[4][0] = false;
break;
case 2:
translate.setToY(288);
x0++;
wl[3][0] = false;
break;
case 3:
translate.setToY(216);
x0++;
wl[2][0] = false;
break;
case 4:
translate.setToY(144);
x0++;
wl[1][0] = false;
break;
case 5:
translate.setToY(72);
x0++;
wl[0][0] = false;
butt0.setDisable(true);
break;
}
}
for (i = 5; i <= 0; i--) {
if (wl[i][0] == wl[i - 1][0] == wl[i - 2][0] == wl[i - 3][0]) {
System.out.println("WON");
break;
}
现在你可以看到,最后一个 for 循环通过比较一行中的位置来决定何时赢得比赛,如果它们都是“假”,这意味着红色或真,即黄色,应该赢在控制台上输出。由于某种原因它没有显示。我错过了什么吗?
【问题讨论】:
标签: java arrays for-loop javafx boolean