Previous|1/36|Next
C#.use(better, IronPython=”WPF”) 記事一覧
テトリス:Hexagon WPF/IronPython

《著》小粒ちゃん/森こねこ《監修》小泉ひよ子とタマゴ倶楽部

実行中のゲーム

sample note

最初にテトリス(hexagon)を作成したのが1988年ですから、今年でちょうど20年目になります。ここでは、WPF アプリケーションとして作成した事例を紹介します。 

オリジナルと比べて、テトリミノは10種類に増えています。オリジナルのT型は、p型(magenta)b型(purple)Y型(gray)に分かれ、新たにC型(brown)を追加しました。テトリミノの色は、http://www.nintendo.co.jp/ngc/software/gtrj/index.html で採用されたガイドラインに準拠しています。テトリミノの形が変化するとともに種類が増えたことで、オリジナルと比べて「さらに右脳を活性化する」効果が期待できます。 

余談ですが「テトリス」を、英語式に直訳すると「4つの石」になります。『2001年宇宙の旅』に登場するモノリスは、英語式に直訳すると「monolith=ひとつの石」になり、相対論で著名なアインシュタイン博士の名前も、独語式に直訳すると「Einstein=ひとつの石」ですね。

《参考文献》

学習の指針

この課題は、ゲームを作成するのが「目的」ではありません。それは、実際のアプリケーション開発を疑似体験するための「手段」のひとつにすぎません。この課題を達成しても、ゲーム作成のノウハウは習得できません。しかし、ここで作成したゲームはご褒美のひとつにはなるでしょう。ゲームの「ルール」は、実際のアプリケーション開発における「要求仕様」と見なせます。そのため、要求仕様(ルール)の変更に伴って、既存のリソースをどこまで再利用できるかが鍵となります。設計に際しては「プログラム」の効率を犠牲にしても「プログラミング」の効率を優先させることに主眼を置いています。
これらのゲーム課題は、麻疹(はしか)のようなものかもしれません。プログラマーなら、一度は作ってみた(作ってみたいと思った)ことがあるでしょう。ここでは、プログラミング言語の違いを問題にはしません。読者のみなさんが同様のゲームを作ったことがあるなら、今回の仕様変更にも「柔軟に対処できるかどうか」で、ご自身のプログラムの出来/不出来を再評価してみてください。
この些細な仕様変更にも柔軟に対処できないとしたら、その原因は何でしょうか。そのプログラミング言語に満足していますか。その開発環境に満足していますか。そうでないなら、新たなプログラミング言語/開発環境に乗り換える、今がその好機かもしれませんね。「プロダクト指向」から「プロセス指向」への扉を開く鍵は、こんな所にも落ちています。要求仕様に変更があると聞いて「憂鬱」になるか「ワクワク」するかで、「アマ」グラマーとの差別化を図り「プロ」グラマーとしての力量が試される瞬間です。(^o^)

きっかけは

切っ掛けは、オセロゲーム(trinity)作りに着手した余韻(勢い)でした。テトリミノを6角形にするだけで、ゲームの幅が広がるものと期待して、テトリス(Hexagon)作りに着手したものです。そのルールは、オリジナル仕様の「テトリス」と同様です。

version implementation note
第1版 1988/12/11 Smalltalk/Smalltalk オセロゲーム(trinity)と同時並行で作成しました。当時のバージョンはカラー対応しておらず、グレースケール(ビットマップ)を利用していたのが懐かしく思えます。GUI コンポーネントを新規作成するとともに、それを使ってアプリケーションを作成します。
第2版 2004/02/29 Swing/Jython ビューには、Swing コンポーネントを再利用しました。Smalltalk/Python の違いが、ここに集約されます。Jython 版は、こちら《now or soon》です。
第3版 2008/05/28 WPF/IronPython モデルは上記のものを再利用して、ビューを新たに作成します。Swing/WPF の違い、Jython/IronPython の違いが、ここに集約されます。

《Note》要求仕様(ゲームのルール)の変更にも柔軟かつ迅速に対処できることから、Smalltalk におけるアジャイル開発の恩恵を再認識しました。Smalltalk には遠く及びませんが、Jython/IronPython を導入することで、Java/C# と比べると、プログラミング効率の向上が期待できます。□

要求仕様の変更:テトリミノの種類

オリジナルと比べて、テトリミノは10種類に増えています。

テトリミノ(型) テトリミノ(型)

〈New〉オリジナルにはない型です。




〈New〉オリジナルのT型から派生したものです。


〈New〉オリジナルのT型から派生したものです。


〈New〉オリジナルのT型から派生したものです。


Previous|1/36|Next

Last updated♪09/02/28