Объект обмена 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);
};

Я пробовал std :: swap на двумерном массиве целых чисел, на двух объектах одного класса, на одномерном массиве объектов и двумерном массиве объектов. Это сработало. Это просто не работает в этой реализации. Я также попытался закомментировать ALLEGRO_FONT, так как думал, что проблема в этом. Но ничего не изменилось. cplusplus.com говорит, что мне нужно включить <algorithm> или же <utility>, Я пробовал оба (не одновременно), но это не сработало. Какие-либо предложения? Спасибо 🙂

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector