Bug

Jump to navigation Jump to search
Revision as of 8 January 2013 at 17:29.
The highlighted comment was created in this revision.

It seems ÉpéeistMicro has a bug somewhere in its gun code. It's throwing "ArrayIndexOutOfBounds" and "NullPointer" exceptions, especially against mirror bots.

The only change I made to the GF code was to change the constant MEA from .7 to 0.727272727272727272727273.

Any ideas?

Thanks

    Sheldor16:05, 8 January 2013

    Could you post stacktraces?

      Jdev16:31, 8 January 2013
       

      Here is the console from a battle against stelo.MirrorMicro 1.1.

      =========================
      Round 1 of 35
      =========================
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 has died
      =========================
      Round 2 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      	at sheldor.micro.EpeeistMicro$Wave.test(EpeeistMicro.java:219)
      	at net.sf.robocode.host.events.EventManager.callUserCode(EventManager.java:436)
      	at net.sf.robocode.host.events.EventManager.processEvents(EventManager.java:377)
      	at net.sf.robocode.host.proxies.BasicRobotProxy.executeImpl(BasicRobotProxy.java:417)
      	at net.sf.robocode.host.proxies.HostingRobotProxy.run(HostingRobotProxy.java:228)
      	at java.lang.Thread.run(Unknown Source)
      =========================
      Round 3 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      	at sheldor.micro.EpeeistMicro$Wave.test(EpeeistMicro.java:219)
      	at net.sf.robocode.host.events.EventManager.callUserCode(EventManager.java:436)
      	at net.sf.robocode.host.events.EventManager.processEvents(EventManager.java:377)
      	at net.sf.robocode.host.proxies.BasicRobotProxy.executeImpl(BasicRobotProxy.java:417)
      	at net.sf.robocode.host.proxies.HostingRobotProxy.run(HostingRobotProxy.java:228)
      	at java.lang.Thread.run(Unknown Source)
      =========================
      Round 4 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      	at sheldor.micro.EpeeistMicro$Wave.test(EpeeistMicro.java:219)
      	at net.sf.robocode.host.events.EventManager.callUserCode(EventManager.java:436)
      	at net.sf.robocode.host.events.EventManager.processEvents(EventManager.java:377)
      	at net.sf.robocode.host.proxies.BasicRobotProxy.executeImpl(BasicRobotProxy.java:417)
      	at net.sf.robocode.host.proxies.HostingRobotProxy.run(HostingRobotProxy.java:228)
      	at java.lang.Thread.run(Unknown Source)
      =========================
      Round 5 of 35
      =========================
      SYSTEM: Bonus for killing stelo.MirrorMicro 1.1: 10
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 wins the round.
      =========================
      Round 6 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 7 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 8 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 9 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 10 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 11 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 12 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 13 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 14 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 15 of 35
      =========================
      SYSTEM: Bonus for killing stelo.MirrorMicro 1.1: 9
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 wins the round.
      =========================
      Round 16 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 17 of 35
      =========================
      SYSTEM: Bonus for killing stelo.MirrorMicro 1.1: 8
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 wins the round.
      =========================
      Round 18 of 35
      =========================
      SYSTEM: Bonus for killing stelo.MirrorMicro 1.1: 12
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 wins the round.
      =========================
      Round 19 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 20 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 has died
      =========================
      Round 21 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 22 of 35
      =========================
      SYSTEM: Bonus for killing stelo.MirrorMicro 1.1: 8
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 wins the round.
      =========================
      Round 23 of 35
      =========================
      SYSTEM: Bonus for killing stelo.MirrorMicro 1.1: 8
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 wins the round.
      =========================
      Round 24 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 25 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 26 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 27 of 35
      =========================
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 has died
      =========================
      Round 28 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 29 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 30 of 35
      =========================
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 has died
      =========================
      Round 31 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 32 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 33 of 35
      =========================
      SYSTEM: Bonus for killing stelo.MirrorMicro 1.1: 12
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 wins the round.
      =========================
      Round 34 of 35
      =========================
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      SYSTEM: Exception occurred on robocode.ScannedRobotEvent
      java.lang.ArrayIndexOutOfBoundsException
      java.lang.NullPointerException
      =========================
      Round 35 of 35
      =========================
      SYSTEM: Bonus for killing stelo.MirrorMicro 1.1: 12
      SYSTEM: sheldor.micro.EpeeistMicro 1.7.0 wins the round.
        Sheldor17:56, 8 January 2013
         

        Looks, like here you have a problem: [(int)enemyDistance / 200] Distance may be more than 800 units (sqrt(800*800 + 600*600)=1000), but you give for this dimension only 4 elements It's another problem, but i cannot find out other problems by codereview and it's too late to debugging it, sorry

          Jdev18:29, 8 January 2013