Allegro交换对象

时间:2014-03-18 17:16:05

标签: c++ swap allegro

我正在尝试交换到类的对象。这是一个类似http://www.neos-guide.org/sites/default/files/Fifteen_puzzle.png的益智游戏。我正在使用std :: swap但它不起作用。这是代码:

if (puzzle[i-1][j].getNum() == 16) {
  std::swap(puzzle[i][j], puzzle[i-1][j]);
}
else if (puzzle[i+1][j].getNum() == 16) {
  std::swap(puzzle[i+1][j], puzzle[i][j]);
}
else if (puzzle[i][j+1].getNum() == 16 && j != 3) {
  std::swap(puzzle[i][j+1], puzzle[i][j]);
}
else if (puzzle[i][j-1].getNum() == 16 && j != 0)  {
  std::swap(puzzle[i][j-1], puzzle[i][j]);
}

这是我的谜题课:

class Puzzle {
private:
    int x;
    int y;
    int num;
    ALLEGRO_FONT *font;
public:
    Puzzle();
    ~Puzzle();
    void init(int posx, int posy, ALLEGRO_FONT *font);
    void setNum(int num);
    void draw();
    void setXY(int x, int y);
    int getX();
    int getY();
    int getNum();
    bool click(int mx, int my);
};

我已尝试在2D数组上使用std :: swap,在同一类的两个对象上,在1D对象数组和2D对象数组上。有效。它只是在这个实现中不起作用。我还试图评论ALLEGRO_FONT因为我认为存在问题。但一切都没有改变。 cplusplus.com说我需要加入<algorithm><utility>。我试过两个(不是在同一时间),但它没有用。有什么建议?谢谢:))

0 个答案:

没有答案