一般的なテトリスにはつぎに現れるテトリミノが表示されます。上級者はこれらをみて高得点を狙います。ところがこれまで作成してきたテトリスには次に出現するテトリミノは表示されませんでした。今回は次に現れるテトリミノを表示させます。

ではNEXTブロックはいくつ表示させればいいのでしょうか? テトリスにはガイドラインなるものが存在し、これによると最低でも2つ先まで表示することになっています。多くのソフトでは3つ先まで表示し、ソフトによっては6つ先まで表示されるものもあるそうです。

テトリス ガイドライン – Wikipedia

・・・ということなので、ここは平均的な3つ先まで表示させることにします。

まずデザイナで以下のようにPictureBoxを3つつくります。そしてそこに次に出現するテトリミノのイメージを表示させます。PNG形式で以下のようなものを作成しました。これをリソースに追加します。

そして次にくるテトリミノのリストを作成します。Imageのリストは最初に1回作成すれば使い回しができます。int型が格納されたリストnextsはゲーム開始時に新しくつくりなおします。

ところでミノの出現方法はランダムにおこなわれると考えていたのですが、実際にはそうではありません。7つのミノ(テトリミノと書くのは面倒だから今後は「ミノ」と書くことにする)が1セットになって1セットの中でランダムに出現します。そのため同じ種類のミノが2回連続で落ちてくることはあっても3回連続するということはないということになります。

自作メソッドInitNextでランダムに落ちてくるミノの順番を決めます。最初に少なくとも7回分の順番を決める必要があります。

自作メソッドInitNextのなかで7個のランダムな整数をつくる自作メソッド GetRandom7を呼びます。得られた値をList<int>型のフィールド変数nextsに格納します。

新しいテトリミノを作成するときはnextsから先頭の値をひとつだけ取り出して使います。そしてnextsの要素数が3になったら新しく7つの乱数を追加します。