- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个类(class)作业,要使用 Drools 作为推理机来创建机器人。然而,我的大多数规则都表现得很奇怪,因为它们不会为该类而触发,而是为其父类(super class)而触发。像这样的事情:
我的规则:
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
正如预期
public class Robotonikku extends TeamRobot
在 Robocode 模拟器调用的 Robotonikku 的 run() 方法内,我插入实例作为事实:
ksession.insert(this)
我希望规则一和规则三应该被触发,但是规则二和规则三被触发。为什么它将该实例识别为 TeamRobot 而不是 Robotonikku?
提前致谢。
加载代码:
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();
最佳答案
Robocode 引擎将机器人加载到安全类加载器中。加载到机器人类加载器中的类对于 robocode 进程中的其余类加载器不可见。我想你必须将 drools 加载到与机器人相同的 classLoader 中(最简单的方法是将机器人上的类合并到 classPath 并添加 drools .class 文件或合并 jar)。我不确定 drools 是否仍然可以在 robocode 的安全限制下工作,因此您可能需要关闭 robocode 安全性。
关于java - Robocode 机器人与 Drools Expert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6664196/
我试图在 Robocode 中实现单例模式。但不幸的是,当新一轮开始时,每次都会创建一个新对象(单例)。 你知道 Robocode 中是否可以使用单例模式吗?如果没有,你能解释一下为什么吗? 最佳答案
我想我也许可以通过从回合数中减去死亡人数来计算获胜回合的值(value),但我的计数器没有增加: public void onRoundEnded(RoundEndedEvent event) {
谁能给我解释一下这段代码吗?我不明白循环中的条件 while 和“预测的 X”。为什么predicted_X getBattleFieldWidth() - 18.0 ||
有谁知道如何在 Robocode 中围绕某个点按照斐波那契模式进行螺旋运动?我有 setTurnRight (double)、setAhead (double)、getX () 和 getY () 等
我编写了一个相对简单的AdvancedRobot,它转动雷达并记录所有敌人的速度。最终,我注意到机器人在不应该错过的情况下却错过了。我从 Robocode/Graphical Debugging wi
我已经安装了最新的 Java 版本,然后尝试从终端和 sourceforge 安装 Robocode,但在第一种情况下我收到错误: java.lang.ClassNotFoundExceptio
我正在尝试向控制台写入任何内容,但没有成功。 System.out.println("abc"); 应该可以,但事实并非如此。这是我的整个代码: import robocode.HitWallEven
目前在 RObocode 中,我有一个哈希表,其中名称作为键,point2D 对象作为值。这些对象的属性之一是 double 的lastSeen,它是自机器人被看到以来的时间。每次我扫描机器人时,我都
我是来问Robocode机器人的。我有一个机器人代码,与我的 26 个 friend 相比,它排在第 11 位。但是,我想尝试让它变得更好。我查看了网站并调整了我的代码,以便它可以不可预测地移动。这帮
我从 robocode 网站查看了 JGAP 包,在尝试设置它时遇到了问题。似乎所讨论的某些文件实际上并未在下载中。例如,网站上的行显示:- "MyRobot that resides in subd
我在尝试运行 Robocode.bat 时遇到以下错误 错误:无法找到或加载主类 robocode.robocode java Installation我查了一下,我在java网站查了一下,安装没问题
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 6 年前。
基本上,我试图在 Robocode 中生成一个日志文件,但我遇到了问题,因为您不能在 Robocode 中使用 try/catch(据我所知)。我做了以下事情: public void onBattl
我开始使用 Eclipse 编写 robocode。但是每当我从 eclipse 运行程序时就会出现错误, 错误:在类 robo_first.robo_new 中找不到 Main 方法,请将 main
我的项目根目录中有编程游戏“Robocode”,因此我可以在任何地方运行该项目,而无需将其安装在 C:/robocode 中。我有一个带有以下选项的运行配置; 主类: robocode.Robocod
我有一个类(class)作业,要使用 Drools 作为推理机来创建机器人。然而,我的大多数规则都表现得很奇怪,因为它们不会为该类而触发,而是为其父类(super class)而触发。像这样的事情:
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在编写 Robocode,现在我有一个编码问题: 我定义了类Enemy来存储敌人信息(例如航向、方位、速度等),在这个类中我还定义了一个名为direction的私有(private)属性。然后我使
我在 Robocode 中构建了一个机器人,我希望它具有自定义颜色,更具体地说是使用 RGBA。 这可能吗? 我尝试过: setBodyColor(Color.fromArgb(150, 0, 150
我是一名优秀的程序员,十分优秀!