1
我想我可能是能够计算减去轮的死亡人数赢得价值回合,但我的计数器不会递增:Robocode - 如何计算在战斗结束时赢得的回合?
public void onRoundEnded(RoundEndedEvent event)
{
roundCount++;
}
public void onDeath(DeathEvent event)
{
deathCount++;
}
没有得到任何编译错误或日志中的任何其他错误。当我输出的onBattleEnded事件中的变量日志,输出(经过100轮)是:
roundCount=1
deathCount=0
下面
全码:
public class AB extends AdvancedRobot
{
private int deathCount;
private int roundCount;
public void run()
{
while(true)
{
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360);
}
}
public void onScannedRobot(ScannedRobotEvent e)
{
fire(1);
}
public void onHitByBullet(HitByBulletEvent e)
{
back(10);
}
public void onHitWall(HitWallEvent e)
{
back(20);
}
public void onRoundEnded(RoundEndedEvent event)
{
roundCount++;
}
public void onDeath(DeathEvent event)
{
deathCount++;
}
public void onBattleEnded(BattleEndedEvent event)
{
System.out.println("roundCount=" + roundCount);
System.out.println("deathCount=" + deathCount);
}
}
使用
Robocode的版本是1.9.2.6
你期望它做什么?你能发表一个[Minimal,Complete和Verifiable的例子吗?](https://stackoverflow.com/help/mcve) – Koekje
我预计在每轮回合结束后roundCount会递增,而deathCount每次递增机器人被杀害。当我进行100回合的战斗时,roundCount = 1和deathCount = 0。 – lepton
有可能每个方法都没有被调用,这意味着问题在代码中的其他地方。你可以请你做一些快速调试,并确认他们正在被调用?只需将System.out.println(“round ended”);和System.out.println(“死”);在每个方法的顶部。 –