取り敢えず、配列を使う方法で
4ブロックで、ブロックを落とす、左右に移動する、
地面(他のブロックも)に着地するまではできました。
現在は列の消去に挑戦中なんですが、なかなか上手くいかないです。
(列の消去自体はなんとかできそうですけど)

4つのブロックを1つの固まりとして扱う方法が分からなくて、
移動の判定とかを4ブロックそれぞれのパーツのブロックの1つ1つを調べる方法でやってるんですが、
これだと回転した場合も全通り調べなきゃできないし、もう訳が分からなくなりそうです。
やっぱりほとんど勘でやってるので根本的な事が間違ってるみたいです。。。

あと、進可さんのは配列を考えるときとても参考になりましたが、
Delphiだそうなので自分にはソースは読めないです(自分はCです。)

ゲームプログラムやる人はテトリスはみんな最初に通る道と聞きますが、
みなさんはサクサク作れましたか?