ライフゲームエディタをJavaアプリケーションに移植してみます。今回は、アプリケーションの設計をデータとその操作を行うデータクラスと表示・入力を行うGUIクラスに分離して、GUI部分も「部品(コンポーネント)」化するなど今風(?)のプログラミング手法を試してみる事にしましょう。 アプリケーションの設計 ライフゲームは2次元セルオートマトンなので、データクラスはセルの状態を記録する2次元配列が基本になるでしょう。そして、その配列と時間的に発展していく時の遷移ルール、ライフゲームの状態を保持する変数をいくつか、というデータ構造になると思います。また、操作に関してはルールに基づいて1ステップ進める処理とセル配列や状態変数に対するアクセスメソッドを定義する事になりそうですね。 今回は、セル配列とセルの大きさを記憶し、それらのデータに対するアクセスメソッドも定義したデータクラスを作ってみました。大き