なんか色々と素っ飛ばしているような気がしますが、 DirectXの初期化とかはググればわかるので・・・。
とりあえず、パズルの画像を表示できないと何も始まらない… いや、画像よりもメインループとかを先に作ったほうがいいような気がしますが、 作ったものがグラフィカルに表示された方がやる気でるかなぁということで、 グラフィック関連の処理から実装しちゃいましょう。

スプライトはD3DXSPRITEってのが既に用意されているんですが、 ネットで検索すると、これの描画処理がかなり重いらしいのでゲームには使えないらしいです。
ということで、チャキチャキ実装しましょう。

ゆきいるか氏のサイトのこの記事によるとインデックスバッファを使用してDrawIndexedPrimitive(Up)を使うのがいいらしいですね。
これをパクって参考にしてスプライトクラスを作っちゃいましょうか。

D3DXSPRITEを使うと何度もDrawPrimitiveを呼び出しているのが遅い原因のようなので、 1つのテクスチャ(画像)から複数のスプライトを描画する場合は DrawIndexedPrimitiveUP で まとめて描画してしまおうという訳です。