前回作成したモグラ叩き兼タイピング練習ソフトではモグラは1匹ずつしか現れませんでした。今回は複数同時に出現させます。

モグラ叩きゲームなので叩かれないモグラはいつまでも存在することはありません。一定の時間が経過したらいなくなってしまいます。そこでMoguraクラスに以下を追加します。

それからスコアもつけることにします。以下のようにすれば叩くことができたモグラと叩き損ねたモグラ、叩かなくて良い場所を叩いた回数をスコア化することができます。

以下はゲームスタート関連のメソッドとイベントハンドラです。

では複数モグラを表示させてみましょう。

モグラを生成したらリストのなかに格納していきます。そのときすでに同じ文字列をもつモグラがいた場合は追加しないでそのまま破棄します。

そのあと出現後一定時間が経過したのに叩かれずに残っているモグラがいないか調べます。見つかったらリストのなかから取り除いて破棄します。そして叩き損ねたモグラとしてカウントします。

モグラを叩くときの処理です。リストのなかに文字列が一致するモグラがいるかどうか調べます。あれば取り除て破棄したあと、叩くことができたモグラとしてカウントします。

これはモグラが1匹ずつ現れるときに使用するプロパティです。

valueがnullのときはモグラが叩かれたときです。そうでないときは新しいモグラが生成されたときです。_mogura が null ではないときに新しいモグラがセットされたら叩き損ねたことになります。このときも叩き損ねたモグラとしてカウントします。

最後に描画のためのOnPaint(PaintEventArgs e)を示します。