AI-COM SDKは,連鎖ゲームのAI-COMを自分で作成して,ゲームとして動作させることのできるキットです.ローカル環境でブラウザで開いて動作させることができます.サーバは不要です.version2では,さらに扱いやすく進化しました.

AI-COM SDK version 2

言語はJavaを使用しています.JDKのバージョンは,1.5以上が必要です.

aisdk2.jpg

ダウンロード

以下の内容に同意できる方のみ,ダウンロードしてください.
  1. AI-COM SDKの全ての配布物の著作権は,本サイト(kamoland)作者に帰属します
  2. 著作者の許可なく配布・販売することを禁じます
  3. AI-COM SDKを使用して発生したいかなる損害に対しても,著作者はその責任を負いません

※v21ではソースを一部修正し,JDK1.7での動作を確認しました

zipに含まれるrensa_sdkディレクトリを,そのままeclipseのプロジェクトとして使えます.

あと,ダウンロードされた人は,RensaWikiの掲示板でお知らせしてもらえると,作者が喜びます.

「こんなアルゴリズムのAI-COMができた!」などというご報告も,お待ちしています.

以前のバージョンのSDKとの違い

  • 配布物を,AI開発の内容に絞ってシンプルにしました
  • 配布物はソースコードを全て公開するようにしました

AI-COM開発の手順

1.コンパイル環境を整える

  • JDK1.5以上
  • eclipse (普通のJavaですので,もちろん他の環境でも構いません)

2.AIロジックを作成する方法

AbstractAiクラスを継承したクラスを作成してください. サンプルとして,2個添付しています.
クラス名説明
com.kamoland.rensasdk.ai.AiTest連結個数だけを評価する単純なAI
com.kamoland.rensasdk.ai.JugemMaster6連鎖にこだわるAI.激辛コースの1人目です

以下の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;
	}
}
このロジックだと連鎖はほとんど作れないのですが,JugemMasterの元になっている RensaYomi4-5のロジックのように色々な要素を積み手の評価に取り込むと, 結構連鎖を作れるようになってきます.

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の掲示板で受け付けます.
kamolandをフォローしましょう


© 2017 KMIソフトウェア