- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试创建一个 2d 拼图 slider 游戏。我创建了自己的名为 gamestate 的对象来存储父游戏状态和新游戏状态,因为我计划使用 BFS 解决它。示例数组看起来像
int[][] tArr = {{1,5,2},{3,4,0},{6,8,7}};
这意味着
[1, 5, 2,3, 4, 0,6, 8, 7]
为了存储此状态,我使用了以下 for 循环,它带来了 indexOutOfBounds 异常
。
public class GameState {
public int[][] state; //state of the puzzle
public GameState parent; //parent in the game tree
public GameState() {
//initialize state to zeros, parent to null
state = new int[0][0];
parent = null;
}
public GameState(int[][] state) {
//initialize this.state to state, parent to null
this.state = state;
parent = null;
}
public GameState(int[][] state, GameState parent) {
//initialize this.state to state, this.parent to parent
this.state = new int[0][0];
for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++) {
this.state[i][j] = state[i][j];
}
}
this.parent = parent;
}
关于如何解决这个问题有什么想法吗?
最佳答案
GameState()
构造函数(默认构造函数):将此 state = new int[0][0];
更改为:state = new int[
3
][
3
];
。这样,您就可以用 (3)x(3) 个元素的容量初始化数组。
GameState(int[][] state, GameState parent)
构造函数:将此 this.state = new int[0][0];
更改为 this.state = new int[
state.length
][state.length > 0 ?状态[0].length : 0
];
这样,你初始化数组的容量为
(state.length
)x(state[0].length
或 0
如果 state.length
是 0
) 个元素。
另外,你必须 for 循环直到 state.length
with i
和直到 state[i].length
with j
.
在 GameState
构造函数中,像这样:
public GameState(int[][] state, GameState parent) {
//initialize this.state to state, this.parent to parent
this.state = new int[state.length][state.length > 0 ? state[0].length : 0];
for (int i = 0; i < state.length; i++){
for (int j = 0; j < state[i].length; j++) {
this.state[i][j] = state[i][j];
}
}
this.parent = parent;
}
此外,作为旁注,它不是 [1, 5, 2, 3, 4, 0, 6, 8, 7]
,
但是 [[1, 5, 2], [3, 4, 0], [6, 8, 7]]
。
关于java - 在java中加载二维数组的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52608711/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!