首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Robocode Robot with Drools Expert

Robocode Robot with Drools Expert
EN

Stack Overflow用户
提问于 2011-07-12 20:32:41
回答 1查看 886关注 0票数 1

我有一个使用Drools作为推理机来创建Robot的类分配。然而,我的大多数规则都很奇怪,因为它们不是为类而触发,而是为它的超类而触发。如下所示:

我的规则是:

代码语言:javascript
运行
复制
import the.manifested.Robotonikku;
import the.manifested.Strategy;
import the.manifested.Action;

import robocode.TeamRobot;

rule "One"
    when
        Robotonikku();
    then
        System.out.println("roboto is present");
end

rule "Two"
    when
        not Robotonikku();
    then
        System.out.println("roboto is not present");
end

rule "Three"
    when
        TeamRobot();
    then
        System.out.println("robot is present");
end

rule "Four"
    when
        not TeamRobot();
    then
        System.out.println("robot is not present");
end

不出所料

代码语言:javascript
运行
复制
public class Robotonikku extends TeamRobot

在Robocode的模拟器调用的Robotonikku的run()方法中,我将实例作为事实插入:

代码语言:javascript
运行
复制
ksession.insert(this)

我希望规则1和3应该触发,但规则2和3被触发。为什么它将该实例识别为TeamRobot而不是Robotonikku?

提前谢谢。

加载代码:

代码语言:javascript
运行
复制
    String ficheroReglas = System.getProperty("robot.reglas", RobotDrools.FICHERO_REGLAS);

    kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();

    kbuilder.add(ResourceFactory.newClassPathResource(ficheroReglas, RobotDrools.class), ResourceType.DRL);
    if (kbuilder.hasErrors()) {
        System.err.println(kbuilder.getErrors().toString());
    }

    kbase = KnowledgeBaseFactory.newKnowledgeBase();
    kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());

    ksession = kbase.newStatefulKnowledgeSession();
EN

回答 1

Stack Overflow用户

发布于 2011-07-14 21:43:43

Robocode引擎将机器人加载到安全的类加载器中。在robocode进程中,加载到robot classLoader中的类对classLoaders的其余部分不可见。我猜您必须将drools加载到与robot相同的classLoader中(最简单的方法是合并robot上的类classPath,并添加drools、.class文件或合并jars)。我不确定drools是否还能在机器人代码的安全限制下工作,所以你可能需要关闭机器人代码的安全性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6664196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档