private ArrayList<Position> findPlayerEndPos()
    {
        Search.Result result;
        ArrayList<Position> positions = new ArrayList<Position>();
        for(Position box : this.boxes){
            result = Search.bfs(this, new IsAtPosition(box.x+1,box.y), this.player.x, this.player.y);
            if(result != null){
                positions.add(new Position(box.x+1,box.y));
            }
            result = Search.bfs(this, new IsAtPosition(box.x-1,box.y), this.player.x, this.player.y);
            if(result != null){
                positions.add(new Position(box.x-1,box.y));
            }
            result = Search.bfs(this, new IsAtPosition(box.x,box.y+1), this.player.x, this.player.y);
            if(result != null){
                positions.add(new Position(box.x,box.y+1));
            }
            result = Search.bfs(this, new IsAtPosition(box.x,box.y-1), this.player.x, this.player.y);
            if(result != null){
                positions.add(new Position(box.x,box.y-1));
            }
        }
        return positions;
    }