public class GameWindow
{
public static int[][] map = {
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 0, 1, 0, 0},
{0, 2, 1, 0, 0}
};
public static double[][] board;
public static Rectangle2D setBoard()
{
Rectangle2D.Double tile = new Rectangle2D.Double(10, 10, 10, 10);
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
board[i][j] = tile;
}
}
}
public static int rows = 6;
public static int columns = 5;
public static int[][] next = new int[rows][columns];
public static void main(String[] args)
{
for(int i = 0; i < map.length; i++)
{
for(int j = 0; j < map[i].length; j++)
{
System.out.print(map[i][j] + " ");
}
System.out.println();
}
}
}
存在编译错误,并且不允许我在此数组中存储矩形。此外,我怀疑它甚至会成为一个网格。
答案 0 :(得分:2)
好吧,board是一个double的数组,你正试图在那里放一个Rectangle!你需要:
public static Rectangle2D[][] board = new Rectangle2D[10][10];
你需要确定矩形在屏幕上的确切位置。您不应该创建单个矩形并将其放置在电路板的每个位置。
public static Rectangle2D setBoard()
{
Rectangle2D.Double tile;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
tile = new Rectangle2D.Double(x, y, w, h);//how will you determine x and y here
board[i][j] = tile;
}
}
}
答案 1 :(得分:2)
setBoard
中的代码有几个错误。首先,您要创建一个Rectangle2D.Double
实例,然后在构建board
的内容时重复使用多次。这意味着如果您对board
中的任何条目进行更改,则所有条目都将更改 - 该数组包含对同一对象的100个引用。
可能导致编译错误的第二个问题是board
类型为double[][]
,但您尝试将Rectangle2D.Double
放入其中,这是一个不同的“加倍你的阵列。您只能将double
值放入数组中。