在Java中,如何在下面的connect four测试中获得数组的值?

在Java中,如何在下面的connect four测试中获得数组的值?,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,我正在为我的高级编程课做一个项目,我似乎找不到解决问题的方法。我需要得到在一个多维数组中找到的四个连续数字的值,该数组由六行七列组成 本质上,提供的代码告诉我是否有连续的四个。我所需要的就是在四个连续数字的数组中找到值的索引 public static boolean isConsecutiveFour(int[][] values) { int numberOfRows = values.length; int numberOfColumns = values[0].length; // C

我正在为我的高级编程课做一个项目,我似乎找不到解决问题的方法。我需要得到在一个多维数组中找到的四个连续数字的值,该数组由六行七列组成

本质上,提供的代码告诉我是否有连续的四个。我所需要的就是在四个连续数字的数组中找到值的索引

public static boolean isConsecutiveFour(int[][] values) {
int numberOfRows = values.length;
int numberOfColumns = values[0].length;

// Check rows
for (int i = 0; i < numberOfRows; i++) {
  if (isConsecutiveFour(values[i]))
    return true;
}

// Check columns
for (int j = 0; j < numberOfColumns; j++) {
  int[] column = new int[numberOfRows];
  // Get a column into an array
  for (int i = 0; i < numberOfRows; i++)
    column[i] = values[i][j];

  if (isConsecutiveFour(column))
    return true;
}

// Check major diagonal (lower part)   
for (int i = 0; i < numberOfRows - 3; i++) {
  int numberOfElementsInDiagonal 
    = Math.min(numberOfRows - i, numberOfColumns);     
  int[] diagonal = new int[numberOfElementsInDiagonal];
  for (int k = 0; k < numberOfElementsInDiagonal; k++)
    diagonal[k] = values[k + i][k];

  if (isConsecutiveFour(diagonal))
    return true;
}

// Check major diagonal (upper part)
for (int j = 1; j < numberOfColumns - 3; j++) {
  int numberOfElementsInDiagonal 
    = Math.min(numberOfColumns - j, numberOfRows);     
  int[] diagonal = new int[numberOfElementsInDiagonal];
  for (int k = 0; k < numberOfElementsInDiagonal; k++)
    diagonal[k] = values[k][k + j];

  if (isConsecutiveFour(diagonal))
    return true;
}

// Check sub-diagonal (left part)
for (int j = 3; j < numberOfColumns; j++) {
  int numberOfElementsInDiagonal 
    = Math.min(j + 1, numberOfRows);     
  int[] diagonal = new int[numberOfElementsInDiagonal];

  for (int k = 0; k < numberOfElementsInDiagonal; k++)
    diagonal[k] = values[k][j - k];

  if (isConsecutiveFour(diagonal))
    return true;
}

// Check sub-diagonal (right part)
for (int i = 1; i < numberOfRows - 3; i++) {
  int numberOfElementsInDiagonal 
    = Math.min(numberOfRows - i, numberOfColumns);     
  int[] diagonal = new int[numberOfElementsInDiagonal];

  for (int k = 0; k < numberOfElementsInDiagonal; k++)
    diagonal[k] = values[k + i][numberOfColumns - k - 1];

  if (isConsecutiveFour(diagonal))
    return true;
}

return false; 
}

public static boolean isConsecutiveFour(int[] values) {    
 for (int i = 0; i < values.length - 3; i++) {
   boolean isEqual = true;        
   for (int j = i; j < i + 3; j++) {
     if (values[j] != values[j + 1]) {
      isEqual = false;
      break;
    }
  }

  if (isEqual) return true;
  }

  return false;
  }
}
public静态布尔值IsConsecutiveFor(int[][]值){
int numberOfRows=values.length;
int numberOfColumns=值[0]。长度;
//检查行
for(int i=0;i

我希望至少有人能帮我指明正确的方向。任何帮助都将不胜感激。谢谢:)

第一个任务:考虑一下要用来表示这些索引的返回类型。这里有多种选择。谢谢回复。我会一直玩到拿到为止。我将看看我能做些什么,我已经想到了一些-问题是实现。当返回true时,可以将有效索引存储在数组isconsecuritivefore中。。并将数组内容设置为-1