いまどき,ぷよぷよのAIアルゴリズムに興味のある人がいるのかどうかわからんが,連鎖ゲームのAI-COM開発キットを新しく作り直した.以前より開発しやすくなったと思う. AI-COM開発キット(SDK)では,連鎖ゲーム(ぷよぷよもどき)の敵のアルゴリズムをJavaで実装するための道具を提供しているが, 今回全面的に作り直した.
AIクラスの要件を,interfaceの実装からクラスの継承に変更した以前の版では,規定のinterfaceをimplementするように決めていたが,この方法は拡張性に欠けるということがあとでわかった. interfaceを追加したり引数を変更したりすると,既に作成済みのAIクラスがコンパイルエラーになるので,そっちも直さないといけないという面倒なことになっていた.その反省を踏まえて今回は,基底のabstractクラスを提供するので,AIクラスはそれをextendsすればよいということにした. これなら,メソッドを追加しても基底クラスの方でデフォルト実装を提供できるので,必要なければそのままオーバーライドしなければ良く,コンパイルエラーにはならない. 配布物を絞ったわかりやすくなるように,必要最小限に絞ってシンプルにした.配布物には全てソースをつけた以前は,エンジン部はclassファイルのみでAI部はソース付きとかややこしかったが,全部ソースを公開することにした. まぁあまり目に優しいとは言えないが.しかしぷよぷよのAIを実装したJavaソースなんて,他ではあまり見れないのでは無かろうか.JDKのバージョンを1.5に上げた以前は,MicrosoftのJava VMでも動かせるように,classファイルバージョン1.1を死守していた.意地でも動かすという執念で, 禁欲的に1.1準拠で実装していた.しかし今回は,連鎖ゲーム本体とは別の開発専用キットということで割り切って,思い切って1.5に上げてやった. もちろんMicrosoftのVMでは動かなくなるが,随分開発が楽になる. JDK 1.1では使えないクラス,メソッドが色々あるが,eclipse上ではコンパイルエラーにならずにIEで実行して初めてエラーになるので, そこを意識しながらの開発が結構手間だったのです.例えば,Vectorから値を取り出すときは,get()は駄目でelementAt()を使うとか...もちろんListなどのコレクションフレームワークは1.2以降なので論外 反響はあるのだろうか...さて,前回と同じように,全く反応無しかな (;´Д`) |