前回は自作したテトリスを改良しましたが、

自作したテトリスを改良する(その4)

まだまだ不満な点はあります。点数表示がありません。

テトリスの点数はどのように決められているのでしょうか?

http://setsumei.html.xdomain.jp/famicom/tetris/tetris.html

これはファミコン編の説明ですが、ラインがそろったときだけでなくドロップ得点もあることがわかります。またブロックライン得点は1列消しただけなら40点、2列なら100点、4列同時に消すことができると1200点と単純に消した列の数に比例するのではないことがわかります。

ということで、得点もこれで計算することにします。

まず簡単そうなブロックライン得点から。

まずは得点を管理するためのフィールド変数を用意します。さらに得点を追加するためのメソッドも作成します。

次にテトリミノが着地したときに消せるラインがあるかどうか判定する必要がありますが、これは自作メソッドのGetDeleteLineを使えばわかります。

消せるラインがあればラインを消す自作メソッド DeleteLineIfNeedの中で得点に関する処理をおこなます。

スコアを表示させるために

つぎにドロップ得点ですが、↓キーが押されたときに処理をすることになりますが、・・・

新しくDropメソッドを作成してそのなかでおこないます(ややこしくなりそうなので)。

事前にどれだけ落下するのか計算してもいいのですが、ここではとりあえず急速落下させてみて、どれだけ落下するのかカウントすることにします。

またゲーム開始時は得点をリセットする必要があります。