Если вы используете массив, то вы должны иметь возможность использовать метод «содержит», чтобы проверить, находится ли перемещение уже в массиве.
Для этого вам, возможно, придется изменить метод равенства, чтобы сравнить два разных хода, чтобы проверить, совпадают ли они.
В этом случае, когда вы идентифицируете тот же ход, вы можете игнорировать это и искать другие ходы. Пример псевдокода
public class Move {
int x;
int y;
public boolean equals(Object o){
if(o == null) return false;
if(!(o instanceof) Move) return false;
Move other = (Move) o;
if(this.x != other.x) return false;
if(this.y != other.y) return false;
return true;
}
}
public class SolveMaze {
List<Move> moves;
...
public boolean isValidMove(Move move) {
if (moves.contains(move)) return false;
else {
...
moves.add(move);
}
}
}