反向循环井字游戏

发布于 2025-01-19 06:59:10 字数 3112 浏览 2 评论 0原文

我有循环:

for (int i = 0; i<3; i++){
  System.out.println(i);
}

output:
0
1
2

我需要扭转此循环以输出:

2
1
0

我需要它,因为我在Tictactoe Java游戏上工作。

这是我的检查代码:

 static boolean checkWin(char dot) {
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map[i].length; j++) {
                if (map[0][i] == dot && i == 2) {
                    return true;
                }
                if (map[1][i] == dot && i == 2) {
                    return true;
                }

                if (map[2][i] == dot && i == 2) {
                    return true;
                }
                if (map[i][0] == dot && i == 2) {
                    return true;
                }
                if (map[i][1] == dot && i == 2) {
                    return true;
                }
                if (map[i][2] == dot && i == 2) {
                    return true;
                }
                if (map[i][i] == dot && i == 2) {
                    return true;
                }
                if (map[i][0] == dot && i == 2) {
                    return true;
                }
            }

        }
        return false;
    }

我需要重构此方法的最后一件事:

  static boolean checkWin(char dot) {
        if (map[0][0] == dot && map[0][1] == dot && map[0][2] == dot) {
            return true;
        }
        if (map[1][0] == dot && map[1][1] == dot && map[1][2] == dot) {
            return true;
        }
        if (map[2][0] == dot && map[2][1] == dot && map[2][2] == dot) {
            return true;
        }

        if (map[0][0] == dot && map[1][0] == dot && map[2][0] == dot) {
            return true;
        }
        if (map[0][1] == dot && map[1][1] == dot && map[2][1] == dot) {
            return true;
        }
        if (map[0][2] == dot && map[1][2] == dot && map[2][2] == dot) {
            return true;
        }

        if (map[0][0] == dot && map[1][1] == dot && map[2][2] == dot) {
            return true;
        }
        if (map[0][2] == dot && map[1][1] == dot && map[2][0] == dot) {
            return true;
        }

        return false;
    }
}

我几乎完成了。

我需要重构的最后一件事是代码的这一部分:

if (map[0][2] == dot && map[1][1] == dot && map[2][0] == dot) {
   return true;
}

在类似的

  if (map[i][0] == dot && i == 2) {
          return true;
    }

主要问题上是在这里:

for (int i = 0; i<3; i++){
  System.out.println(i);
}

output:
0
1
2

我需要扭转此循环以输出:

2
1
0

要感受到最后一部分:

  if (map[i][0] == dot && i == 2) {
          return true;
 }

我需要用值2 1 0感受到最后一个条件,

  if (map[i][insert here] == dot && i == 2) {
          return true;
 }

请帮助。

I've got loop:

for (int i = 0; i<3; i++){
  System.out.println(i);
}

output:
0
1
2

I need to reverse this loop to output:

2
1
0

I need it because I work on TicTacToe Java game.

Here is my code for check win:

 static boolean checkWin(char dot) {
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map[i].length; j++) {
                if (map[0][i] == dot && i == 2) {
                    return true;
                }
                if (map[1][i] == dot && i == 2) {
                    return true;
                }

                if (map[2][i] == dot && i == 2) {
                    return true;
                }
                if (map[i][0] == dot && i == 2) {
                    return true;
                }
                if (map[i][1] == dot && i == 2) {
                    return true;
                }
                if (map[i][2] == dot && i == 2) {
                    return true;
                }
                if (map[i][i] == dot && i == 2) {
                    return true;
                }
                if (map[i][0] == dot && i == 2) {
                    return true;
                }
            }

        }
        return false;
    }

last thing that I need to refactor this method:

  static boolean checkWin(char dot) {
        if (map[0][0] == dot && map[0][1] == dot && map[0][2] == dot) {
            return true;
        }
        if (map[1][0] == dot && map[1][1] == dot && map[1][2] == dot) {
            return true;
        }
        if (map[2][0] == dot && map[2][1] == dot && map[2][2] == dot) {
            return true;
        }

        if (map[0][0] == dot && map[1][0] == dot && map[2][0] == dot) {
            return true;
        }
        if (map[0][1] == dot && map[1][1] == dot && map[2][1] == dot) {
            return true;
        }
        if (map[0][2] == dot && map[1][2] == dot && map[2][2] == dot) {
            return true;
        }

        if (map[0][0] == dot && map[1][1] == dot && map[2][2] == dot) {
            return true;
        }
        if (map[0][2] == dot && map[1][1] == dot && map[2][0] == dot) {
            return true;
        }

        return false;
    }
}

I almost done it.

Last thing that i need refactor this part of code:

if (map[0][2] == dot && map[1][1] == dot && map[2][0] == dot) {
   return true;
}

to something like

  if (map[i][0] == dot && i == 2) {
          return true;
    }

Main question is here:

for (int i = 0; i<3; i++){
  System.out.println(i);
}

output:
0
1
2

I need to reverse this loop to output:

2
1
0

to feel this last part:

  if (map[i][0] == dot && i == 2) {
          return true;
 }

i need to feel this last condition with values 2 1 0

  if (map[i][insert here] == dot && i == 2) {
          return true;
 }

Please Help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

瘫痪情歌 2025-01-26 06:59:10

如果您想要做的只是反转循环输出,则可以反转您在 for 循环中所做的事情

for (int i = 2; i>=0; i--){
        System.out.println(i);
    }

output:
2
1
0

作为一个简单的示例。

If all you want to do is reverse the loop output, you can just invert what you're doing in the for loop

for (int i = 2; i>=0; i--){
        System.out.println(i);
    }

output:
2
1
0

As a quick example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文