在Java中操作集合

时间:2016-03-25 09:24:54

标签: java arrays collections linked-list

我是编程的初学者,并坚持在SlidingPuzzles上完成作业。以下功能想要操纵每个可能的方向的板。发生的事情是,在一个目录中改变之后,改变的s也用于下一个目录。而不是使用原来的。

public Collection<Configuration> successors() {
    List<Configuration> succs = new LinkedList<>();
    SlidingGame t = new SlidingGame(this.board);
    for (Direction dir : Direction.values()) {
        if (t.canMove(dir)) {  
            SlidingGame s = new SlidingGame(this.board);
            s.holeX = t.holeX+dir.getDX();
            s.holeY = t.holeY+dir.getDY();
            s.board[t.holeX][t.holeY] = t.board[s.holeX][s.holeY];
            s.board[s.holeX][s.holeY] = HOLE;
            succs.add(s);
        }
    }
    return succs;
}

甚至改变,我根本不操纵。 这是使用的构造函数:

public SlidingGame(int[][] board){
    this.board = board;
    for(int i = 0; i < N ; i++){
        for(int j = 0 ; j < N; j++){
            if(board[i][j] == HOLE){
                holeX = i;
                holeY = j;
            }
        }
    }
}

我很抱歉这个菜鸟问题,但我现在已经停留了很长时间。谢谢你的帮助!

0 个答案:

没有答案