问题标签 [robocode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 是否可以在“主”机器人类之外调用机器人方法?
我正在尝试在 robocode 环境中制作机器人。我的问题是,如果我想(例如)在我的机器人类之外调用方法“fire()”(所以扩展 Robot 并具有运行的类,onHitBybullet,...方法),我该怎么做?
这只是我尝试过的事情之一(我的最新):
解释器代码:
包装样品;
我根本不是Java专家,所以也许我遗漏了一些东西,但是我尝试创建另一个类并使其扩展我的机器人类(因此继承了Robot方法),但是由于扩展了Robot的类,Java抛出了错误需要运行,onHitByBullet .. 方法。
java - 在 Robocode 中未调用 onScannedRobot 方法
我正在 Robocode 中创建一个简单的机器人。我有如下所示的功能墙:
请注意,see
andwallBool
是我的代码前面已经声明过的变量。在函数内的 while 循环中,我调用了该turnRight();
方法,该方法应自动扫描其他机器人。但是,我的代码没有在我的onScannedRobot
函数中运行,包括如下:
支票永远不会打印到控制台。怎么了?
任何帮助将不胜感激...
java - Robocode - 如何计算战斗结束时赢得的回合数?
我想我可以通过从回合数中减去死亡数来计算赢得的回合数,但是我的计数器没有增加:
在日志中没有得到任何编译错误或任何其他错误。当我在 onBattleEnded 事件中将变量输出到日志时,输出(100 轮后)为:
完整代码如下:
使用的 Robocode 版本是 1.9.2.6
java - 以后如何使虚拟键变小?
如何制作像大小写 VK_k 而不是 VK_K 的小 vk 字母?使用 Switch Case 谢谢
java - Robocode 响应式车削
我正在尝试为机器人代码制作一个机器人,当它看到机器人时它总是垂直旋转。
如果您不知道什么是机器人代码,请想象一个自上而下的游戏,其中方向以度数记录
我已经制定了一个方程式,可以满足我的要求,但效率很低
(例如,getHeading 是目标面对的方向,getHeading 是我面对的方向注意还有一个方法 getBearing 可以显示相对于敌人的角度)
但问题是它有时会走很长的路,而不是最短的路线。我可以使用什么更好的方程式来始终正确地转向?
java - 如何防止我的机器人接触某条线?
我对 java 和 robocode 很陌生,所以如果我的问题很愚蠢,请多多包涵。
我可以计算出对手子弹的行进路线,但我想知道如何存储和移动机器人,使其不接触任何这些线(我必须使用普通机器人,而不是 AdvancedRobot) . 有没有这样的方法(我不是在寻找代码,也没有实现这个,我只是在寻求有关如何解决这个问题的建议)?
java - 将 jar 文件导入 robocode 不起作用
我正在使用机器人代码 1.9.2.6
我为我的机器人创建了一个简单的 Maven 项目。当我将生成的 jar 导入 Robocode UI 时,Robot-> Import Robot。它说机器人导入成功,并且jar文件被复制到机器人文件夹中。
之后,当我创建一个新的战斗时,我的机器人不会出现。尝试刷新和清理缓存。
当我在首选项-> 开发中设置我的类文件夹的路径时,它可以工作。
如果需要更多信息,请告诉我。
java - Robot 在运行时无法找到 Robocode 库
我的项目根目录中有编程游戏“Robocode”,因此我可以在任何地方运行该项目,而无需将其安装在 C:/robocode 中。我有一个带有以下选项的运行配置;
- 主类: robocode.Robocode
- 虚拟机选项: -Xmx512M -Dsun.io.useCanonCaches=false -Ddebug=true -DNOSECURITY=true -cp libs/robocode.jar
- 工作目录: MY_ROOT\robocode_master
- JRE:默认(9.0.1 - 我的主模块的 SDK)
我正在为连接到 MongoDBAtlas 集群以获取必要数据的 AdvancedRobot 编写一些自定义功能。我正在使用 mongo-java-driver-3.6.1。.jar 已作为库添加到 IntelliJ,然后作为对主模块的编译依赖项。它在测试中运行良好,我可以下载文档等。
为了说明,这些库显示在“项目结构”窗格中。
我已将编译输出路径设置为robocode_master/robots目录,这样当我从 IntelliJ 运行 Robocode 时,它会在正确的目录中看到自定义机器人 .class 文件,并允许我将它们添加到战斗中。
问题是当我开始战斗并且机器人试图做它需要做的事情时,它会抛出一个java.io.FileNotFoundException并试图从robocode_master/robots目录中找到必要的库文件。
例如,它做的第一件事就是连接数据库;
当我将项目输出路径设置为 robots 文件夹时,在启动 Robocode 时,它会抛出一堆 FileNotFoundExceptions。但是,如果我将选项切换到“继承项目编译输出路径”,然后启动 Robocode,我不会在启动时遇到异常。但是现在当然,我的机器人不在默认目录中,所以它看不到它们。因此,我将out/production/...中的新路径添加到 GUI 中的 Robocode 并重新启动,然后我从机器人那里得到相同的异常。它现在尝试在out/production/.../com/mongodb/MongoClient.class中查找文件
如何“告诉”Robocode 在类路径的默认位置查找库?
java - robocode 中的线性定位
谁能解释我这段代码?我不明白循环中的条件和“预测的 X”。为什么predicted_X < 18
?18 是什么意思?
robocode - Ahead() 方法中的异常
我创建了 AdvancedRobot。在 Run() 的第一轮之后,我从 Ahead 方法中得到了异常。
例外情况是:
System.InvalidCastException:“无法将“net.sf.robocode.dotnet.peer.ExecCommands”类型的对象转换为“net.sf.robocode.dotnet.peer.ExecResults”类型。”</p>
和
java.lang.Throwable; StackTrace „($exception).StackTrace”:„System.InvalidCastException” {System.InvalidCastException} 源“jni4net.n-0.8.7.0”
结果我的机器人有一个标签“禁用”并且不会移动。你有什么想法吗?
我将 Robocode 用于 .NET。