@Override
	public boolean equals(Object obj) {
		if(obj == this)
			return true;
		if(!(obj instanceof PuzzleState))
			return false;
		PuzzleState state = (PuzzleState)obj;
		ArrayList<Integer> stateBoard = state.getBoard();
		for(int i = 0; i < N * N; i++) {
			if(stateBoard.get(i) != board.get(i))
				return false;
		}
		return true;
	}