Java 连接4,检查赢家算法

Java 连接4,检查赢家算法,java,algorithm,Java,Algorithm,我正在编写一些Java代码来实现Connect 4游戏。当一名玩家将四个筹码水平、垂直或对角地排成一行时,宣布为胜者。显然,我可以写一些for循环,每次都检查是否有赢家,但我想听听关于如何更优雅地完成它的建议。我在考虑将所有获胜组合添加到某个数据结构中,并只检查最后一步所涉及的组合,但我不确定这是否可行或如何实现。我是Java新手,所以对于使用什么数据结构或如何实现的任何提示或建议都将不胜感激。谢谢 编辑:好的,有人能告诉我从哪里开始实施吗?这里的答案是:不管怎样,为了检查胜利条件,你需要在整个

我正在编写一些Java代码来实现Connect 4游戏。当一名玩家将四个筹码水平、垂直或对角地排成一行时,宣布为胜者。显然,我可以写一些for循环,每次都检查是否有赢家,但我想听听关于如何更优雅地完成它的建议。我在考虑将所有获胜组合添加到某个数据结构中,并只检查最后一步所涉及的组合,但我不确定这是否可行或如何实现。我是Java新手,所以对于使用什么数据结构或如何实现的任何提示或建议都将不胜感激。谢谢


编辑:好的,有人能告诉我从哪里开始实施吗?这里的答案是:

不管怎样,为了检查胜利条件,你需要在整个电路板上执行某种循环或递归。只要你的循环停止在任何方向上检查,只要它不再是一个成功的条件,例如,如果你从左到右检查,并且在两次迭代后你发现一个不同的颜色,那么它应该是好的

优化这一点的一种方法是,在玩新招式时只检查胜利条件,然后只需要检查该招式周围的情况,而不需要检查整个棋盘。
如果你需要检查一个完整的棋盘,而不是轮流检查,那么进一步的步骤是保留一份已玩的招式列表,并从第一步开始进行检查,然后你可以在玩赢的招式后立即停止。

无论怎样,为了检查胜利情况,您需要在整个电路板上执行某种循环或递归。只要你的循环停止在任何方向上检查,只要它不再是一个成功的条件,例如,如果你从左到右检查,并且在两次迭代后你发现一个不同的颜色,那么它应该是好的

优化这一点的一种方法是,在玩新招式时只检查胜利条件,然后只需要检查该招式周围的情况,而不需要检查整个棋盘。
如果你需要检查一个完整的棋盘,而不是一个接一个地检查,那么下一步就是保留一个棋盘上的动作列表,并从第一步开始检查,然后,您可以在玩赢棋后立即停止。

使用较小的搜索空间,完全可以在connect four游戏中使用嵌套循环检查赢棋条件

如果您存储了获胜的配置,您必须将您的比赛场地与它们进行比较——最有可能是通过嵌套循环或散列。直接比较或矩阵乘法都无所谓

我建议使用嵌套循环并使用不同的方法来检查水平、垂直和对角的获胜条件。是的,有可能提高它的效率-主要是对于更大的电路板-但对于4x4电路板来说,真的不值得这么麻烦,因为速度的提高是微不足道的,即使存在,它可能会更慢,代码也会变得更复杂


例如,您可以找到一些优化。但正如您所看到的,代码变得不直观。

在一个较小的搜索空间中,完全可以使用嵌套循环来检查connect four游戏中的胜利条件

如果您存储了获胜的配置,您必须将您的比赛场地与它们进行比较——最有可能是通过嵌套循环或散列。直接比较或矩阵乘法都无所谓

我建议使用嵌套循环并使用不同的方法来检查水平、垂直和对角的获胜条件。是的,有可能提高它的效率-主要是对于更大的电路板-但对于4x4电路板来说,真的不值得这么麻烦,因为速度的提高是微不足道的,即使存在,它可能会更慢,代码也会变得更复杂


例如,您可以找到一些优化。但是正如您所看到的,代码变得不直观。

我假设您的电路板是一个char[]]或int[]]矩阵,其中您可能有:

如果字符[][]->“B”表示黑色,“R”表示红色

如果int[][]->1表示黑色,0表示红色

在我看来,对于这类问题,只有使用二维阵列矩阵才有意义。无论如何,正如其他人所说,检查胜利者的算法不仅应该,而且必须在棋盘上循环。这是因为它是解决这类问题最优雅的方法

您基本上应该执行以下操作:

嵌套for循环:一个用于迭代行,一个用于迭代列

for (int i = 0; i < matrix.length; i ++) {
  for (int j = 0; j < matrix.length; j ++) {
    // Check for stuff in here
  }
}
水平左:

对角线向上向左:


基本上你有8个方向,你需要检查当你找到一块。您可以对矩阵的每个元素执行此操作,即检查所有方向矩阵[i][j],或从“放下”工件的位置开始执行此操作。

我假设您的电路板是一个char[]]或int[]]矩阵,其中您可能有:

如果字符[][]->“B”表示黑色,“R”表示红色

如果int[][]->1表示黑色,0表示红色

在我的m 对于这类问题,只有使用二维阵列矩阵才有意义。无论如何,正如其他人所说,检查胜利者的算法不仅应该,而且必须在棋盘上循环。这是因为它是解决这类问题最优雅的方法

您基本上应该执行以下操作:

嵌套for循环:一个用于迭代行,一个用于迭代列

for (int i = 0; i < matrix.length; i ++) {
  for (int j = 0; j < matrix.length; j ++) {
    // Check for stuff in here
  }
}
水平左:

对角线向上向左:


基本上你有8个方向,你需要检查当你找到一块。您可以对矩阵的每个元素执行此操作,即检查AllDirectionsMatrix[i][j]或从工件“掉落”的位置开始。其他答案声称,如果没有循环,您无法检查是否获胜。今天我要扮演魔鬼代言人:你可以做,尽管你仍然不应该做!对于一个典型的7*6连接四块板,每种颜色只有69个可能获胜的位置,即使你打字速度慢,也可以在一两个下午轻松地对其进行编码

此代码假定您有一个名为matrix的7x6 2D字符数组,该数组包含三个值“B”、“R”或“R”中的一个,分别对应于黑色、红色或空平铺。它要么返回获胜者的字符,要么返回null(如果还没有获胜者)

char getWinner(){
    if (matrix[0][0] == 'B' and  matrix[1][0] == 'B' and  matrix[2][0] == 'B' and  matrix[3][0] == 'B'){return 'B';}
    if (matrix[0][0] == 'R' and  matrix[1][0] == 'R' and  matrix[2][0] == 'R' and  matrix[3][0] == 'R'){return 'R';}
    if (matrix[1][0] == 'B' and  matrix[2][0] == 'B' and  matrix[3][0] == 'B' and  matrix[4][0] == 'B'){return 'B';}
    if (matrix[1][0] == 'R' and  matrix[2][0] == 'R' and  matrix[3][0] == 'R' and  matrix[4][0] == 'R'){return 'R';}
    if (matrix[2][0] == 'B' and  matrix[3][0] == 'B' and  matrix[4][0] == 'B' and  matrix[5][0] == 'B'){return 'B';}
    if (matrix[2][0] == 'R' and  matrix[3][0] == 'R' and  matrix[4][0] == 'R' and  matrix[5][0] == 'R'){return 'R';}
    if (matrix[3][0] == 'B' and  matrix[4][0] == 'B' and  matrix[5][0] == 'B' and  matrix[6][0] == 'B'){return 'B';}
    if (matrix[3][0] == 'R' and  matrix[4][0] == 'R' and  matrix[5][0] == 'R' and  matrix[6][0] == 'R'){return 'R';}
    if (matrix[0][1] == 'B' and  matrix[1][1] == 'B' and  matrix[2][1] == 'B' and  matrix[3][1] == 'B'){return 'B';}
    if (matrix[0][1] == 'R' and  matrix[1][1] == 'R' and  matrix[2][1] == 'R' and  matrix[3][1] == 'R'){return 'R';}
    if (matrix[1][1] == 'B' and  matrix[2][1] == 'B' and  matrix[3][1] == 'B' and  matrix[4][1] == 'B'){return 'B';}
    if (matrix[1][1] == 'R' and  matrix[2][1] == 'R' and  matrix[3][1] == 'R' and  matrix[4][1] == 'R'){return 'R';}
    if (matrix[2][1] == 'B' and  matrix[3][1] == 'B' and  matrix[4][1] == 'B' and  matrix[5][1] == 'B'){return 'B';}
    if (matrix[2][1] == 'R' and  matrix[3][1] == 'R' and  matrix[4][1] == 'R' and  matrix[5][1] == 'R'){return 'R';}
    if (matrix[3][1] == 'B' and  matrix[4][1] == 'B' and  matrix[5][1] == 'B' and  matrix[6][1] == 'B'){return 'B';}
    if (matrix[3][1] == 'R' and  matrix[4][1] == 'R' and  matrix[5][1] == 'R' and  matrix[6][1] == 'R'){return 'R';}
    if (matrix[0][2] == 'B' and  matrix[1][2] == 'B' and  matrix[2][2] == 'B' and  matrix[3][2] == 'B'){return 'B';}
    if (matrix[0][2] == 'R' and  matrix[1][2] == 'R' and  matrix[2][2] == 'R' and  matrix[3][2] == 'R'){return 'R';}
    if (matrix[1][2] == 'B' and  matrix[2][2] == 'B' and  matrix[3][2] == 'B' and  matrix[4][2] == 'B'){return 'B';}
    if (matrix[1][2] == 'R' and  matrix[2][2] == 'R' and  matrix[3][2] == 'R' and  matrix[4][2] == 'R'){return 'R';}
    if (matrix[2][2] == 'B' and  matrix[3][2] == 'B' and  matrix[4][2] == 'B' and  matrix[5][2] == 'B'){return 'B';}
    if (matrix[2][2] == 'R' and  matrix[3][2] == 'R' and  matrix[4][2] == 'R' and  matrix[5][2] == 'R'){return 'R';}
    if (matrix[3][2] == 'B' and  matrix[4][2] == 'B' and  matrix[5][2] == 'B' and  matrix[6][2] == 'B'){return 'B';}
    if (matrix[3][2] == 'R' and  matrix[4][2] == 'R' and  matrix[5][2] == 'R' and  matrix[6][2] == 'R'){return 'R';}
    if (matrix[0][3] == 'B' and  matrix[1][3] == 'B' and  matrix[2][3] == 'B' and  matrix[3][3] == 'B'){return 'B';}
    if (matrix[0][3] == 'R' and  matrix[1][3] == 'R' and  matrix[2][3] == 'R' and  matrix[3][3] == 'R'){return 'R';}
    if (matrix[1][3] == 'B' and  matrix[2][3] == 'B' and  matrix[3][3] == 'B' and  matrix[4][3] == 'B'){return 'B';}
    if (matrix[1][3] == 'R' and  matrix[2][3] == 'R' and  matrix[3][3] == 'R' and  matrix[4][3] == 'R'){return 'R';}
    if (matrix[2][3] == 'B' and  matrix[3][3] == 'B' and  matrix[4][3] == 'B' and  matrix[5][3] == 'B'){return 'B';}
    if (matrix[2][3] == 'R' and  matrix[3][3] == 'R' and  matrix[4][3] == 'R' and  matrix[5][3] == 'R'){return 'R';}
    if (matrix[3][3] == 'B' and  matrix[4][3] == 'B' and  matrix[5][3] == 'B' and  matrix[6][3] == 'B'){return 'B';}
    if (matrix[3][3] == 'R' and  matrix[4][3] == 'R' and  matrix[5][3] == 'R' and  matrix[6][3] == 'R'){return 'R';}
    if (matrix[0][4] == 'B' and  matrix[1][4] == 'B' and  matrix[2][4] == 'B' and  matrix[3][4] == 'B'){return 'B';}
    if (matrix[0][4] == 'R' and  matrix[1][4] == 'R' and  matrix[2][4] == 'R' and  matrix[3][4] == 'R'){return 'R';}
    if (matrix[1][4] == 'B' and  matrix[2][4] == 'B' and  matrix[3][4] == 'B' and  matrix[4][4] == 'B'){return 'B';}
    if (matrix[1][4] == 'R' and  matrix[2][4] == 'R' and  matrix[3][4] == 'R' and  matrix[4][4] == 'R'){return 'R';}
    if (matrix[2][4] == 'B' and  matrix[3][4] == 'B' and  matrix[4][4] == 'B' and  matrix[5][4] == 'B'){return 'B';}
    if (matrix[2][4] == 'R' and  matrix[3][4] == 'R' and  matrix[4][4] == 'R' and  matrix[5][4] == 'R'){return 'R';}
    if (matrix[3][4] == 'B' and  matrix[4][4] == 'B' and  matrix[5][4] == 'B' and  matrix[6][4] == 'B'){return 'B';}
    if (matrix[3][4] == 'R' and  matrix[4][4] == 'R' and  matrix[5][4] == 'R' and  matrix[6][4] == 'R'){return 'R';}
    if (matrix[0][5] == 'B' and  matrix[1][5] == 'B' and  matrix[2][5] == 'B' and  matrix[3][5] == 'B'){return 'B';}
    if (matrix[0][5] == 'R' and  matrix[1][5] == 'R' and  matrix[2][5] == 'R' and  matrix[3][5] == 'R'){return 'R';}
    if (matrix[1][5] == 'B' and  matrix[2][5] == 'B' and  matrix[3][5] == 'B' and  matrix[4][5] == 'B'){return 'B';}
    if (matrix[1][5] == 'R' and  matrix[2][5] == 'R' and  matrix[3][5] == 'R' and  matrix[4][5] == 'R'){return 'R';}
    if (matrix[2][5] == 'B' and  matrix[3][5] == 'B' and  matrix[4][5] == 'B' and  matrix[5][5] == 'B'){return 'B';}
    if (matrix[2][5] == 'R' and  matrix[3][5] == 'R' and  matrix[4][5] == 'R' and  matrix[5][5] == 'R'){return 'R';}
    if (matrix[3][5] == 'B' and  matrix[4][5] == 'B' and  matrix[5][5] == 'B' and  matrix[6][5] == 'B'){return 'B';}
    if (matrix[3][5] == 'R' and  matrix[4][5] == 'R' and  matrix[5][5] == 'R' and  matrix[6][5] == 'R'){return 'R';}
    if (matrix[0][0] == 'B' and  matrix[0][1] == 'B' and  matrix[0][2] == 'B' and  matrix[0][3] == 'B'){return 'B';}
    if (matrix[0][0] == 'R' and  matrix[0][1] == 'R' and  matrix[0][2] == 'R' and  matrix[0][3] == 'R'){return 'R';}
    if (matrix[0][1] == 'B' and  matrix[0][2] == 'B' and  matrix[0][3] == 'B' and  matrix[0][4] == 'B'){return 'B';}
    if (matrix[0][1] == 'R' and  matrix[0][2] == 'R' and  matrix[0][3] == 'R' and  matrix[0][4] == 'R'){return 'R';}
    if (matrix[0][2] == 'B' and  matrix[0][3] == 'B' and  matrix[0][4] == 'B' and  matrix[0][5] == 'B'){return 'B';}
    if (matrix[0][2] == 'R' and  matrix[0][3] == 'R' and  matrix[0][4] == 'R' and  matrix[0][5] == 'R'){return 'R';}
    if (matrix[1][0] == 'B' and  matrix[1][1] == 'B' and  matrix[1][2] == 'B' and  matrix[1][3] == 'B'){return 'B';}
    if (matrix[1][0] == 'R' and  matrix[1][1] == 'R' and  matrix[1][2] == 'R' and  matrix[1][3] == 'R'){return 'R';}
    if (matrix[1][1] == 'B' and  matrix[1][2] == 'B' and  matrix[1][3] == 'B' and  matrix[1][4] == 'B'){return 'B';}
    if (matrix[1][1] == 'R' and  matrix[1][2] == 'R' and  matrix[1][3] == 'R' and  matrix[1][4] == 'R'){return 'R';}
    if (matrix[1][2] == 'B' and  matrix[1][3] == 'B' and  matrix[1][4] == 'B' and  matrix[1][5] == 'B'){return 'B';}
    if (matrix[1][2] == 'R' and  matrix[1][3] == 'R' and  matrix[1][4] == 'R' and  matrix[1][5] == 'R'){return 'R';}
    if (matrix[2][0] == 'B' and  matrix[2][1] == 'B' and  matrix[2][2] == 'B' and  matrix[2][3] == 'B'){return 'B';}
    if (matrix[2][0] == 'R' and  matrix[2][1] == 'R' and  matrix[2][2] == 'R' and  matrix[2][3] == 'R'){return 'R';}
    if (matrix[2][1] == 'B' and  matrix[2][2] == 'B' and  matrix[2][3] == 'B' and  matrix[2][4] == 'B'){return 'B';}
    if (matrix[2][1] == 'R' and  matrix[2][2] == 'R' and  matrix[2][3] == 'R' and  matrix[2][4] == 'R'){return 'R';}
    if (matrix[2][2] == 'B' and  matrix[2][3] == 'B' and  matrix[2][4] == 'B' and  matrix[2][5] == 'B'){return 'B';}
    if (matrix[2][2] == 'R' and  matrix[2][3] == 'R' and  matrix[2][4] == 'R' and  matrix[2][5] == 'R'){return 'R';}
    if (matrix[3][0] == 'B' and  matrix[3][1] == 'B' and  matrix[3][2] == 'B' and  matrix[3][3] == 'B'){return 'B';}
    if (matrix[3][0] == 'R' and  matrix[3][1] == 'R' and  matrix[3][2] == 'R' and  matrix[3][3] == 'R'){return 'R';}
    if (matrix[3][1] == 'B' and  matrix[3][2] == 'B' and  matrix[3][3] == 'B' and  matrix[3][4] == 'B'){return 'B';}
    if (matrix[3][1] == 'R' and  matrix[3][2] == 'R' and  matrix[3][3] == 'R' and  matrix[3][4] == 'R'){return 'R';}
    if (matrix[3][2] == 'B' and  matrix[3][3] == 'B' and  matrix[3][4] == 'B' and  matrix[3][5] == 'B'){return 'B';}
    if (matrix[3][2] == 'R' and  matrix[3][3] == 'R' and  matrix[3][4] == 'R' and  matrix[3][5] == 'R'){return 'R';}
    if (matrix[4][0] == 'B' and  matrix[4][1] == 'B' and  matrix[4][2] == 'B' and  matrix[4][3] == 'B'){return 'B';}
    if (matrix[4][0] == 'R' and  matrix[4][1] == 'R' and  matrix[4][2] == 'R' and  matrix[4][3] == 'R'){return 'R';}
    if (matrix[4][1] == 'B' and  matrix[4][2] == 'B' and  matrix[4][3] == 'B' and  matrix[4][4] == 'B'){return 'B';}
    if (matrix[4][1] == 'R' and  matrix[4][2] == 'R' and  matrix[4][3] == 'R' and  matrix[4][4] == 'R'){return 'R';}
    if (matrix[4][2] == 'B' and  matrix[4][3] == 'B' and  matrix[4][4] == 'B' and  matrix[4][5] == 'B'){return 'B';}
    if (matrix[4][2] == 'R' and  matrix[4][3] == 'R' and  matrix[4][4] == 'R' and  matrix[4][5] == 'R'){return 'R';}
    if (matrix[5][0] == 'B' and  matrix[5][1] == 'B' and  matrix[5][2] == 'B' and  matrix[5][3] == 'B'){return 'B';}
    if (matrix[5][0] == 'R' and  matrix[5][1] == 'R' and  matrix[5][2] == 'R' and  matrix[5][3] == 'R'){return 'R';}
    if (matrix[5][1] == 'B' and  matrix[5][2] == 'B' and  matrix[5][3] == 'B' and  matrix[5][4] == 'B'){return 'B';}
    if (matrix[5][1] == 'R' and  matrix[5][2] == 'R' and  matrix[5][3] == 'R' and  matrix[5][4] == 'R'){return 'R';}
    if (matrix[5][2] == 'B' and  matrix[5][3] == 'B' and  matrix[5][4] == 'B' and  matrix[5][5] == 'B'){return 'B';}
    if (matrix[5][2] == 'R' and  matrix[5][3] == 'R' and  matrix[5][4] == 'R' and  matrix[5][5] == 'R'){return 'R';}
    if (matrix[6][0] == 'B' and  matrix[6][1] == 'B' and  matrix[6][2] == 'B' and  matrix[6][3] == 'B'){return 'B';}
    if (matrix[6][0] == 'R' and  matrix[6][1] == 'R' and  matrix[6][2] == 'R' and  matrix[6][3] == 'R'){return 'R';}
    if (matrix[6][1] == 'B' and  matrix[6][2] == 'B' and  matrix[6][3] == 'B' and  matrix[6][4] == 'B'){return 'B';}
    if (matrix[6][1] == 'R' and  matrix[6][2] == 'R' and  matrix[6][3] == 'R' and  matrix[6][4] == 'R'){return 'R';}
    if (matrix[6][2] == 'B' and  matrix[6][3] == 'B' and  matrix[6][4] == 'B' and  matrix[6][5] == 'B'){return 'B';}
    if (matrix[6][2] == 'R' and  matrix[6][3] == 'R' and  matrix[6][4] == 'R' and  matrix[6][5] == 'R'){return 'R';}
    if (matrix[0][3] == 'B' and  matrix[1][2] == 'B' and  matrix[2][1] == 'B' and  matrix[3][0] == 'B'){return 'B';}
    if (matrix[0][3] == 'R' and  matrix[1][2] == 'R' and  matrix[2][1] == 'R' and  matrix[3][0] == 'R'){return 'R';}
    if (matrix[3][3] == 'B' and  matrix[2][2] == 'B' and  matrix[1][1] == 'B' and  matrix[0][0] == 'B'){return 'B';}
    if (matrix[3][3] == 'R' and  matrix[2][2] == 'R' and  matrix[1][1] == 'R' and  matrix[0][0] == 'R'){return 'R';}
    if (matrix[0][4] == 'B' and  matrix[1][3] == 'B' and  matrix[2][2] == 'B' and  matrix[3][1] == 'B'){return 'B';}
    if (matrix[0][4] == 'R' and  matrix[1][3] == 'R' and  matrix[2][2] == 'R' and  matrix[3][1] == 'R'){return 'R';}
    if (matrix[3][4] == 'B' and  matrix[2][3] == 'B' and  matrix[1][2] == 'B' and  matrix[0][1] == 'B'){return 'B';}
    if (matrix[3][4] == 'R' and  matrix[2][3] == 'R' and  matrix[1][2] == 'R' and  matrix[0][1] == 'R'){return 'R';}
    if (matrix[0][5] == 'B' and  matrix[1][4] == 'B' and  matrix[2][3] == 'B' and  matrix[3][2] == 'B'){return 'B';}
    if (matrix[0][5] == 'R' and  matrix[1][4] == 'R' and  matrix[2][3] == 'R' and  matrix[3][2] == 'R'){return 'R';}
    if (matrix[3][5] == 'B' and  matrix[2][4] == 'B' and  matrix[1][3] == 'B' and  matrix[0][2] == 'B'){return 'B';}
    if (matrix[3][5] == 'R' and  matrix[2][4] == 'R' and  matrix[1][3] == 'R' and  matrix[0][2] == 'R'){return 'R';}
    if (matrix[1][3] == 'B' and  matrix[2][2] == 'B' and  matrix[3][1] == 'B' and  matrix[4][0] == 'B'){return 'B';}
    if (matrix[1][3] == 'R' and  matrix[2][2] == 'R' and  matrix[3][1] == 'R' and  matrix[4][0] == 'R'){return 'R';}
    if (matrix[4][3] == 'B' and  matrix[3][2] == 'B' and  matrix[2][1] == 'B' and  matrix[1][0] == 'B'){return 'B';}
    if (matrix[4][3] == 'R' and  matrix[3][2] == 'R' and  matrix[2][1] == 'R' and  matrix[1][0] == 'R'){return 'R';}
    if (matrix[1][4] == 'B' and  matrix[2][3] == 'B' and  matrix[3][2] == 'B' and  matrix[4][1] == 'B'){return 'B';}
    if (matrix[1][4] == 'R' and  matrix[2][3] == 'R' and  matrix[3][2] == 'R' and  matrix[4][1] == 'R'){return 'R';}
    if (matrix[4][4] == 'B' and  matrix[3][3] == 'B' and  matrix[2][2] == 'B' and  matrix[1][1] == 'B'){return 'B';}
    if (matrix[4][4] == 'R' and  matrix[3][3] == 'R' and  matrix[2][2] == 'R' and  matrix[1][1] == 'R'){return 'R';}
    if (matrix[1][5] == 'B' and  matrix[2][4] == 'B' and  matrix[3][3] == 'B' and  matrix[4][2] == 'B'){return 'B';}
    if (matrix[1][5] == 'R' and  matrix[2][4] == 'R' and  matrix[3][3] == 'R' and  matrix[4][2] == 'R'){return 'R';}
    if (matrix[4][5] == 'B' and  matrix[3][4] == 'B' and  matrix[2][3] == 'B' and  matrix[1][2] == 'B'){return 'B';}
    if (matrix[4][5] == 'R' and  matrix[3][4] == 'R' and  matrix[2][3] == 'R' and  matrix[1][2] == 'R'){return 'R';}
    if (matrix[2][3] == 'B' and  matrix[3][2] == 'B' and  matrix[4][1] == 'B' and  matrix[5][0] == 'B'){return 'B';}
    if (matrix[2][3] == 'R' and  matrix[3][2] == 'R' and  matrix[4][1] == 'R' and  matrix[5][0] == 'R'){return 'R';}
    if (matrix[5][3] == 'B' and  matrix[4][2] == 'B' and  matrix[3][1] == 'B' and  matrix[2][0] == 'B'){return 'B';}
    if (matrix[5][3] == 'R' and  matrix[4][2] == 'R' and  matrix[3][1] == 'R' and  matrix[2][0] == 'R'){return 'R';}
    if (matrix[2][4] == 'B' and  matrix[3][3] == 'B' and  matrix[4][2] == 'B' and  matrix[5][1] == 'B'){return 'B';}
    if (matrix[2][4] == 'R' and  matrix[3][3] == 'R' and  matrix[4][2] == 'R' and  matrix[5][1] == 'R'){return 'R';}
    if (matrix[5][4] == 'B' and  matrix[4][3] == 'B' and  matrix[3][2] == 'B' and  matrix[2][1] == 'B'){return 'B';}
    if (matrix[5][4] == 'R' and  matrix[4][3] == 'R' and  matrix[3][2] == 'R' and  matrix[2][1] == 'R'){return 'R';}
    if (matrix[2][5] == 'B' and  matrix[3][4] == 'B' and  matrix[4][3] == 'B' and  matrix[5][2] == 'B'){return 'B';}
    if (matrix[2][5] == 'R' and  matrix[3][4] == 'R' and  matrix[4][3] == 'R' and  matrix[5][2] == 'R'){return 'R';}
    if (matrix[5][5] == 'B' and  matrix[4][4] == 'B' and  matrix[3][3] == 'B' and  matrix[2][2] == 'B'){return 'B';}
    if (matrix[5][5] == 'R' and  matrix[4][4] == 'R' and  matrix[3][3] == 'R' and  matrix[2][2] == 'R'){return 'R';}
    if (matrix[3][3] == 'B' and  matrix[4][2] == 'B' and  matrix[5][1] == 'B' and  matrix[6][0] == 'B'){return 'B';}
    if (matrix[3][3] == 'R' and  matrix[4][2] == 'R' and  matrix[5][1] == 'R' and  matrix[6][0] == 'R'){return 'R';}
    if (matrix[6][3] == 'B' and  matrix[5][2] == 'B' and  matrix[4][1] == 'B' and  matrix[3][0] == 'B'){return 'B';}
    if (matrix[6][3] == 'R' and  matrix[5][2] == 'R' and  matrix[4][1] == 'R' and  matrix[3][0] == 'R'){return 'R';}
    if (matrix[3][4] == 'B' and  matrix[4][3] == 'B' and  matrix[5][2] == 'B' and  matrix[6][1] == 'B'){return 'B';}
    if (matrix[3][4] == 'R' and  matrix[4][3] == 'R' and  matrix[5][2] == 'R' and  matrix[6][1] == 'R'){return 'R';}
    if (matrix[6][4] == 'B' and  matrix[5][3] == 'B' and  matrix[4][2] == 'B' and  matrix[3][1] == 'B'){return 'B';}
    if (matrix[6][4] == 'R' and  matrix[5][3] == 'R' and  matrix[4][2] == 'R' and  matrix[3][1] == 'R'){return 'R';}
    if (matrix[3][5] == 'B' and  matrix[4][4] == 'B' and  matrix[5][3] == 'B' and  matrix[6][2] == 'B'){return 'B';}
    if (matrix[3][5] == 'R' and  matrix[4][4] == 'R' and  matrix[5][3] == 'R' and  matrix[6][2] == 'R'){return 'R';}
    if (matrix[6][5] == 'B' and  matrix[5][4] == 'B' and  matrix[4][3] == 'B' and  matrix[3][2] == 'B'){return 'B';}
    if (matrix[6][5] == 'R' and  matrix[5][4] == 'R' and  matrix[4][3] == 'R' and  matrix[3][2] == 'R'){return 'R';}
    return null;
}

其他答案声称,如果没有循环,你就无法检查是否赢。今天我要扮演魔鬼代言人:你可以做,尽管你仍然不应该做!对于一个典型的7*6连接四块板,每种颜色只有69个可能获胜的位置,即使你打字速度慢,也可以在一两个下午轻松地对其进行编码

此代码假定您有一个名为matrix的7x6 2D字符数组,该数组包含三个值“B”、“R”或“R”中的一个,分别对应于黑色、红色或空平铺。它要么返回获胜者的字符,要么返回null(如果还没有获胜者)

char getWinner(){
    if (matrix[0][0] == 'B' and  matrix[1][0] == 'B' and  matrix[2][0] == 'B' and  matrix[3][0] == 'B'){return 'B';}
    if (matrix[0][0] == 'R' and  matrix[1][0] == 'R' and  matrix[2][0] == 'R' and  matrix[3][0] == 'R'){return 'R';}
    if (matrix[1][0] == 'B' and  matrix[2][0] == 'B' and  matrix[3][0] == 'B' and  matrix[4][0] == 'B'){return 'B';}
    if (matrix[1][0] == 'R' and  matrix[2][0] == 'R' and  matrix[3][0] == 'R' and  matrix[4][0] == 'R'){return 'R';}
    if (matrix[2][0] == 'B' and  matrix[3][0] == 'B' and  matrix[4][0] == 'B' and  matrix[5][0] == 'B'){return 'B';}
    if (matrix[2][0] == 'R' and  matrix[3][0] == 'R' and  matrix[4][0] == 'R' and  matrix[5][0] == 'R'){return 'R';}
    if (matrix[3][0] == 'B' and  matrix[4][0] == 'B' and  matrix[5][0] == 'B' and  matrix[6][0] == 'B'){return 'B';}
    if (matrix[3][0] == 'R' and  matrix[4][0] == 'R' and  matrix[5][0] == 'R' and  matrix[6][0] == 'R'){return 'R';}
    if (matrix[0][1] == 'B' and  matrix[1][1] == 'B' and  matrix[2][1] == 'B' and  matrix[3][1] == 'B'){return 'B';}
    if (matrix[0][1] == 'R' and  matrix[1][1] == 'R' and  matrix[2][1] == 'R' and  matrix[3][1] == 'R'){return 'R';}
    if (matrix[1][1] == 'B' and  matrix[2][1] == 'B' and  matrix[3][1] == 'B' and  matrix[4][1] == 'B'){return 'B';}
    if (matrix[1][1] == 'R' and  matrix[2][1] == 'R' and  matrix[3][1] == 'R' and  matrix[4][1] == 'R'){return 'R';}
    if (matrix[2][1] == 'B' and  matrix[3][1] == 'B' and  matrix[4][1] == 'B' and  matrix[5][1] == 'B'){return 'B';}
    if (matrix[2][1] == 'R' and  matrix[3][1] == 'R' and  matrix[4][1] == 'R' and  matrix[5][1] == 'R'){return 'R';}
    if (matrix[3][1] == 'B' and  matrix[4][1] == 'B' and  matrix[5][1] == 'B' and  matrix[6][1] == 'B'){return 'B';}
    if (matrix[3][1] == 'R' and  matrix[4][1] == 'R' and  matrix[5][1] == 'R' and  matrix[6][1] == 'R'){return 'R';}
    if (matrix[0][2] == 'B' and  matrix[1][2] == 'B' and  matrix[2][2] == 'B' and  matrix[3][2] == 'B'){return 'B';}
    if (matrix[0][2] == 'R' and  matrix[1][2] == 'R' and  matrix[2][2] == 'R' and  matrix[3][2] == 'R'){return 'R';}
    if (matrix[1][2] == 'B' and  matrix[2][2] == 'B' and  matrix[3][2] == 'B' and  matrix[4][2] == 'B'){return 'B';}
    if (matrix[1][2] == 'R' and  matrix[2][2] == 'R' and  matrix[3][2] == 'R' and  matrix[4][2] == 'R'){return 'R';}
    if (matrix[2][2] == 'B' and  matrix[3][2] == 'B' and  matrix[4][2] == 'B' and  matrix[5][2] == 'B'){return 'B';}
    if (matrix[2][2] == 'R' and  matrix[3][2] == 'R' and  matrix[4][2] == 'R' and  matrix[5][2] == 'R'){return 'R';}
    if (matrix[3][2] == 'B' and  matrix[4][2] == 'B' and  matrix[5][2] == 'B' and  matrix[6][2] == 'B'){return 'B';}
    if (matrix[3][2] == 'R' and  matrix[4][2] == 'R' and  matrix[5][2] == 'R' and  matrix[6][2] == 'R'){return 'R';}
    if (matrix[0][3] == 'B' and  matrix[1][3] == 'B' and  matrix[2][3] == 'B' and  matrix[3][3] == 'B'){return 'B';}
    if (matrix[0][3] == 'R' and  matrix[1][3] == 'R' and  matrix[2][3] == 'R' and  matrix[3][3] == 'R'){return 'R';}
    if (matrix[1][3] == 'B' and  matrix[2][3] == 'B' and  matrix[3][3] == 'B' and  matrix[4][3] == 'B'){return 'B';}
    if (matrix[1][3] == 'R' and  matrix[2][3] == 'R' and  matrix[3][3] == 'R' and  matrix[4][3] == 'R'){return 'R';}
    if (matrix[2][3] == 'B' and  matrix[3][3] == 'B' and  matrix[4][3] == 'B' and  matrix[5][3] == 'B'){return 'B';}
    if (matrix[2][3] == 'R' and  matrix[3][3] == 'R' and  matrix[4][3] == 'R' and  matrix[5][3] == 'R'){return 'R';}
    if (matrix[3][3] == 'B' and  matrix[4][3] == 'B' and  matrix[5][3] == 'B' and  matrix[6][3] == 'B'){return 'B';}
    if (matrix[3][3] == 'R' and  matrix[4][3] == 'R' and  matrix[5][3] == 'R' and  matrix[6][3] == 'R'){return 'R';}
    if (matrix[0][4] == 'B' and  matrix[1][4] == 'B' and  matrix[2][4] == 'B' and  matrix[3][4] == 'B'){return 'B';}
    if (matrix[0][4] == 'R' and  matrix[1][4] == 'R' and  matrix[2][4] == 'R' and  matrix[3][4] == 'R'){return 'R';}
    if (matrix[1][4] == 'B' and  matrix[2][4] == 'B' and  matrix[3][4] == 'B' and  matrix[4][4] == 'B'){return 'B';}
    if (matrix[1][4] == 'R' and  matrix[2][4] == 'R' and  matrix[3][4] == 'R' and  matrix[4][4] == 'R'){return 'R';}
    if (matrix[2][4] == 'B' and  matrix[3][4] == 'B' and  matrix[4][4] == 'B' and  matrix[5][4] == 'B'){return 'B';}
    if (matrix[2][4] == 'R' and  matrix[3][4] == 'R' and  matrix[4][4] == 'R' and  matrix[5][4] == 'R'){return 'R';}
    if (matrix[3][4] == 'B' and  matrix[4][4] == 'B' and  matrix[5][4] == 'B' and  matrix[6][4] == 'B'){return 'B';}
    if (matrix[3][4] == 'R' and  matrix[4][4] == 'R' and  matrix[5][4] == 'R' and  matrix[6][4] == 'R'){return 'R';}
    if (matrix[0][5] == 'B' and  matrix[1][5] == 'B' and  matrix[2][5] == 'B' and  matrix[3][5] == 'B'){return 'B';}
    if (matrix[0][5] == 'R' and  matrix[1][5] == 'R' and  matrix[2][5] == 'R' and  matrix[3][5] == 'R'){return 'R';}
    if (matrix[1][5] == 'B' and  matrix[2][5] == 'B' and  matrix[3][5] == 'B' and  matrix[4][5] == 'B'){return 'B';}
    if (matrix[1][5] == 'R' and  matrix[2][5] == 'R' and  matrix[3][5] == 'R' and  matrix[4][5] == 'R'){return 'R';}
    if (matrix[2][5] == 'B' and  matrix[3][5] == 'B' and  matrix[4][5] == 'B' and  matrix[5][5] == 'B'){return 'B';}
    if (matrix[2][5] == 'R' and  matrix[3][5] == 'R' and  matrix[4][5] == 'R' and  matrix[5][5] == 'R'){return 'R';}
    if (matrix[3][5] == 'B' and  matrix[4][5] == 'B' and  matrix[5][5] == 'B' and  matrix[6][5] == 'B'){return 'B';}
    if (matrix[3][5] == 'R' and  matrix[4][5] == 'R' and  matrix[5][5] == 'R' and  matrix[6][5] == 'R'){return 'R';}
    if (matrix[0][0] == 'B' and  matrix[0][1] == 'B' and  matrix[0][2] == 'B' and  matrix[0][3] == 'B'){return 'B';}
    if (matrix[0][0] == 'R' and  matrix[0][1] == 'R' and  matrix[0][2] == 'R' and  matrix[0][3] == 'R'){return 'R';}
    if (matrix[0][1] == 'B' and  matrix[0][2] == 'B' and  matrix[0][3] == 'B' and  matrix[0][4] == 'B'){return 'B';}
    if (matrix[0][1] == 'R' and  matrix[0][2] == 'R' and  matrix[0][3] == 'R' and  matrix[0][4] == 'R'){return 'R';}
    if (matrix[0][2] == 'B' and  matrix[0][3] == 'B' and  matrix[0][4] == 'B' and  matrix[0][5] == 'B'){return 'B';}
    if (matrix[0][2] == 'R' and  matrix[0][3] == 'R' and  matrix[0][4] == 'R' and  matrix[0][5] == 'R'){return 'R';}
    if (matrix[1][0] == 'B' and  matrix[1][1] == 'B' and  matrix[1][2] == 'B' and  matrix[1][3] == 'B'){return 'B';}
    if (matrix[1][0] == 'R' and  matrix[1][1] == 'R' and  matrix[1][2] == 'R' and  matrix[1][3] == 'R'){return 'R';}
    if (matrix[1][1] == 'B' and  matrix[1][2] == 'B' and  matrix[1][3] == 'B' and  matrix[1][4] == 'B'){return 'B';}
    if (matrix[1][1] == 'R' and  matrix[1][2] == 'R' and  matrix[1][3] == 'R' and  matrix[1][4] == 'R'){return 'R';}
    if (matrix[1][2] == 'B' and  matrix[1][3] == 'B' and  matrix[1][4] == 'B' and  matrix[1][5] == 'B'){return 'B';}
    if (matrix[1][2] == 'R' and  matrix[1][3] == 'R' and  matrix[1][4] == 'R' and  matrix[1][5] == 'R'){return 'R';}
    if (matrix[2][0] == 'B' and  matrix[2][1] == 'B' and  matrix[2][2] == 'B' and  matrix[2][3] == 'B'){return 'B';}
    if (matrix[2][0] == 'R' and  matrix[2][1] == 'R' and  matrix[2][2] == 'R' and  matrix[2][3] == 'R'){return 'R';}
    if (matrix[2][1] == 'B' and  matrix[2][2] == 'B' and  matrix[2][3] == 'B' and  matrix[2][4] == 'B'){return 'B';}
    if (matrix[2][1] == 'R' and  matrix[2][2] == 'R' and  matrix[2][3] == 'R' and  matrix[2][4] == 'R'){return 'R';}
    if (matrix[2][2] == 'B' and  matrix[2][3] == 'B' and  matrix[2][4] == 'B' and  matrix[2][5] == 'B'){return 'B';}
    if (matrix[2][2] == 'R' and  matrix[2][3] == 'R' and  matrix[2][4] == 'R' and  matrix[2][5] == 'R'){return 'R';}
    if (matrix[3][0] == 'B' and  matrix[3][1] == 'B' and  matrix[3][2] == 'B' and  matrix[3][3] == 'B'){return 'B';}
    if (matrix[3][0] == 'R' and  matrix[3][1] == 'R' and  matrix[3][2] == 'R' and  matrix[3][3] == 'R'){return 'R';}
    if (matrix[3][1] == 'B' and  matrix[3][2] == 'B' and  matrix[3][3] == 'B' and  matrix[3][4] == 'B'){return 'B';}
    if (matrix[3][1] == 'R' and  matrix[3][2] == 'R' and  matrix[3][3] == 'R' and  matrix[3][4] == 'R'){return 'R';}
    if (matrix[3][2] == 'B' and  matrix[3][3] == 'B' and  matrix[3][4] == 'B' and  matrix[3][5] == 'B'){return 'B';}
    if (matrix[3][2] == 'R' and  matrix[3][3] == 'R' and  matrix[3][4] == 'R' and  matrix[3][5] == 'R'){return 'R';}
    if (matrix[4][0] == 'B' and  matrix[4][1] == 'B' and  matrix[4][2] == 'B' and  matrix[4][3] == 'B'){return 'B';}
    if (matrix[4][0] == 'R' and  matrix[4][1] == 'R' and  matrix[4][2] == 'R' and  matrix[4][3] == 'R'){return 'R';}
    if (matrix[4][1] == 'B' and  matrix[4][2] == 'B' and  matrix[4][3] == 'B' and  matrix[4][4] == 'B'){return 'B';}
    if (matrix[4][1] == 'R' and  matrix[4][2] == 'R' and  matrix[4][3] == 'R' and  matrix[4][4] == 'R'){return 'R';}
    if (matrix[4][2] == 'B' and  matrix[4][3] == 'B' and  matrix[4][4] == 'B' and  matrix[4][5] == 'B'){return 'B';}
    if (matrix[4][2] == 'R' and  matrix[4][3] == 'R' and  matrix[4][4] == 'R' and  matrix[4][5] == 'R'){return 'R';}
    if (matrix[5][0] == 'B' and  matrix[5][1] == 'B' and  matrix[5][2] == 'B' and  matrix[5][3] == 'B'){return 'B';}
    if (matrix[5][0] == 'R' and  matrix[5][1] == 'R' and  matrix[5][2] == 'R' and  matrix[5][3] == 'R'){return 'R';}
    if (matrix[5][1] == 'B' and  matrix[5][2] == 'B' and  matrix[5][3] == 'B' and  matrix[5][4] == 'B'){return 'B';}
    if (matrix[5][1] == 'R' and  matrix[5][2] == 'R' and  matrix[5][3] == 'R' and  matrix[5][4] == 'R'){return 'R';}
    if (matrix[5][2] == 'B' and  matrix[5][3] == 'B' and  matrix[5][4] == 'B' and  matrix[5][5] == 'B'){return 'B';}
    if (matrix[5][2] == 'R' and  matrix[5][3] == 'R' and  matrix[5][4] == 'R' and  matrix[5][5] == 'R'){return 'R';}
    if (matrix[6][0] == 'B' and  matrix[6][1] == 'B' and  matrix[6][2] == 'B' and  matrix[6][3] == 'B'){return 'B';}
    if (matrix[6][0] == 'R' and  matrix[6][1] == 'R' and  matrix[6][2] == 'R' and  matrix[6][3] == 'R'){return 'R';}
    if (matrix[6][1] == 'B' and  matrix[6][2] == 'B' and  matrix[6][3] == 'B' and  matrix[6][4] == 'B'){return 'B';}
    if (matrix[6][1] == 'R' and  matrix[6][2] == 'R' and  matrix[6][3] == 'R' and  matrix[6][4] == 'R'){return 'R';}
    if (matrix[6][2] == 'B' and  matrix[6][3] == 'B' and  matrix[6][4] == 'B' and  matrix[6][5] == 'B'){return 'B';}
    if (matrix[6][2] == 'R' and  matrix[6][3] == 'R' and  matrix[6][4] == 'R' and  matrix[6][5] == 'R'){return 'R';}
    if (matrix[0][3] == 'B' and  matrix[1][2] == 'B' and  matrix[2][1] == 'B' and  matrix[3][0] == 'B'){return 'B';}
    if (matrix[0][3] == 'R' and  matrix[1][2] == 'R' and  matrix[2][1] == 'R' and  matrix[3][0] == 'R'){return 'R';}
    if (matrix[3][3] == 'B' and  matrix[2][2] == 'B' and  matrix[1][1] == 'B' and  matrix[0][0] == 'B'){return 'B';}
    if (matrix[3][3] == 'R' and  matrix[2][2] == 'R' and  matrix[1][1] == 'R' and  matrix[0][0] == 'R'){return 'R';}
    if (matrix[0][4] == 'B' and  matrix[1][3] == 'B' and  matrix[2][2] == 'B' and  matrix[3][1] == 'B'){return 'B';}
    if (matrix[0][4] == 'R' and  matrix[1][3] == 'R' and  matrix[2][2] == 'R' and  matrix[3][1] == 'R'){return 'R';}
    if (matrix[3][4] == 'B' and  matrix[2][3] == 'B' and  matrix[1][2] == 'B' and  matrix[0][1] == 'B'){return 'B';}
    if (matrix[3][4] == 'R' and  matrix[2][3] == 'R' and  matrix[1][2] == 'R' and  matrix[0][1] == 'R'){return 'R';}
    if (matrix[0][5] == 'B' and  matrix[1][4] == 'B' and  matrix[2][3] == 'B' and  matrix[3][2] == 'B'){return 'B';}
    if (matrix[0][5] == 'R' and  matrix[1][4] == 'R' and  matrix[2][3] == 'R' and  matrix[3][2] == 'R'){return 'R';}
    if (matrix[3][5] == 'B' and  matrix[2][4] == 'B' and  matrix[1][3] == 'B' and  matrix[0][2] == 'B'){return 'B';}
    if (matrix[3][5] == 'R' and  matrix[2][4] == 'R' and  matrix[1][3] == 'R' and  matrix[0][2] == 'R'){return 'R';}
    if (matrix[1][3] == 'B' and  matrix[2][2] == 'B' and  matrix[3][1] == 'B' and  matrix[4][0] == 'B'){return 'B';}
    if (matrix[1][3] == 'R' and  matrix[2][2] == 'R' and  matrix[3][1] == 'R' and  matrix[4][0] == 'R'){return 'R';}
    if (matrix[4][3] == 'B' and  matrix[3][2] == 'B' and  matrix[2][1] == 'B' and  matrix[1][0] == 'B'){return 'B';}
    if (matrix[4][3] == 'R' and  matrix[3][2] == 'R' and  matrix[2][1] == 'R' and  matrix[1][0] == 'R'){return 'R';}
    if (matrix[1][4] == 'B' and  matrix[2][3] == 'B' and  matrix[3][2] == 'B' and  matrix[4][1] == 'B'){return 'B';}
    if (matrix[1][4] == 'R' and  matrix[2][3] == 'R' and  matrix[3][2] == 'R' and  matrix[4][1] == 'R'){return 'R';}
    if (matrix[4][4] == 'B' and  matrix[3][3] == 'B' and  matrix[2][2] == 'B' and  matrix[1][1] == 'B'){return 'B';}
    if (matrix[4][4] == 'R' and  matrix[3][3] == 'R' and  matrix[2][2] == 'R' and  matrix[1][1] == 'R'){return 'R';}
    if (matrix[1][5] == 'B' and  matrix[2][4] == 'B' and  matrix[3][3] == 'B' and  matrix[4][2] == 'B'){return 'B';}
    if (matrix[1][5] == 'R' and  matrix[2][4] == 'R' and  matrix[3][3] == 'R' and  matrix[4][2] == 'R'){return 'R';}
    if (matrix[4][5] == 'B' and  matrix[3][4] == 'B' and  matrix[2][3] == 'B' and  matrix[1][2] == 'B'){return 'B';}
    if (matrix[4][5] == 'R' and  matrix[3][4] == 'R' and  matrix[2][3] == 'R' and  matrix[1][2] == 'R'){return 'R';}
    if (matrix[2][3] == 'B' and  matrix[3][2] == 'B' and  matrix[4][1] == 'B' and  matrix[5][0] == 'B'){return 'B';}
    if (matrix[2][3] == 'R' and  matrix[3][2] == 'R' and  matrix[4][1] == 'R' and  matrix[5][0] == 'R'){return 'R';}
    if (matrix[5][3] == 'B' and  matrix[4][2] == 'B' and  matrix[3][1] == 'B' and  matrix[2][0] == 'B'){return 'B';}
    if (matrix[5][3] == 'R' and  matrix[4][2] == 'R' and  matrix[3][1] == 'R' and  matrix[2][0] == 'R'){return 'R';}
    if (matrix[2][4] == 'B' and  matrix[3][3] == 'B' and  matrix[4][2] == 'B' and  matrix[5][1] == 'B'){return 'B';}
    if (matrix[2][4] == 'R' and  matrix[3][3] == 'R' and  matrix[4][2] == 'R' and  matrix[5][1] == 'R'){return 'R';}
    if (matrix[5][4] == 'B' and  matrix[4][3] == 'B' and  matrix[3][2] == 'B' and  matrix[2][1] == 'B'){return 'B';}
    if (matrix[5][4] == 'R' and  matrix[4][3] == 'R' and  matrix[3][2] == 'R' and  matrix[2][1] == 'R'){return 'R';}
    if (matrix[2][5] == 'B' and  matrix[3][4] == 'B' and  matrix[4][3] == 'B' and  matrix[5][2] == 'B'){return 'B';}
    if (matrix[2][5] == 'R' and  matrix[3][4] == 'R' and  matrix[4][3] == 'R' and  matrix[5][2] == 'R'){return 'R';}
    if (matrix[5][5] == 'B' and  matrix[4][4] == 'B' and  matrix[3][3] == 'B' and  matrix[2][2] == 'B'){return 'B';}
    if (matrix[5][5] == 'R' and  matrix[4][4] == 'R' and  matrix[3][3] == 'R' and  matrix[2][2] == 'R'){return 'R';}
    if (matrix[3][3] == 'B' and  matrix[4][2] == 'B' and  matrix[5][1] == 'B' and  matrix[6][0] == 'B'){return 'B';}
    if (matrix[3][3] == 'R' and  matrix[4][2] == 'R' and  matrix[5][1] == 'R' and  matrix[6][0] == 'R'){return 'R';}
    if (matrix[6][3] == 'B' and  matrix[5][2] == 'B' and  matrix[4][1] == 'B' and  matrix[3][0] == 'B'){return 'B';}
    if (matrix[6][3] == 'R' and  matrix[5][2] == 'R' and  matrix[4][1] == 'R' and  matrix[3][0] == 'R'){return 'R';}
    if (matrix[3][4] == 'B' and  matrix[4][3] == 'B' and  matrix[5][2] == 'B' and  matrix[6][1] == 'B'){return 'B';}
    if (matrix[3][4] == 'R' and  matrix[4][3] == 'R' and  matrix[5][2] == 'R' and  matrix[6][1] == 'R'){return 'R';}
    if (matrix[6][4] == 'B' and  matrix[5][3] == 'B' and  matrix[4][2] == 'B' and  matrix[3][1] == 'B'){return 'B';}
    if (matrix[6][4] == 'R' and  matrix[5][3] == 'R' and  matrix[4][2] == 'R' and  matrix[3][1] == 'R'){return 'R';}
    if (matrix[3][5] == 'B' and  matrix[4][4] == 'B' and  matrix[5][3] == 'B' and  matrix[6][2] == 'B'){return 'B';}
    if (matrix[3][5] == 'R' and  matrix[4][4] == 'R' and  matrix[5][3] == 'R' and  matrix[6][2] == 'R'){return 'R';}
    if (matrix[6][5] == 'B' and  matrix[5][4] == 'B' and  matrix[4][3] == 'B' and  matrix[3][2] == 'B'){return 'B';}
    if (matrix[6][5] == 'R' and  matrix[5][4] == 'R' and  matrix[4][3] == 'R' and  matrix[3][2] == 'R'){return 'R';}
    return null;
}

我最近在构建Connect4的NodeJS版本时这样做了。每次移动后,你都要检查是否有赢家。我这样做的方式是有3种方法,checkForWinnerHorizontal、checkForWinnerVertical和checkForWinnerDiagonal

每个方法将连接行、列或对角线中的所有字符,然后检查连接的字符串是否有4个R或4个B

这很容易。只需将行中的字符连接起来。 垂直有点难,因为你需要得到列。您可以通过对每个列进行硬编码或旋转数组,然后使用水平方法来构建它。 对角线是最难的。你需要得到所有的前向对角线和后向对角线。您还必须根据您的算法检查越界条件。我刚刚构建了一个getDiagonalstart,direction方法来返回每个对角线。
最后,您只需检查每个连接的字符串,看看其中是否有4个相同的字符。

我最近在构建Connect4的NodeJS版本时这样做了。每次移动后,你都要检查是否有赢家。我这样做的方式是有3种方法,checkForWinnerHorizontal、checkForWinnerVertical和checkForWinnerDiagonal

每个方法将连接行、列或对角线中的所有字符,然后检查连接的字符串是否有4个R或4个B

这很容易。只需将行中的字符连接起来。 垂直有点难,因为你需要得到列。您可以通过对每个列进行硬编码或旋转数组,然后使用水平方法来构建它。 对角线是最难的。你需要得到所有的前向对角线和后向对角线。您还必须根据您的算法检查越界条件。我刚刚构建了一个getDiagonalstart,direction方法来返回每个对角线。
最后,您只需检查每个连接的字符串,看看其中是否有4个相同的字符。

循环非常优雅。我不想每次都检查整个电路板,但为什么不呢?这不像你每秒检查1000次。看看这个:是的,谢谢Ahmet,我已经看过了,这是我想尝试的答案,但是我不知道从哪里开始它跳起来很优雅。我不想每次都检查整个电路板,为什么不呢?这并不是说你每秒要检查1000次。看看这个:是的,谢谢Ahmet,我已经看过了,这是我想尝试做的答案,但是我不知道从哪里开始。是的,这就是我拥有的,一个包含红色或黑色状态的2d数组。我只是觉得有更好的办法。谢谢,我的意思是,既然你使用的是Java,你就可以构建自己的矩阵迭代器,它可以“功能化”这个过程。但是我为不同的游戏做过类似的赢家检查算法,如果棋盘像一个矩阵,最好只做一个嵌套的for循环。正如我在回答中所说的,也正如其他人所说的,你可以让它在移动后只检查赢家,从而让它变得更“聪明”,

在那个特定的位置,这将是最有意义的。否则,你可以每轮检查整个棋盘。任何一个都可以!实际上,让0成为一个空的空间更有意义,因为这是默认的int[][]值,红色=1,黑色=2。我创建了圆形按钮,字面上是圆形按钮,当点击时可以改变颜色,并生成一个二维数组。我的代码与您的代码几乎相同,只是我的代码总是从左下角开始,检查该块的所有方向@[5][0],然后移动一列,等等。但是我有问题。当我手工运行我的代码时,它工作正常,但有些东西弄乱了是的,这就是我的,一个包含红色或黑色状态的2d数组。我只是觉得有更好的办法。谢谢,我的意思是,既然你使用的是Java,你就可以构建自己的矩阵迭代器,它可以“功能化”这个过程。但是我为不同的游戏做过类似的赢家检查算法,如果棋盘像一个矩阵,最好只做一个嵌套的for循环。正如我在回答中所说的,也正如其他人所说的,你可以通过让它在移动后只检查一个赢家来让它变得“更聪明”,在那个特定的位置,这将是最有意义的。否则,你可以每轮检查整个棋盘。任何一个都可以!实际上,让0成为一个空的空间更有意义,因为这是默认的int[][]值,红色=1,黑色=2。我创建了圆形按钮,字面上是圆形按钮,当点击时可以改变颜色,并生成一个二维数组。我的代码与您的代码几乎相同,只是我的代码总是从左下角开始,检查该块的所有方向@[5][0],然后移动一列,等等。但是我有问题。当我手工运行我的代码时,它是工作的,但有些事情弄糟了。我收回我的语句,它就可以完成了。没有人喜欢聪明的a**:是的,我想你可以列举出所有可能获胜的组合。但话说回来,一个有69个可能条件的条件块真的不是一个条件循环吗?当然,它们都是单独的条件。另一种选择是将它们放在要评估的条件列表中,然后更优雅地循环该列表。但本质上,我认为想法是一样的。当然,随着规格的变化,您可以生成一个新的获胜组合列表——但要做到这一点,您需要一个循环咳嗽+1在任何情况下:P我的问题的意图或意思是,我是否可以将获胜的组合存储在数据结构中,如哈希表或其他什么。并查找芯片放置在其中时的位置键。我没有试图避免做任何循环,即使这听起来像是我的意思,他们。。您只需检查最后一枚硬币插入的列!不是整个网格!我收回我的声明,这是可以做到的。没有人喜欢聪明的a**:是的,我想你可以列举出所有可能获胜的组合。但话说回来,一个有69个可能条件的条件块真的不是一个条件循环吗?当然,它们都是单独的条件。另一种选择是将它们放在要评估的条件列表中,然后更优雅地循环该列表。但本质上,我认为想法是一样的。当然,随着规格的变化,您可以生成一个新的获胜组合列表——但要做到这一点,您需要一个循环咳嗽+1在任何情况下:P我的问题的意图或意思是,我是否可以将获胜的组合存储在数据结构中,如哈希表或其他什么。并查找芯片放置在其中时的位置键。我没有试图避免做任何循环,即使这听起来像是我的意思,他们。。您只需检查最后一枚硬币插入的列!不是整个网格!我对循环和检查做了同样的事情,如果棋子连击被中断,则终止循环和检查,但您的优化听起来相当有趣,如何实现,尤其是如果每个玩家将棋子放在棋盘的两端?Connect 4是基于回合的,如果一号玩家是黄色的,并且掉落了一个令牌,那么你只需在该令牌周围进行检查即可获得胜利。玩家2投红色,你检查一下就赢了。简单。不需要在整个电路板上循环。只需检查最后一个插入的硬币:-这是第二段所说的。我对循环做了同样的事情,并检查如果碎片条纹被中断,是否终止循环,但您的优化听起来相当有趣,它将如何实现,特别是如果每个玩家都把他们的棋子放在棋盘的两端?连接4是基于回合的,如果玩家1是黄色的,并且掉落了一个令牌,那么你只需在该令牌周围检查一下就可以获胜。玩家2投红色,你检查一下就赢了。简单。不需要在整个电路板上循环。只需检查最后插入的硬币:-这是第二段所说的。
char getWinner(){
    if (matrix[0][0] == 'B' and  matrix[1][0] == 'B' and  matrix[2][0] == 'B' and  matrix[3][0] == 'B'){return 'B';}
    if (matrix[0][0] == 'R' and  matrix[1][0] == 'R' and  matrix[2][0] == 'R' and  matrix[3][0] == 'R'){return 'R';}
    if (matrix[1][0] == 'B' and  matrix[2][0] == 'B' and  matrix[3][0] == 'B' and  matrix[4][0] == 'B'){return 'B';}
    if (matrix[1][0] == 'R' and  matrix[2][0] == 'R' and  matrix[3][0] == 'R' and  matrix[4][0] == 'R'){return 'R';}
    if (matrix[2][0] == 'B' and  matrix[3][0] == 'B' and  matrix[4][0] == 'B' and  matrix[5][0] == 'B'){return 'B';}
    if (matrix[2][0] == 'R' and  matrix[3][0] == 'R' and  matrix[4][0] == 'R' and  matrix[5][0] == 'R'){return 'R';}
    if (matrix[3][0] == 'B' and  matrix[4][0] == 'B' and  matrix[5][0] == 'B' and  matrix[6][0] == 'B'){return 'B';}
    if (matrix[3][0] == 'R' and  matrix[4][0] == 'R' and  matrix[5][0] == 'R' and  matrix[6][0] == 'R'){return 'R';}
    if (matrix[0][1] == 'B' and  matrix[1][1] == 'B' and  matrix[2][1] == 'B' and  matrix[3][1] == 'B'){return 'B';}
    if (matrix[0][1] == 'R' and  matrix[1][1] == 'R' and  matrix[2][1] == 'R' and  matrix[3][1] == 'R'){return 'R';}
    if (matrix[1][1] == 'B' and  matrix[2][1] == 'B' and  matrix[3][1] == 'B' and  matrix[4][1] == 'B'){return 'B';}
    if (matrix[1][1] == 'R' and  matrix[2][1] == 'R' and  matrix[3][1] == 'R' and  matrix[4][1] == 'R'){return 'R';}
    if (matrix[2][1] == 'B' and  matrix[3][1] == 'B' and  matrix[4][1] == 'B' and  matrix[5][1] == 'B'){return 'B';}
    if (matrix[2][1] == 'R' and  matrix[3][1] == 'R' and  matrix[4][1] == 'R' and  matrix[5][1] == 'R'){return 'R';}
    if (matrix[3][1] == 'B' and  matrix[4][1] == 'B' and  matrix[5][1] == 'B' and  matrix[6][1] == 'B'){return 'B';}
    if (matrix[3][1] == 'R' and  matrix[4][1] == 'R' and  matrix[5][1] == 'R' and  matrix[6][1] == 'R'){return 'R';}
    if (matrix[0][2] == 'B' and  matrix[1][2] == 'B' and  matrix[2][2] == 'B' and  matrix[3][2] == 'B'){return 'B';}
    if (matrix[0][2] == 'R' and  matrix[1][2] == 'R' and  matrix[2][2] == 'R' and  matrix[3][2] == 'R'){return 'R';}
    if (matrix[1][2] == 'B' and  matrix[2][2] == 'B' and  matrix[3][2] == 'B' and  matrix[4][2] == 'B'){return 'B';}
    if (matrix[1][2] == 'R' and  matrix[2][2] == 'R' and  matrix[3][2] == 'R' and  matrix[4][2] == 'R'){return 'R';}
    if (matrix[2][2] == 'B' and  matrix[3][2] == 'B' and  matrix[4][2] == 'B' and  matrix[5][2] == 'B'){return 'B';}
    if (matrix[2][2] == 'R' and  matrix[3][2] == 'R' and  matrix[4][2] == 'R' and  matrix[5][2] == 'R'){return 'R';}
    if (matrix[3][2] == 'B' and  matrix[4][2] == 'B' and  matrix[5][2] == 'B' and  matrix[6][2] == 'B'){return 'B';}
    if (matrix[3][2] == 'R' and  matrix[4][2] == 'R' and  matrix[5][2] == 'R' and  matrix[6][2] == 'R'){return 'R';}
    if (matrix[0][3] == 'B' and  matrix[1][3] == 'B' and  matrix[2][3] == 'B' and  matrix[3][3] == 'B'){return 'B';}
    if (matrix[0][3] == 'R' and  matrix[1][3] == 'R' and  matrix[2][3] == 'R' and  matrix[3][3] == 'R'){return 'R';}
    if (matrix[1][3] == 'B' and  matrix[2][3] == 'B' and  matrix[3][3] == 'B' and  matrix[4][3] == 'B'){return 'B';}
    if (matrix[1][3] == 'R' and  matrix[2][3] == 'R' and  matrix[3][3] == 'R' and  matrix[4][3] == 'R'){return 'R';}
    if (matrix[2][3] == 'B' and  matrix[3][3] == 'B' and  matrix[4][3] == 'B' and  matrix[5][3] == 'B'){return 'B';}
    if (matrix[2][3] == 'R' and  matrix[3][3] == 'R' and  matrix[4][3] == 'R' and  matrix[5][3] == 'R'){return 'R';}
    if (matrix[3][3] == 'B' and  matrix[4][3] == 'B' and  matrix[5][3] == 'B' and  matrix[6][3] == 'B'){return 'B';}
    if (matrix[3][3] == 'R' and  matrix[4][3] == 'R' and  matrix[5][3] == 'R' and  matrix[6][3] == 'R'){return 'R';}
    if (matrix[0][4] == 'B' and  matrix[1][4] == 'B' and  matrix[2][4] == 'B' and  matrix[3][4] == 'B'){return 'B';}
    if (matrix[0][4] == 'R' and  matrix[1][4] == 'R' and  matrix[2][4] == 'R' and  matrix[3][4] == 'R'){return 'R';}
    if (matrix[1][4] == 'B' and  matrix[2][4] == 'B' and  matrix[3][4] == 'B' and  matrix[4][4] == 'B'){return 'B';}
    if (matrix[1][4] == 'R' and  matrix[2][4] == 'R' and  matrix[3][4] == 'R' and  matrix[4][4] == 'R'){return 'R';}
    if (matrix[2][4] == 'B' and  matrix[3][4] == 'B' and  matrix[4][4] == 'B' and  matrix[5][4] == 'B'){return 'B';}
    if (matrix[2][4] == 'R' and  matrix[3][4] == 'R' and  matrix[4][4] == 'R' and  matrix[5][4] == 'R'){return 'R';}
    if (matrix[3][4] == 'B' and  matrix[4][4] == 'B' and  matrix[5][4] == 'B' and  matrix[6][4] == 'B'){return 'B';}
    if (matrix[3][4] == 'R' and  matrix[4][4] == 'R' and  matrix[5][4] == 'R' and  matrix[6][4] == 'R'){return 'R';}
    if (matrix[0][5] == 'B' and  matrix[1][5] == 'B' and  matrix[2][5] == 'B' and  matrix[3][5] == 'B'){return 'B';}
    if (matrix[0][5] == 'R' and  matrix[1][5] == 'R' and  matrix[2][5] == 'R' and  matrix[3][5] == 'R'){return 'R';}
    if (matrix[1][5] == 'B' and  matrix[2][5] == 'B' and  matrix[3][5] == 'B' and  matrix[4][5] == 'B'){return 'B';}
    if (matrix[1][5] == 'R' and  matrix[2][5] == 'R' and  matrix[3][5] == 'R' and  matrix[4][5] == 'R'){return 'R';}
    if (matrix[2][5] == 'B' and  matrix[3][5] == 'B' and  matrix[4][5] == 'B' and  matrix[5][5] == 'B'){return 'B';}
    if (matrix[2][5] == 'R' and  matrix[3][5] == 'R' and  matrix[4][5] == 'R' and  matrix[5][5] == 'R'){return 'R';}
    if (matrix[3][5] == 'B' and  matrix[4][5] == 'B' and  matrix[5][5] == 'B' and  matrix[6][5] == 'B'){return 'B';}
    if (matrix[3][5] == 'R' and  matrix[4][5] == 'R' and  matrix[5][5] == 'R' and  matrix[6][5] == 'R'){return 'R';}
    if (matrix[0][0] == 'B' and  matrix[0][1] == 'B' and  matrix[0][2] == 'B' and  matrix[0][3] == 'B'){return 'B';}
    if (matrix[0][0] == 'R' and  matrix[0][1] == 'R' and  matrix[0][2] == 'R' and  matrix[0][3] == 'R'){return 'R';}
    if (matrix[0][1] == 'B' and  matrix[0][2] == 'B' and  matrix[0][3] == 'B' and  matrix[0][4] == 'B'){return 'B';}
    if (matrix[0][1] == 'R' and  matrix[0][2] == 'R' and  matrix[0][3] == 'R' and  matrix[0][4] == 'R'){return 'R';}
    if (matrix[0][2] == 'B' and  matrix[0][3] == 'B' and  matrix[0][4] == 'B' and  matrix[0][5] == 'B'){return 'B';}
    if (matrix[0][2] == 'R' and  matrix[0][3] == 'R' and  matrix[0][4] == 'R' and  matrix[0][5] == 'R'){return 'R';}
    if (matrix[1][0] == 'B' and  matrix[1][1] == 'B' and  matrix[1][2] == 'B' and  matrix[1][3] == 'B'){return 'B';}
    if (matrix[1][0] == 'R' and  matrix[1][1] == 'R' and  matrix[1][2] == 'R' and  matrix[1][3] == 'R'){return 'R';}
    if (matrix[1][1] == 'B' and  matrix[1][2] == 'B' and  matrix[1][3] == 'B' and  matrix[1][4] == 'B'){return 'B';}
    if (matrix[1][1] == 'R' and  matrix[1][2] == 'R' and  matrix[1][3] == 'R' and  matrix[1][4] == 'R'){return 'R';}
    if (matrix[1][2] == 'B' and  matrix[1][3] == 'B' and  matrix[1][4] == 'B' and  matrix[1][5] == 'B'){return 'B';}
    if (matrix[1][2] == 'R' and  matrix[1][3] == 'R' and  matrix[1][4] == 'R' and  matrix[1][5] == 'R'){return 'R';}
    if (matrix[2][0] == 'B' and  matrix[2][1] == 'B' and  matrix[2][2] == 'B' and  matrix[2][3] == 'B'){return 'B';}
    if (matrix[2][0] == 'R' and  matrix[2][1] == 'R' and  matrix[2][2] == 'R' and  matrix[2][3] == 'R'){return 'R';}
    if (matrix[2][1] == 'B' and  matrix[2][2] == 'B' and  matrix[2][3] == 'B' and  matrix[2][4] == 'B'){return 'B';}
    if (matrix[2][1] == 'R' and  matrix[2][2] == 'R' and  matrix[2][3] == 'R' and  matrix[2][4] == 'R'){return 'R';}
    if (matrix[2][2] == 'B' and  matrix[2][3] == 'B' and  matrix[2][4] == 'B' and  matrix[2][5] == 'B'){return 'B';}
    if (matrix[2][2] == 'R' and  matrix[2][3] == 'R' and  matrix[2][4] == 'R' and  matrix[2][5] == 'R'){return 'R';}
    if (matrix[3][0] == 'B' and  matrix[3][1] == 'B' and  matrix[3][2] == 'B' and  matrix[3][3] == 'B'){return 'B';}
    if (matrix[3][0] == 'R' and  matrix[3][1] == 'R' and  matrix[3][2] == 'R' and  matrix[3][3] == 'R'){return 'R';}
    if (matrix[3][1] == 'B' and  matrix[3][2] == 'B' and  matrix[3][3] == 'B' and  matrix[3][4] == 'B'){return 'B';}
    if (matrix[3][1] == 'R' and  matrix[3][2] == 'R' and  matrix[3][3] == 'R' and  matrix[3][4] == 'R'){return 'R';}
    if (matrix[3][2] == 'B' and  matrix[3][3] == 'B' and  matrix[3][4] == 'B' and  matrix[3][5] == 'B'){return 'B';}
    if (matrix[3][2] == 'R' and  matrix[3][3] == 'R' and  matrix[3][4] == 'R' and  matrix[3][5] == 'R'){return 'R';}
    if (matrix[4][0] == 'B' and  matrix[4][1] == 'B' and  matrix[4][2] == 'B' and  matrix[4][3] == 'B'){return 'B';}
    if (matrix[4][0] == 'R' and  matrix[4][1] == 'R' and  matrix[4][2] == 'R' and  matrix[4][3] == 'R'){return 'R';}
    if (matrix[4][1] == 'B' and  matrix[4][2] == 'B' and  matrix[4][3] == 'B' and  matrix[4][4] == 'B'){return 'B';}
    if (matrix[4][1] == 'R' and  matrix[4][2] == 'R' and  matrix[4][3] == 'R' and  matrix[4][4] == 'R'){return 'R';}
    if (matrix[4][2] == 'B' and  matrix[4][3] == 'B' and  matrix[4][4] == 'B' and  matrix[4][5] == 'B'){return 'B';}
    if (matrix[4][2] == 'R' and  matrix[4][3] == 'R' and  matrix[4][4] == 'R' and  matrix[4][5] == 'R'){return 'R';}
    if (matrix[5][0] == 'B' and  matrix[5][1] == 'B' and  matrix[5][2] == 'B' and  matrix[5][3] == 'B'){return 'B';}
    if (matrix[5][0] == 'R' and  matrix[5][1] == 'R' and  matrix[5][2] == 'R' and  matrix[5][3] == 'R'){return 'R';}
    if (matrix[5][1] == 'B' and  matrix[5][2] == 'B' and  matrix[5][3] == 'B' and  matrix[5][4] == 'B'){return 'B';}
    if (matrix[5][1] == 'R' and  matrix[5][2] == 'R' and  matrix[5][3] == 'R' and  matrix[5][4] == 'R'){return 'R';}
    if (matrix[5][2] == 'B' and  matrix[5][3] == 'B' and  matrix[5][4] == 'B' and  matrix[5][5] == 'B'){return 'B';}
    if (matrix[5][2] == 'R' and  matrix[5][3] == 'R' and  matrix[5][4] == 'R' and  matrix[5][5] == 'R'){return 'R';}
    if (matrix[6][0] == 'B' and  matrix[6][1] == 'B' and  matrix[6][2] == 'B' and  matrix[6][3] == 'B'){return 'B';}
    if (matrix[6][0] == 'R' and  matrix[6][1] == 'R' and  matrix[6][2] == 'R' and  matrix[6][3] == 'R'){return 'R';}
    if (matrix[6][1] == 'B' and  matrix[6][2] == 'B' and  matrix[6][3] == 'B' and  matrix[6][4] == 'B'){return 'B';}
    if (matrix[6][1] == 'R' and  matrix[6][2] == 'R' and  matrix[6][3] == 'R' and  matrix[6][4] == 'R'){return 'R';}
    if (matrix[6][2] == 'B' and  matrix[6][3] == 'B' and  matrix[6][4] == 'B' and  matrix[6][5] == 'B'){return 'B';}
    if (matrix[6][2] == 'R' and  matrix[6][3] == 'R' and  matrix[6][4] == 'R' and  matrix[6][5] == 'R'){return 'R';}
    if (matrix[0][3] == 'B' and  matrix[1][2] == 'B' and  matrix[2][1] == 'B' and  matrix[3][0] == 'B'){return 'B';}
    if (matrix[0][3] == 'R' and  matrix[1][2] == 'R' and  matrix[2][1] == 'R' and  matrix[3][0] == 'R'){return 'R';}
    if (matrix[3][3] == 'B' and  matrix[2][2] == 'B' and  matrix[1][1] == 'B' and  matrix[0][0] == 'B'){return 'B';}
    if (matrix[3][3] == 'R' and  matrix[2][2] == 'R' and  matrix[1][1] == 'R' and  matrix[0][0] == 'R'){return 'R';}
    if (matrix[0][4] == 'B' and  matrix[1][3] == 'B' and  matrix[2][2] == 'B' and  matrix[3][1] == 'B'){return 'B';}
    if (matrix[0][4] == 'R' and  matrix[1][3] == 'R' and  matrix[2][2] == 'R' and  matrix[3][1] == 'R'){return 'R';}
    if (matrix[3][4] == 'B' and  matrix[2][3] == 'B' and  matrix[1][2] == 'B' and  matrix[0][1] == 'B'){return 'B';}
    if (matrix[3][4] == 'R' and  matrix[2][3] == 'R' and  matrix[1][2] == 'R' and  matrix[0][1] == 'R'){return 'R';}
    if (matrix[0][5] == 'B' and  matrix[1][4] == 'B' and  matrix[2][3] == 'B' and  matrix[3][2] == 'B'){return 'B';}
    if (matrix[0][5] == 'R' and  matrix[1][4] == 'R' and  matrix[2][3] == 'R' and  matrix[3][2] == 'R'){return 'R';}
    if (matrix[3][5] == 'B' and  matrix[2][4] == 'B' and  matrix[1][3] == 'B' and  matrix[0][2] == 'B'){return 'B';}
    if (matrix[3][5] == 'R' and  matrix[2][4] == 'R' and  matrix[1][3] == 'R' and  matrix[0][2] == 'R'){return 'R';}
    if (matrix[1][3] == 'B' and  matrix[2][2] == 'B' and  matrix[3][1] == 'B' and  matrix[4][0] == 'B'){return 'B';}
    if (matrix[1][3] == 'R' and  matrix[2][2] == 'R' and  matrix[3][1] == 'R' and  matrix[4][0] == 'R'){return 'R';}
    if (matrix[4][3] == 'B' and  matrix[3][2] == 'B' and  matrix[2][1] == 'B' and  matrix[1][0] == 'B'){return 'B';}
    if (matrix[4][3] == 'R' and  matrix[3][2] == 'R' and  matrix[2][1] == 'R' and  matrix[1][0] == 'R'){return 'R';}
    if (matrix[1][4] == 'B' and  matrix[2][3] == 'B' and  matrix[3][2] == 'B' and  matrix[4][1] == 'B'){return 'B';}
    if (matrix[1][4] == 'R' and  matrix[2][3] == 'R' and  matrix[3][2] == 'R' and  matrix[4][1] == 'R'){return 'R';}
    if (matrix[4][4] == 'B' and  matrix[3][3] == 'B' and  matrix[2][2] == 'B' and  matrix[1][1] == 'B'){return 'B';}
    if (matrix[4][4] == 'R' and  matrix[3][3] == 'R' and  matrix[2][2] == 'R' and  matrix[1][1] == 'R'){return 'R';}
    if (matrix[1][5] == 'B' and  matrix[2][4] == 'B' and  matrix[3][3] == 'B' and  matrix[4][2] == 'B'){return 'B';}
    if (matrix[1][5] == 'R' and  matrix[2][4] == 'R' and  matrix[3][3] == 'R' and  matrix[4][2] == 'R'){return 'R';}
    if (matrix[4][5] == 'B' and  matrix[3][4] == 'B' and  matrix[2][3] == 'B' and  matrix[1][2] == 'B'){return 'B';}
    if (matrix[4][5] == 'R' and  matrix[3][4] == 'R' and  matrix[2][3] == 'R' and  matrix[1][2] == 'R'){return 'R';}
    if (matrix[2][3] == 'B' and  matrix[3][2] == 'B' and  matrix[4][1] == 'B' and  matrix[5][0] == 'B'){return 'B';}
    if (matrix[2][3] == 'R' and  matrix[3][2] == 'R' and  matrix[4][1] == 'R' and  matrix[5][0] == 'R'){return 'R';}
    if (matrix[5][3] == 'B' and  matrix[4][2] == 'B' and  matrix[3][1] == 'B' and  matrix[2][0] == 'B'){return 'B';}
    if (matrix[5][3] == 'R' and  matrix[4][2] == 'R' and  matrix[3][1] == 'R' and  matrix[2][0] == 'R'){return 'R';}
    if (matrix[2][4] == 'B' and  matrix[3][3] == 'B' and  matrix[4][2] == 'B' and  matrix[5][1] == 'B'){return 'B';}
    if (matrix[2][4] == 'R' and  matrix[3][3] == 'R' and  matrix[4][2] == 'R' and  matrix[5][1] == 'R'){return 'R';}
    if (matrix[5][4] == 'B' and  matrix[4][3] == 'B' and  matrix[3][2] == 'B' and  matrix[2][1] == 'B'){return 'B';}
    if (matrix[5][4] == 'R' and  matrix[4][3] == 'R' and  matrix[3][2] == 'R' and  matrix[2][1] == 'R'){return 'R';}
    if (matrix[2][5] == 'B' and  matrix[3][4] == 'B' and  matrix[4][3] == 'B' and  matrix[5][2] == 'B'){return 'B';}
    if (matrix[2][5] == 'R' and  matrix[3][4] == 'R' and  matrix[4][3] == 'R' and  matrix[5][2] == 'R'){return 'R';}
    if (matrix[5][5] == 'B' and  matrix[4][4] == 'B' and  matrix[3][3] == 'B' and  matrix[2][2] == 'B'){return 'B';}
    if (matrix[5][5] == 'R' and  matrix[4][4] == 'R' and  matrix[3][3] == 'R' and  matrix[2][2] == 'R'){return 'R';}
    if (matrix[3][3] == 'B' and  matrix[4][2] == 'B' and  matrix[5][1] == 'B' and  matrix[6][0] == 'B'){return 'B';}
    if (matrix[3][3] == 'R' and  matrix[4][2] == 'R' and  matrix[5][1] == 'R' and  matrix[6][0] == 'R'){return 'R';}
    if (matrix[6][3] == 'B' and  matrix[5][2] == 'B' and  matrix[4][1] == 'B' and  matrix[3][0] == 'B'){return 'B';}
    if (matrix[6][3] == 'R' and  matrix[5][2] == 'R' and  matrix[4][1] == 'R' and  matrix[3][0] == 'R'){return 'R';}
    if (matrix[3][4] == 'B' and  matrix[4][3] == 'B' and  matrix[5][2] == 'B' and  matrix[6][1] == 'B'){return 'B';}
    if (matrix[3][4] == 'R' and  matrix[4][3] == 'R' and  matrix[5][2] == 'R' and  matrix[6][1] == 'R'){return 'R';}
    if (matrix[6][4] == 'B' and  matrix[5][3] == 'B' and  matrix[4][2] == 'B' and  matrix[3][1] == 'B'){return 'B';}
    if (matrix[6][4] == 'R' and  matrix[5][3] == 'R' and  matrix[4][2] == 'R' and  matrix[3][1] == 'R'){return 'R';}
    if (matrix[3][5] == 'B' and  matrix[4][4] == 'B' and  matrix[5][3] == 'B' and  matrix[6][2] == 'B'){return 'B';}
    if (matrix[3][5] == 'R' and  matrix[4][4] == 'R' and  matrix[5][3] == 'R' and  matrix[6][2] == 'R'){return 'R';}
    if (matrix[6][5] == 'B' and  matrix[5][4] == 'B' and  matrix[4][3] == 'B' and  matrix[3][2] == 'B'){return 'B';}
    if (matrix[6][5] == 'R' and  matrix[5][4] == 'R' and  matrix[4][3] == 'R' and  matrix[3][2] == 'R'){return 'R';}
    return null;
}