问题标签 [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 代码中添加防墙功能?
我正在编写一个在Robocode中运行的机器人。我的代码目前有效,我的坦克就像我希望它运行和移动一样运行。唯一的问题是它在战斗中多次撞墙,每次发生时我都会失去健康。
我尝试在 run() 方法中使用 getX() 和 getY() 将我的主题位置与我的网格的长度和宽度 getBattleFieldWidth() 和 getBattleFieldHeight() 进行比较,但这似乎不起作用。我还尝试将此代码放入我的 onScannedRobot() 方法中,但效果不佳。当我的对象从墙的每一侧接近 50 个单位时,我试图将我的对象的方向更改为与墙平行。然而,这还没有奏效。我也尝试做同样的事情,但改变了我的主题方向,但这也不起作用。我在 run() 和 onScannedRobot() 方法中都尝试了这一切,但还没有成功。
我尝试使用RoboWiki Wall Smoothing/Implementations page中描述的算法:Simple Iterative Wall Smoothing (by PEZ), Fast Wall Smoothing (by Voidious), Non-Iterative Wall Smoothing (by David Alves), and Non-Iterative Wall拥抱(西蒙顿),但尚未占上风。
我正在使用 Robocode 版本 1.7.3.6 来运行此代码。
如何在我的代码中添加墙壁避免,或者最好是墙壁平滑?这是我的代码:
java - Robocode Enemy 类 setDirection() 调用
我正在编写 Robocode,现在我有一个编码问题:
我定义了一个类Enemy
来存储敌人信息(如航向、方位、速度等),在这个类中我还定义了一个名为方向的私有属性。然后我使用公共 getter 和 setter 来允许我的机器人调用这些属性。但是当我使用时enemy.setDirection(e.getDirection());
,NetBean IDE 显示它不正确。有人可以帮助解决这个问题吗?
然后在我的机器人课上:
java - 如何在 Robocode 上设置 alpha 颜色?
我在 Robocode 中构建了一个机器人,我希望它具有自定义颜色,更具体地说是使用 RGBA。
那可能吗?
我试过了:
但都没有奏效。有什么建议么?
java - 我不明白为什么当我运行这段代码时它永远不会进入 onScannedRobot(ScannedRobot e) 方法?
我在 Java 中使用环境 Robocode,并试图创建一个机器人来对抗示例机器人 spinbot。我正在计算旋转机器人环绕的圆心,并使用它来瞄准以获得击中旋转机器人的最佳机会。我的代码编译得很好,但是当我运行它时,它永远不会进入 onScannedRobot(ScannedRobot e) 方法。我通过在不同点改变机器人的颜色来测试它,我可以说它从未进入过。
如果有人能告诉我做错了什么/如何修复它,以便代码进入这个方法,那就太好了,谢谢。
java - 无法在机器人代码中打印到控制台
我正在尝试向控制台写任何东西,但没有运气。
应该工作,但事实并非如此。这是我的整个代码:
我究竟做错了什么?
最好的祝福!
java - 如何修复 robocode 的角度精度?
我刚开始玩机器人代码,在我的第一个机器人项目中遇到了这个角度问题。为了射击附近的敌人,我编写了以下代码;
我的问题是当敌人离得太远时,我的枪无法像这样滑动死角;
这是我写给 robolog 的角度; 我猜角度差异小于 1 度是问题所在。但是像“角落”这样的示例机器人可以以任何角度聚焦目标。有人能帮我吗 ???
java - Robocode 在 Eclipse 中运行
我开始用 Eclipse 编写机器人代码。但是每当我从 Eclipse 运行程序时,它都会出错,
错误:在类 robo_first.robo_new 中找不到主方法,请将主方法定义为:public static void main(String[] args) 或 JavaFX 应用程序类必须扩展 javafx.application.Application
我做过的事情:
- 我添加了 robocode.jar 作为参考库
在运行配置
- 虚拟机参数 -Xmx512M -Dsun.io.useCanonCaches=false
- 工作目录其他 - /home/sameera/robocode
- 项目 - robo_first
- 主类 - robo_first.robo_new
这有什么问题?还有什么我应该做的吗?
我直接在 Robocode 中运行上面的代码,通过设置首选项/开发选项并添加 eclipse 工作区/项目/bin .. 它可以工作..!!!
我正在使用 eclipse luna、ubuntu 14.04 和 robocode 1.9.2.4
robocode - onScannedRobot 方法永远不会被调用
尝试使用 System.out 进行调试以检查方法是否运行。run 方法执行良好,雷达开始旋转,机器人控制台显示 Hello。onScannedRobot 似乎从未被调用过。完全不知道如何解决。在战斗中,机器人可以很好地融入游戏,它肯定会在其他机器人身上旋转它的雷达。
java - Robocode HashTable/方法修改它的值
目前在 RObocode 中,我有一个哈希表,其中名称作为键,point2D 对象作为值。这些对象的属性之一是双 lastSeen,它是自看到机器人以来的时间。每次扫描机器人时,我都会将此值设置为 0,这个值也有助于我的雷达成为最古老的扫描雷达。
上面的代码在扫描机器人时,将其作为对象推入哈希表,并将对象的 lastseen 属性设置为 0;
我创建了一个方法,通过返回所有对象的 lastSeen 变量的枚举并向每个对象添加一个来增加每个对象的 lastSeen 变量的值(加 1)。方法如下:
但是,如果哈希表中没有任何内容,我无法调用此方法,这就是为什么如果哈希表中没有任何内容,我会设置一个 if 来阻止该方法执行。不知道这是什么原因。。
还有其他方法可以有效地做到这一点吗?
java - 从java运行批处理文件会导致挂起,但在正常运行时不会
我正在运行一个批处理文件,该文件在 Java 中运行 Robocode 中的战斗,然后收集战斗结果。我用来运行批处理文件的代码是:
我的批处理文件的内容是:
如果我在 robocode 中运行少于 35 轮的战斗,这可以正常工作,但是当我尝试运行具有 35 或更多战斗的战斗时,代码会挂起并且永远不会返回到 java 代码。
我通过运行修改批处理文件进行了进一步调查,以便它在显示时运行,这样我就可以观看战斗并找出它挂在哪里。第35场战斗打完,就进入了“第35轮清理”这一步,基本就挂了。该程序没有冻结或任何东西,它只是不会初始化下一场战斗。
我已经与从事类似项目的人讨论过,他们没有遇到这些问题,我们的代码在这部分也没有显着差异。我试过在两台不同的机器上运行它,但在两台机器上都得到了相同的结果。
有什么建议吗?