ルールベースのシステムを利用してロボットを作成するために、JESS を使用しようとしています。ロボコードと JESS .jar の両方を Eclipse にインポートしました。ここに私のコードがあります -
public class myRobot extends Robot {
Rete r = new Rete();
public void run() {
try {
String reset = "(reset)";
r.executeCommand(reset);
String enemyInfo = "(deftemplate enemyInfo (slot present) (slot energy) (slot name))";
r.executeCommand(enemyInfo);
while (true) {
String command = "(assert (enemyInfo (present no) (energy -1) (name none)))";
r.executeCommand(command);
}
} catch (JessException ex) {
System.err.println(ex);
}
}
public void onScannedRobot(ScannedRobotEvent e) {
try {
String command = "(assert (enemyInfo (present yes) (energy " + e.getEnergy() + ") (name " + e.getName() + ")))";
r.executeCommand(command);
} catch (JessException ex) {
System.err.println(ex);
}
}
}
ロボコードと JESS が一緒に正しく動作することを確認したかっただけなので、まだルールを追加していません。これを起動すると、robocode アプリケーションが開きます。しかし、このロボットをバトルに追加して起動しようとすると、アプリケーションが完全にフリーズします。
戦闘を開始しようとした直後にハングするため、ロボットのコンソールにアクセスして何が問題なのかを確認できません。私の System.out.println() デバッグ ステートメントはすべて、メインのコンソールではなくロボットのコンソールに出力されるため、何が問題なのかさえわかりません。これを機能させるための提案はありますか?