AI-COM SDKは,連鎖ゲームのAI-COMを自分で作成して,ゲームとして動作させることのできるキットです.ローカル環境でブラウザで開いて動作させることができます.サーバは不要です.version2では,さらに扱いやすく進化しました.
AI-COM SDK version 2言語はJavaを使用しています.JDKのバージョンは,1.5以上が必要です.ダウンロード以下の内容に同意できる方のみ,ダウンロードしてください.
※v21ではソースを一部修正し,JDK1.7での動作を確認しました zipに含まれるrensa_sdkディレクトリを,そのままeclipseのプロジェクトとして使えます. あと,ダウンロードされた人は,RensaWikiの掲示板でお知らせしてもらえると,作者が喜びます. 「こんなアルゴリズムのAI-COMができた!」などというご報告も,お待ちしています.
以前のバージョンのSDKとの違い
AI-COM開発の手順1.コンパイル環境を整える
2.AIロジックを作成する方法AbstractAiクラスを継承したクラスを作成してください. サンプルとして,2個添付しています.
以下のAiTestのソースのように, public Tumi decide(AbstractAi.Env param) AiTest.java package com.kamoland.rensasdk.ai; import com.kamoland.rensasdk.AiUtil; import com.kamoland.rensasdk.Tumi; import com.kamoland.rensasdk.Field; /** * 連結個数だけ評価するAI */ public class AiTest extends AbstractAi { private Tumi bestTumi; private int bestEval; public Tumi decide(AbstractAi.Env param) { bestTumi = new Tumi(); bestEval = -1; byte[] nextTumo = param.futureTumos[0]; param.myField.each(nextTumo, new Field.CallByTumi() { public void func(int index, Field before, Field after, Tumi beforeDrop, Tumi dropped) { // 各積み手を評価して,最善手をbestTumiに残す // 連結個数を求める int cc1 = AiUtil.countConnected(after, dropped.x[0], dropped.y[0], dropped.c[0]); int cc2 = AiUtil.countConnected(after, dropped.x[1], dropped.y[1], dropped.c[1]); int cc = cc1 + cc2; // 最善手の更新 if (cc >= bestEval) { beforeDrop.copyTo(bestTumi); bestEval = cc; } } }); return bestTumi; } } 3.アプレットからそのAIクラスを呼び出すようにするcom.kamoland.rensasdk.applet.SdkAppletクラスに, AIクラスをnewしている箇所がありますので,そこを新しく作ったAIクラスをnewするように書き換えてください.例.SdkApplet.javaの53行目付近 // AIクラス初期化 // TODO aiImpl = new AiTest(); 4.コンパイルするeclipseから,配布のbuild.xmlを使ってビルドすれば,rensasdk.jar が生成されます.5.ブラウザで実行するsdk.htmlをブラウザで開くと,実行できます. JDK1.5以上が必要ですので,IEでMicrosoftのJavaVMを使うと動きませんのでご注意. IEの場合は,SunのJavaを使うように設定しなければなりません.またはAppletviewで実行するappletviewer.exe sdk.htmlで実行してください サポートRensaWikiの掲示板で受け付けます. |