Season III:オセロゲーム 篇


■ 概要

アプリケーションを作成する過程を通して、Jython/Swing によるフレームワークを習得します。

典型的なオセロゲームから始めて、蜂の巣(6角形)状の盤面を作り、3人で対戦できるゲームへと進化させます。

《Note》JPython1.1.x/Jython2.1.x 用に作成したセミナー課題を、Jython2.5.0 で再構成しました。

■ 関連記事

《Note》これらの記事は「ゲーム作成」のノウハウを提供するものではありません。ゲームを題材に扱っているのは「ルールの変更」をシステム開発における「要求仕様の変更」に見立てたものです。

EPISODE

3.00:アプリケーションギャラリー

3.01:Canvas を利用する

何も描かれていない(無垢のキャンバス)状態を確認できます。

3.02:イベントを処理する

Canvas の上でマウスをクリックすると、メソッド mouseClicked が呼び出されます。

3.03:モジュール分割:リファクタリング

モジュール分割によって、それを実現する方法(how)に依存しない、その目的(what)だけを示した抽象表現が可能になります。それを実現する方法を変更しても、その影響はメソッドを「提供する」側のモジュール内に限定されるので、メソッドを「利用する」側のモジュールに影響を与えません〔連続性:modular continuity〕。

3.04:Rectangle を利用する

マウスでクリックした位置に、矩形を描きます。

3.05:paint を再定義する

キャンバスに、8x8 の矩形を描きます。

3.06:dict を利用する

マウスでクリックしたマス目に、黒石を描きます。

3.07:クロージャー

初期設定として、4つの石(黒/白)を描きます。

3.08:演算子 not を利用する

マス目に他の石がないなら、交互に石(黒/白)を置けます。

3.09: 

マス目と隣接する石の色が異なるなら、交互に石(黒/白)を置けます。

3.10: 

マス目と隣接する石の色が異なるものをすべて、同じ色の石に反転します。

3.11: 

マス目と隣接する石の色が異なるものの中から、同じ色の石で挟まれたものだけを反転します。

3.99:

》作業中です《

3.99:

Last updated♪09/06/26