【发布时间】:2016-11-28 01:30:54
【问题描述】:
我正在 Robocode 中创建一个简单的机器人。我有一个功能 walls 如下所示:
public void walls() {
see = false;
wallBool = true;
double maxMove = Math.max(getBattleFieldWidth(), getBattleFieldHeight());
turnLeft(getHeading() % 90);
ahead(maxMove);
see = true;
turnRight(90);
turnGunRight((getHeading() - getGunHeading())+ 90);
while (getEnergy() <= 115) {
wallBool = true;
see = true;
ahead(maxMove);
see = false;
turnRight(90);
}
}
请注意,see 和 wallBool 是在我的代码前面已经声明过的变量。在函数内的 while 循环中,我调用了 turnRight(); 方法,它应该会自动扫描其他机器人。但是,我的代码没有在我的 onScannedRobot 函数中运行,包括在下面:
public void onScannedRobot(ScannedRobotEvent e) {
System.out.println("check");
if (see==true) {
System.out.println("check2");
scan();
}
if (wallBool==true) {
fire(2);
}
检查永远不会打印到控制台。怎么了?
任何帮助将不胜感激...
【问题讨论】:
-
如果您收到扫描事件,我建议您将代码简化为仅旋转雷达并打印。然后重建到你在这里拥有的东西。
-
另外,如果您尝试对扫描的机器人进行射击,请使用
ScannedRobotEvent进行射击。示例机器人的源代码是一个很好的起点。