首页 > 解决方案 > 旋转魔方的面

问题描述

我有一个 Face 类,它为 rubiks 立方体的每一侧接收 3x3 整数数组。我正在尝试创建一个 rotateRight() 方法

010203                 070401
040506     becomes     080502
070809                 090603

但是,我不确定如何让我的方法 rotateRight() 返回一个类型 Face (这是我在运行代码时面临的当前错误)。我可以得到一些帮助吗?以下是我目前拥有的代码:

public class Face{
  private int[][] grid;

  public Face(int[][] grid){
    grid = new int[3][3];
  }


  public Face rotateRight(){
    int rows = 3;
    int cols = 3;
    int[][] transposedArray = new int[3][3];

    for (int i = 0; i<rows; i++){
      for (int j = 0; j<cols; j++){
        transposedArray[j][i]=grid[i][j];
      }
    }
  }
}

标签: javamultidimensional-arraytranspose

解决方案


如果我的问题正确,那么您将失败,因为您没有在方法结束时返回 Face 类型。如果这是正确的,您只需在以下位置创建一个新Face实例rotateRight()

public Face rotateRight(){
    int rows = 3;
    int cols = 3;
    int[][] transposedArray = new int[3][3];

    for (int i = 0; i<rows; i++){
      for (int j = 0; j<cols; j++){
        transposedArray[j][i]=grid[i][j];
      }
    }
    return new Face(transposedArray)
  }

推荐阅读