MicroBot champ!

Jump to navigation Jump to search
Revision as of 7 May 2013 at 00:27.
The highlighted comment was created in this revision.

MicroBot champ!

Congrats dude! From someone who knows how tough it is to dethrone Skilgannon... =)

    Voidious17:11, 30 April 2013

    Thanks!

    I tried for a long time to improve the gun, but that didn't work so I ended up just copying Toorkild's new mode selection and improving anti-ram.

    Now it's only a matter of waiting for Toorkild 0.4.6. :(

      Sheldor17:21, 30 April 2013
       

      Wow, impressed that you managed to squeeze that in. Of course, Toorkild is now functionally equivalent at 711 bytes, the real issue is thinking of something to add =) And half of your score margin is from not being in LittleBlackBook's books... perhaps it is time for Waylander to make a comeback?

        Skilgannon10:05, 1 May 2013

        I wouldn't mind seeing Decado, Waylander, Toorkild, and Connavar back in the rumble. The rule is to not have multiple versions of the same bot in the rumble, not to not have multiple similar bots in the rumble.

          Sheldor21:00, 1 May 2013
           

          Mwa Ha Ha!

          I just did something absolutely brilliant which squeezed 14 bytes from the GFT system itself, and I now have 18 bytes free, plus ~9 bytes if I get desperate. Any ideas about what I should do with that space?

            Sheldor20:41, 1 May 2013

            Huh, it seems it wasn't so brilliant after all. Version 1.9.0 is ~0.5 APS lower than 1.8.0.

            The main change was to the way the wave system gathers bearing offsets. Version 1.8.0 used the traditional, coordinate-based method, whereas version 1.9.0 sums angular velocities. I made sure to keep it as precise as I could, I even adjusted the distance by which I divide the lateral velocity to calculate angular velocities with advancing velocities (actually negative advancing velocities, you might call them "retreating velocities") to account for the opponent moving toward or away from the source location of the wave.

            Is there some obscure element of Robocode physics that makes sums of angular velocities inaccurate? Or is there a bug in my code?

              Sheldor02:57, 2 May 2013
               

              Don't think anything about Robocode itself should lead to an inaccuracy. Could it be a normalization bug? When normalizing angles, an individual angle is equivalent no matter how it gets normalized, but if you're summing or averaging them it can screw things up. E.g., average of {2.9, 3.0, 3.1, -3.1, -3.0, -2.9} is 0, but you'd want the result to be something more like pi.

                Voidious04:23, 2 May 2013

                Normalization should be irrelevant because everything is already relative.

                I might be on to something though. I'm wondering if the inaccuracy is coming from the original absoluteBearing being used to calculate LV and AV. Should it be updated with angular velocities?

                  Sheldor05:05, 2 May 2013
                   

                  You'd need to keep a list of the positions you were in and backtrace the enemy movement until the wave could originate at your location - a sort of backwards wave, as it were, otherwise you are getting the angular velocities from your current location, not from where you were when you wanted to fire. Also, are the indexes for the VCS calculated using the values from when you were firing, or when you are having the wave hit?

                    Skilgannon09:59, 2 May 2013

                    All segmentation is calculated when the wave is fired.

                    Why do you think I'm getting the angular velocities relative to EM's current location? I store the absoluteBearing from the tick in which the wave was fired, and both e.getVelocity() and e.getHeadingRadians() are absolute and shouldn't be relative to anything.

                    Thanks

                      Sheldor13:37, 2 May 2013

                      Ah, OK, looking at the source I see that you've still kept the wave structure, I thought you had completely gotten rid of it and then each tick look back to see what wave would hit now over the last N ticks of bullet flight time and retro-actively construct the wave from the conditions as they were then. What you've done isn't quite that drastic =)

                      As for what is different, have you tried projecting the point back into the cartesian plane and printing it to see if it is the same as the actual enemy location? How about using both types of tracking at once and seeing if they are giving the same results at wave-hit time?

                        Skilgannon14:22, 2 May 2013
                         

                        Here is a sample of the console output from a match against Aristocles:

                        ^^^ TEXT TRUNCATED ^^^
                        New Method - Tick: 344 - 0.1798738671449884
                        New Method - Tick: 344 - 0.11492236435110015
                        Old Method - Tick: 344 - 0.0200222808749686
                        Old Method - Tick: 345 - 0.028757669631511718
                        New Method - Tick: 346 - -0.07262909965150746
                        New Method - Tick: 347 - -0.02108914153291682
                        New Method - Tick: 347 - -0.07855921751240094
                        New Method - Tick: 348 - 0.11079759883864017
                        New Method - Tick: 349 - 0.15410365995543632
                        Old Method - Tick: 349 - 0.04707213676089239
                        New Method - Tick: 349 - -0.03545519212801271
                        New Method - Tick: 350 - -0.04439025619027579
                        Old Method - Tick: 350 - 0.059104166333727726
                        Old Method - Tick: 351 - 0.0722794084663434
                        Old Method - Tick: 352 - 0.08652496719119096
                        New Method - Tick: 352 - 0.03057106866829968
                        Old Method - Tick: 353 - 0.10176158366761712
                        New Method - Tick: 354 - 0.09500860956537417
                        New Method - Tick: 354 - -0.089627134297345
                        New Method - Tick: 354 - 0.12370229920343412
                        New Method - Tick: 354 - -0.1033551530891642
                        New Method - Tick: 354 - 0.11486719105328577
                        New Method - Tick: 354 - -0.060415810991293305
                        Old Method - Tick: 355 - 0.127325640542705
                        Old Method - Tick: 356 - 0.1457587814691239
                        New Method - Tick: 356 - -0.010250535520332022
                        Old Method - Tick: 357 - 0.16499953286505686
                        New Method - Tick: 358 - 0.016229385132862713
                        Old Method - Tick: 358 - 0.1769165577266314
                        New Method - Tick: 359 - 0.006531879799494966
                        Old Method - Tick: 359 - 0.19518533788272618
                        New Method - Tick: 359 - 0.24022781156742196
                        New Method - Tick: 359 - 0.0590306738468773
                        Old Method - Tick: 360 - 0.21276457577061336
                        Old Method - Tick: 361 - 0.22402132774203376
                        New Method - Tick: 362 - -0.07261499060296339
                        Old Method - Tick: 362 - 0.23830349497916203
                        New Method - Tick: 363 - 0.1559890577968009
                        New Method - Tick: 363 - -0.23698463075891604
                        Old Method - Tick: 363 - 0.24877226021380805
                        New Method - Tick: 364 - -0.1536049369407098
                        Old Method - Tick: 364 - 0.25906235594994675
                        New Method - Tick: 364 - -0.2912958283677003
                        New Method - Tick: 364 - 0.15356974015169342
                        Old Method - Tick: 365 - 0.26939609391689245
                        New Method - Tick: 365 - 0.3047807404030586
                        New Method - Tick: 365 - -0.3034599665822747
                        Old Method - Tick: 366 - 0.2794241576704979
                        New Method - Tick: 366 - -0.26615581658208165
                        Old Method - Tick: 367 - 0.2868049364186809
                        Old Method - Tick: 368 - 0.29005867699773225
                        New Method - Tick: 368 - -0.15757594215937057
                        Old Method - Tick: 369 - 0.2927956811103609
                        New Method - Tick: 370 - 0.1233645567247041
                        Old Method - Tick: 370 - 0.29083266538793695
                        Old Method - Tick: 371 - 0.2857565463174718
                        Old Method - Tick: 372 - 0.27695779383631947
                        Old Method - Tick: 373 - 0.2650845907605712
                        New Method - Tick: 373 - 0.27629702474007245
                        New Method - Tick: 373 - 0.19788379591019697
                        New Method - Tick: 373 - -0.014517608066964397
                        New Method - Tick: 374 - 0.033346046645772856
                        Old Method - Tick: 374 - 0.25010614540651654
                        New Method - Tick: 374 - -0.01020010257163133
                        Old Method - Tick: 375 - 0.22039759438434992
                        Old Method - Tick: 376 - 0.1970258039922601
                        New Method - Tick: 377 - -0.0356022805942101
                        Old Method - Tick: 377 - 0.17178412424636202
                        Old Method - Tick: 378 - 0.14594712412686528
                        New Method - Tick: 379 - 0.12383398614292312
                        New Method - Tick: 379 - -0.13197212177028367
                        Old Method - Tick: 379 - 0.12031954184394
                        New Method - Tick: 379 - -0.11702579110798299
                        Old Method - Tick: 380 - 0.09490400801774856
                        Old Method - Tick: 381 - 0.06966043347249218
                        Old Method - Tick: 381 - 0.05689014420318683
                        New Method - Tick: 382 - 0.006500144256413121
                        Old Method - Tick: 382 - 0.03530042054297566
                        New Method - Tick: 382 - -0.03131550029883694
                        New Method - Tick: 383 - 0.03944001409022628
                        Old Method - Tick: 383 - 0.017089836320882457
                        New Method - Tick: 383 - -0.032935628765503065
                        Old Method - Tick: 384 - 0.0022112358025561107
                        New Method - Tick: 384 - 0.037821101157178835
                        Old Method - Tick: 385 - -0.006224232245795491
                        New Method - Tick: 385 - 0.033282009633441814
                        New Method - Tick: 386 - -0.008552442685336111
                        Old Method - Tick: 386 - -0.006145794717080655
                        New Method - Tick: 386 - -0.02285761018790913
                        New Method - Tick: 386 - 0.007696491162579268
                        Old Method - Tick: 387 - -0.003627740452873507
                        Old Method - Tick: 388 - 0.0034375409585805095
                        New Method - Tick: 388 - 0.0332063694418352
                        Old Method - Tick: 389 - 0.00866265694156998
                        New Method - Tick: 390 - -0.0036449063373945167
                        New Method - Tick: 391 - 0.012846961527443801
                        Old Method - Tick: 391 - 0.016255360285823972
                        New Method - Tick: 391 - -0.03254898287973662
                        Old Method - Tick: 392 - 0.020776121159288286
                        New Method - Tick: 392 - 0.04195445718576423
                        Old Method - Tick: 393 - 0.020828264386091755
                        Old Method - Tick: 394 - 0.016241240431943416
                        New Method - Tick: 395 - 0.015401666261466674
                        Old Method - Tick: 395 - 0.008471932774098967
                        New Method - Tick: 395 - -0.03057483993739734
                        New Method - Tick: 395 - 0.0010379687190521048
                        Old Method - Tick: 396 - -0.002511362740282408
                        Old Method - Tick: 397 - -0.01668500701074538
                        New Method - Tick: 398 - 0.0277088382426191
                        Old Method - Tick: 398 - -0.0340388357342174
                        New Method - Tick: 398 - -0.025140268298184026
                        New Method - Tick: 399 - -0.035859212932112514
                        Old Method - Tick: 399 - -0.05456359192725335
                        New Method - Tick: 399 - 0.06631270345598508
                        Old Method - Tick: 400 - -0.07662412348383918
                        New Method - Tick: 400 - -0.04938239250069762
                        Old Method - Tick: 401 - -0.10010601139235664
                        New Method - Tick: 402 - -0.10828049886212268
                        New Method - Tick: 403 - 0.152613833674192
                        New Method - Tick: 404 - -0.12951481173024176
                        New Method - Tick: 404 - 0.166857848915775
                        New Method - Tick: 406 - -0.186233933311901
                        Old Method - Tick: 408 - -0.24580411736442098
                        New Method - Tick: 408 - 0.10987014664393165
                        New Method - Tick: 409 - 0.008772599436872475
                        Old Method - Tick: 409 - -0.26283485331547674
                        New Method - Tick: 410 - 0.004246794890332152
                        Old Method - Tick: 410 - -0.2765666065347592
                        New Method - Tick: 411 - -0.2171878856923661
                        Old Method - Tick: 411 - -0.28799271047600605
                        Old Method - Tick: 412 - -0.29379052436069486
                        New Method - Tick: 412 - 0.055950797523121265
                        Old Method - Tick: 413 - -0.30041463241101596
                        Old Method - Tick: 414 - -0.2965116590645007
                        Old Method - Tick: 415 - -0.298217133326548
                        Old Method - Tick: 416 - -0.29852866288683777
                        New Method - Tick: 416 - -0.28603215994367964
                        New Method - Tick: 416 - -0.0894936629368437
                        Old Method - Tick: 418 - -0.284645464592312
                        Old Method - Tick: 419 - -0.28410474060949875
                        New Method - Tick: 420 - -0.2902103036206202
                        Old Method - Tick: 420 - -0.2838041174391217
                        Old Method - Tick: 421 - -0.2835538289948798
                        New Method - Tick: 421 - 0.28132610420980625
                        New Method - Tick: 422 - 0.034155471722019645
                        Old Method - Tick: 422 - -0.2833556556038541
                        New Method - Tick: 423 - 0.030562709226017018
                        Old Method - Tick: 423 - -0.2865723168841965
                        Old Method - Tick: 424 - -0.2902481860657551
                        New Method - Tick: 424 - -0.019343128666514817
                        Old Method - Tick: 425 - -0.29816986621790753
                        New Method - Tick: 426 - -0.35796709696322593
                        New Method - Tick: 426 - -0.31377757591919647
                        Old Method - Tick: 426 - -0.3106534598024021
                        Old Method - Tick: 427 - -0.3250335155284345
                        New Method - Tick: 428 - 0.39003393820396487
                        Old Method - Tick: 428 - -0.341140485267303
                        New Method - Tick: 428 - -0.15772997609692452
                        New Method - Tick: 429 - -0.30445838198233965
                        New Method - Tick: 429 - 0.3989294995816096
                        New Method - Tick: 429 - 0.36365421374533685
                        Old Method - Tick: 429 - -0.3589935064147616
                        Old Method - Tick: 430 - -0.37880097674960034
                        New Method - Tick: 431 - 0.14511901613771824
                        Old Method - Tick: 431 - -0.3958094308205258
                        New Method - Tick: 432 - 0.14340055137114813
                        New Method - Tick: 432 - 0.41816870417890933
                        Old Method - Tick: 432 - -0.410140170516045
                        Old Method - Tick: 433 - -0.4233404931399898
                        New Method - Tick: 434 - 0.2640196559493896
                        New Method - Tick: 434 - 0.3498759076518825
                        Old Method - Tick: 434 - -0.43526126407826116
                        New Method - Tick: 435 - 0.26462557868592
                        New Method - Tick: 435 - 0.353247545591311
                        Old Method - Tick: 435 - -0.4460449818819603
                        New Method - Tick: 436 - 0.2650067069608541
                        Old Method - Tick: 436 - -0.4555486719808952
                        New Method - Tick: 436 - 0.37129771196292966
                        Old Method - Tick: 437 - -0.46388709220122415
                        New Method - Tick: 438 - -0.2840920775617402
                        Old Method - Tick: 438 - -0.47091646324872016
                        New Method - Tick: 438 - -0.4337666049699406
                        New Method - Tick: 438 - -0.26169821575022806
                        New Method - Tick: 439 - -0.2924776081295178
                        New Method - Tick: 439 - -0.48135199972271525
                        Old Method - Tick: 439 - -0.4767534875129176
                        Old Method - Tick: 440 - -0.4749960886587985
                        Old Method - Tick: 441 - -0.4865439575057522
                        Old Method - Tick: 442 - -0.4968620645003998
                        Old Method - Tick: 443 - -0.5041279052339691
                        Old Method - Tick: 444 - -0.5085518861319942
                        Old Method - Tick: 445 - -0.5104434857816269
                        Old Method - Tick: 446 - -0.5119595281544109
                        Old Method - Tick: 447 - -0.5136980081998512
                        Old Method - Tick: 447 - -0.5005142070932074
                        New Method - Tick: 447 - 0.508199078507455
                        New Method - Tick: 448 - -0.33840896519113434
                        New Method - Tick: 448 - -0.5238758526911147
                        Old Method - Tick: 448 - -0.49890504297689553
                        Old Method - Tick: 449 - -0.4936730615099707
                        New Method - Tick: 449 - -0.23007526285278745
                        New Method - Tick: 449 - 0.1565441795684511
                        Old Method - Tick: 450 - -0.4847792916824867
                        Old Method - Tick: 451 - -0.47234588554370927
                        Old Method - Tick: 451 - -0.4599934005719106
                        New Method - Tick: 452 - 0.2532485878377148
                        Old Method - Tick: 452 - -0.4458898704875587
                        New Method - Tick: 453 - -0.34222735772456864
                        New Method - Tick: 453 - -0.45695424739283175
                        Old Method - Tick: 453 - -0.42982231366928936
                        New Method - Tick: 453 - 0.4363054744297578
                        Old Method - Tick: 453 - -0.41766524889197143
                        New Method - Tick: 454 - 0.49336230877618215
                        Old Method - Tick: 454 - -0.39948690145298205
                        Old Method - Tick: 454 - -0.38710742859016456
                        Old Method - Tick: 455 - -0.36664083432927175
                        New Method - Tick: 456 - 0.4744804226454285
                        Old Method - Tick: 456 - -0.34373380632982276
                        Old Method - Tick: 456 - -0.33384456412993746
                        New Method - Tick: 457 - 0.19298422577021296
                        New Method - Tick: 457 - -0.39582549566526726
                        Old Method - Tick: 457 - -0.3098089184121804
                        Old Method - Tick: 457 - -0.2965322571308304
                        New Method - Tick: 457 - -0.1321163392831117
                        New Method - Tick: 458 - -0.3416356881815959
                        Old Method - Tick: 458 - -0.27417790166755296
                        New Method - Tick: 458 - 0.12729738166119414
                        Old Method - Tick: 459 - -0.24937133377339826
                        Old Method - Tick: 459 - -0.23545279208572722
                        New Method - Tick: 460 - 0.2668321538874437
                        New Method - Tick: 460 - 0.30927583727586905
                        Old Method - Tick: 460 - -0.20749120164337143
                        Old Method - Tick: 460 - -0.19302372936007295
                        Old Method - Tick: 461 - -0.1617900209043892
                        New Method - Tick: 462 - -0.21433042083845397
                        Old Method - Tick: 462 - -0.12732036902789012
                        Old Method - Tick: 462 - -0.11173134903674509
                        New Method - Tick: 463 - -0.26285207980167
                        Old Method - Tick: 463 - -0.07606932579266168
                        New Method - Tick: 464 - 0.27337651356571885
                        New Method - Tick: 464 - -0.25624839014636824
                        Old Method - Tick: 464 - -0.039838922288355505
                        Old Method - Tick: 464 - -0.02302631457777693
                        New Method - Tick: 465 - 0.010600984521355602
                        New Method - Tick: 465 - -0.05948136409272999
                        New Method - Tick: 465 - 0.056528452470596305
                        Old Method - Tick: 465 - 0.014289010951157088
                        New Method - Tick: 466 - 0.06279123551779103
                        Old Method - Tick: 466 - 0.05227516239931784
                        New Method - Tick: 467 - 0.1822351567060888
                        Old Method - Tick: 467 - 0.09086698924052783
                        Old Method - Tick: 467 - 0.10900848794388907
                        New Method - Tick: 467 - 0.12099444547636735
                        New Method - Tick: 467 - -0.15548631077267644
                        New Method - Tick: 467 - 0.10703257407067901
                        New Method - Tick: 468 - -0.023857556135259056
                        New Method - Tick: 468 - 0.13954510334049416
                        New Method - Tick: 468 - -0.12567626744650046
                        Old Method - Tick: 468 - 0.14288140603193078
                        New Method - Tick: 469 - -0.038449038995171464
                        New Method - Tick: 469 - 0.10247231898550029
                        New Method - Tick: 469 - -0.0910379716161322
                        Old Method - Tick: 469 - 0.1715647653631036
                        New Method - Tick: 470 - -0.06206039191070271
                        New Method - Tick: 470 - 0.12240744769633431
                        Old Method - Tick: 470 - 0.19549936060263384
                        New Method - Tick: 471 - 0.012293148627892818
                        Old Method - Tick: 471 - 0.21463784476017977
                        Old Method - Tick: 471 - 0.23380859354760908
                        New Method - Tick: 472 - -0.0996561715586668
                        New Method - Tick: 472 - 0.18917172386434236
                        Old Method - Tick: 472 - 0.2507094611316685
                        New Method - Tick: 472 - -0.26223599475496845
                        New Method - Tick: 472 - 0.3071237792366731
                        New Method - Tick: 472 - 0.02694244681283218
                        New Method - Tick: 473 - 0.02500692906095217
                        Old Method - Tick: 473 - 0.2615042238687266
                        Old Method - Tick: 474 - 0.26500118205333756
                        New Method - Tick: 474 - -0.25082440240631754
                        Old Method - Tick: 475 - 0.26912680494804064
                        New Method - Tick: 476 - 0.06604072258541925
                        New Method - Tick: 476 - -0.11821904631546168
                        Old Method - Tick: 476 - 0.27162973950285263
                        Old Method - Tick: 476 - 0.2697011136733316
                        Old Method - Tick: 477 - 0.26768047012552554
                        New Method - Tick: 477 - 0.24135660160163708
                        Old Method - Tick: 478 - 0.26476488542787635
                        New Method - Tick: 479 - -0.2646788485209207
                        Old Method - Tick: 479 - 0.2731896668035496
                        New Method - Tick: 480 - 0.21510667571435313
                        Old Method - Tick: 480 - 0.2647679623016579
                        Old Method - Tick: 481 - 0.24933744217932485
                        New Method - Tick: 481 - -0.16345484736249813
                        New Method - Tick: 481 - 0.04974512540557471
                        Old Method - Tick: 482 - 0.22867575649417304
                        New Method - Tick: 483 - -0.037778065631310316
                        New Method - Tick: 484 - 0.17492112852141206
                        Old Method - Tick: 484 - 0.17198620170937495
                        New Method - Tick: 485 - -0.17024044768211005
                        Old Method - Tick: 485 - 0.14138337260315925
                        New Method - Tick: 486 - -0.018256727333968152
                        Old Method - Tick: 486 - 0.10554382823739417
                        New Method - Tick: 486 - 0.10655362810616158
                        Old Method - Tick: 487 - 0.06728616672348231
                        Old Method - Tick: 488 - 0.026601092517447356
                        New Method - Tick: 489 - 0.02639223861372627
                        Old Method - Tick: 489 - -0.01581097540614884
                        Old Method - Tick: 490 - -0.057976905851710114
                        Old Method - Tick: 491 - -0.0998113132731886
                        New Method - Tick: 492 - 0.08309587986181774
                        Old Method - Tick: 492 - -0.13573820704073647
                        New Method - Tick: 492 - -0.03572591834447104
                        Old Method - Tick: 493 - -0.1661562043785505
                        New Method - Tick: 494 - -0.17914233302837979
                        New Method - Tick: 494 - 0.15917010215009367
                        Old Method - Tick: 497 - -0.2447986943633067
                        New Method - Tick: 498 - 0.044648482146917946
                        New Method - Tick: 498 - -0.16866162113431948
                        Old Method - Tick: 498 - -0.25688335642707116
                        New Method - Tick: 499 - 0.0469596049539631
                        Old Method - Tick: 499 - -0.2614486450091178
                        Old Method - Tick: 500 - -0.2656660501154269
                        New Method - Tick: 501 - -0.2707994680623969
                        New Method - Tick: 502 - 0.2587827592904405
                        Old Method - Tick: 502 - -0.26724613883515946
                        New Method - Tick: 502 - 0.05564100795220878
                        Old Method - Tick: 503 - -0.266371858591155
                        Old Method - Tick: 504 - -0.2657735040032936
                        New Method - Tick: 504 - -0.2292179428986012
                        New Method - Tick: 505 - 0.25340024453665677
                        Old Method - Tick: 505 - -0.2651428735498129
                        New Method - Tick: 506 - -0.16123272382242135
                        Old Method - Tick: 506 - -0.2571319017554625
                        Old Method - Tick: 506 - -0.25712149570293885
                        New Method - Tick: 507 - 0.03929723974283527
                        Old Method - Tick: 507 - -0.23989525154072844
                        Old Method - Tick: 508 - -0.21736157397184286
                        New Method - Tick: 509 - 0.2058942530583607
                        Old Method - Tick: 509 - -0.1892883159168317
                        Old Method - Tick: 509 - -0.17926579185813463
                        New Method - Tick: 510 - -0.1798942319289387
                        Old Method - Tick: 510 - -0.1568735682277742
                        Old Method - Tick: 510 - -0.14397010462550863
                        New Method - Tick: 511 - 0.07810969068283341
                        Old Method - Tick: 511 - -0.10542923759543577
                        New Method - Tick: 511 - -0.0921180465934051
                        New Method - Tick: 511 - 0.038049463638894554
                        Old Method - Tick: 512 - -0.0636307769533282
                        New Method - Tick: 512 - 0.04536290341816658
                        Old Method - Tick: 512 - -0.042570389306223255
                        New Method - Tick: 513 - -0.09856374638226037
                        Old Method - Tick: 513 - 0.0023237314566220135
                        New Method - Tick: 514 - 0.05869297915957322
                        Old Method - Tick: 514 - 0.04783771433636019
                        New Method - Tick: 514 - 0.007514174727654829
                        New Method - Tick: 515 - -0.07132933707850095
                        Old Method - Tick: 515 - 0.09391585520909196
                        New Method - Tick: 515 - -0.13350032361945777
                        New Method - Tick: 515 - 0.10966909164525457
                        New Method - Tick: 516 - 0.03431353092685463
                        New Method - Tick: 516 - -0.06535883414209281
                        Old Method - Tick: 516 - 0.14046156856131553
                        New Method - Tick: 516 - 0.14517394071016737
                        Old Method - Tick: 516 - 0.16311846814753395
                        New Method - Tick: 517 - 0.02678398641086776
                        Old Method - Tick: 517 - 0.18125901089735397
                        Old Method - Tick: 517 - 0.20400647983610298
                        Old Method - Tick: 518 - 0.23839737797471905
                        New Method - Tick: 519 - -0.24993242047494296
                        Old Method - Tick: 519 - 0.2619734772556086
                        New Method - Tick: 519 - 0.31497178060455416
                        Old Method - Tick: 520 - 0.28131803697981717
                        New Method - Tick: 520 - -0.060455259921373884
                        Old Method - Tick: 521 - 0.29290033395189496
                        New Method - Tick: 522 - -0.07502984289909014
                        Old Method - Tick: 522 - 0.2960367157168413
                        New Method - Tick: 522 - -0.29619178040319977
                        Old Method - Tick: 523 - 0.2899908526755475
                        New Method - Tick: 523 - 0.22169448823247304
                        Old Method - Tick: 524 - 0.2760204846278116
                        Old Method - Tick: 525 - 0.25577027201679137
                        New Method - Tick: 526 - 0.15245120142562935
                        New Method - Tick: 526 - -0.22812338529550522
                        Old Method - Tick: 526 - 0.22930969968853532
                        Old Method - Tick: 527 - 0.19668849565923807
                        Old Method - Tick: 528 - 0.16725117335496087
                        Old Method - Tick: 529 - 0.14110692751317888
                        New Method - Tick: 530 - 0.1412167984332873
                        Old Method - Tick: 530 - 0.10884652853130561
                        Old Method - Tick: 531 - 0.07964887886982464
                        New Method - Tick: 531 - -0.0810958634673436
                        New Method - Tick: 531 - 5.897452652249852E-4
                        New Method - Tick: 532 - 0.01902162842853444
                        New Method - Tick: 532 - -0.08149230223197829
                        Old Method - Tick: 532 - 0.05497008902185918
                        Old Method - Tick: 533 - 0.03326246412528633
                        New Method - Tick: 533 - 0.042695473939825736
                        Old Method - Tick: 534 - 0.014584881686217521
                        New Method - Tick: 535 - 0.020269013411352108
                        Old Method - Tick: 535 - -9.690074222916678E-4
                        New Method - Tick: 536 - -0.009596987690487153
                        Old Method - Tick: 536 - -0.022698811856896484
                        New Method - Tick: 536 - 0.01943110788083105
                        Old Method - Tick: 536 - -0.04758080623707883
                        Old Method - Tick: 537 - -0.06598990578246333
                        New Method - Tick: 538 - 0.018835370643752222
                        Old Method - Tick: 538 - -0.07467365319832098
                        New Method - Tick: 539 - -0.035456421395411754
                        New Method - Tick: 539 - -0.061056158782288504
                        Old Method - Tick: 539 - -0.08368798941205657
                        New Method - Tick: 539 - 0.04190673169846087
                        Old Method - Tick: 540 - -0.08311431685420168
                        Old Method - Tick: 541 - -0.07291687943394187
                        New Method - Tick: 542 - 0.05769422064795285
                        Old Method - Tick: 542 - -0.05643122097141684
                        New Method - Tick: 543 - -0.018503081588482
                        New Method - Tick: 543 - -0.04231620583648981
                        Old Method - Tick: 543 - -0.03374614546503585
                        New Method - Tick: 543 - 0.01682262513855787
                        New Method - Tick: 544 - 0.015501153805450427
                        Old Method - Tick: 544 - -0.0049686422443038225
                        New Method - Tick: 545 - -0.013208912037196915
                        Old Method - Tick: 545 - 0.029736782213975577
                        New Method - Tick: 545 - -0.012661903080969608
                        Old Method - Tick: 546 - 0.06999273507585069
                        New Method - Tick: 546 - 0.07214868477423399
                        New Method - Tick: 546 - -0.020117819029679622
                        Old Method - Tick: 547 - 0.11257498982935532
                        Old Method - Tick: 548 - 0.15675215836404144
                        New Method - Tick: 548 - -0.1670853333757256
                        New Method - Tick: 548 - -0.07283786682336481
                        Old Method - Tick: 549 - 0.19536375960979324
                        New Method - Tick: 549 - 0.23017212843685103
                        Old Method - Tick: 550 - 0.21875697269535332
                        Old Method - Tick: 551 - 0.2455376323052989
                        New Method - Tick: 552 - 0.0330083050561058
                        Old Method - Tick: 552 - 0.2694079618210987
                        New Method - Tick: 552 - -0.15564066699115975
                        Old Method - Tick: 553 - 0.2821507354130621
                        New Method - Tick: 553 - -0.2924143744002721
                        Old Method - Tick: 554 - 0.2824911546939428
                        Old Method - Tick: 555 - 0.27669062651924325
                        New Method - Tick: 555 - 0.26008665921713736
                        Old Method - Tick: 556 - 0.2637974319085832
                        New Method - Tick: 557 - 0.058142759064519475
                        Old Method - Tick: 557 - 0.2540467826384143
                        New Method - Tick: 557 - -0.1876115085104718
                        New Method - Tick: 558 - -0.24792638079509347
                        Old Method - Tick: 558 - 0.25454507966729545
                        Old Method - Tick: 559 - 0.2548703664537104
                        Old Method - Tick: 560 - 0.25525167048969966
                        New Method - Tick: 561 - 0.11600118570824959
                        Old Method - Tick: 561 - 0.26579890216887336
                        Old Method - Tick: 562 - 0.2761838593688304
                        Old Method - Tick: 563 - 0.2866128447908334
                        Old Method - Tick: 564 - 0.2969202811951328
                        New Method - Tick: 564 - -0.2740181388324343
                        New Method - Tick: 565 - 0.20634503267166837
                        Old Method - Tick: 565 - 0.30706624364667423
                        New Method - Tick: 566 - -0.25236612652453705
                        Old Method - Tick: 566 - 0.313222884543469
                        New Method - Tick: 567 - 0.3078270673958768
                        Old Method - Tick: 567 - 0.3095104990958406
                        New Method - Tick: 567 - -0.006545734643486848
                        Old Method - Tick: 568 - 0.2964133043472643
                        Old Method - Tick: 569 - 0.2774838827853665
                        Old Method - Tick: 570 - 0.2527009764430055
                        New Method - Tick: 571 - -0.25238054453759357
                        Old Method - Tick: 571 - 0.225218732731026
                        New Method - Tick: 572 - -0.10756332853954043
                        Old Method - Tick: 572 - 0.19497105677460125
                        New Method - Tick: 572 - 0.056675186941033164
                        New Method - Tick: 573 - 0.18615223915590853
                        Old Method - Tick: 573 - 0.16776538379857775
                        Old Method - Tick: 574 - 0.14356874905519912
                        New Method - Tick: 575 - -0.01570802316837205
                        Old Method - Tick: 575 - 0.12235173377070363
                        New Method - Tick: 575 - -0.08773334711104014
                        New Method - Tick: 576 - -0.025353454575477233
                        Old Method - Tick: 576 - 0.11345160768459284
                        Old Method - Tick: 576 - 0.11729707647375731
                        New Method - Tick: 577 - 0.09025584443520074
                        Old Method - Tick: 577 - 0.1213375185641854
                        New Method - Tick: 577 - 0.12665608972528775
                        New Method - Tick: 578 - -0.08232607243228518
                        Old Method - Tick: 578 - 0.12379969169013139
                        New Method - Tick: 578 - 0.05725009615201489
                        Old Method - Tick: 579 - 0.12578382144606914
                        Old Method - Tick: 579 - 0.11996712134001153
                        New Method - Tick: 579 - -0.1279624462458224
                        Old Method - Tick: 580 - 0.1093618815390105
                        New Method - Tick: 581 - 0.013063278883171225
                        Old Method - Tick: 581 - 0.0916042678944855
                        Old Method - Tick: 582 - 0.06690797876374832
                        SYSTEM: sheldor.micro.EpeeistMicro 1.9.0* has died
                        New Method - Tick: 582 - 0.06085342630254822
                        New Method - Tick: 582 - -0.06258786528602456
                        Old Method - Tick: 582 - 0.04657607501171923
                        New Method - Tick: 582 - 2.8660691268322675E-4
                        

                        Obviously, something isn't right. Could this be some kind of event timing error? Like how energy drops are always detected two ticks late?

                          Sheldor16:01, 2 May 2013

                          I'm not sure, I'd have to see source code to properly understand what's happening here. But it seems that they aren't being registered as 'hit' at the same time. Could it be that?

                            Skilgannon16:39, 2 May 2013
                             

                            That's what I assume.

                            Here's the current developmental code with all the debug code (I realize that it's quite a bit larger than 730 bytes.):

                            /*
                            EpeeistMicro v1.9.1 by Sheldor.  05/02/2013
                            A MicroBot with Stop and Go/Random movement and a guess factor gun.
                            Codesize: 730 Bytes without any colors.
                            
                            Epee (pronounced ey-PEY) is one of the three forms of modern sport fencing,
                            along with Foil and Sabre.  http://en.wikipedia.org/wiki/Epee
                            
                            Credits: 
                            Thanks go to the authors of the following bots:
                            	Targeting: Falcon, pez.micro.Aristocles, voidious.mini.Komarious, kc.micro.Thorn, jam.micro.RaikoMicro, jk.mini.CunobelinDC, mld.LittleBlackBook, jk.micro.Connavar.
                            	Movement : jk.micro.Toorkild, kc.micro.Thorn, wiki.nano.RaikoNano.
                            Special thanks to Jdev and Voidious for helping me with a math error.
                            And a general thanks to all open source bot authors and contributors to the RoboWiki.
                            
                            EpeeistMicro is open source and released under the terms of the RoboWiki Public Code License (RWPCL) - Version 1.1.
                            See license here: http://robowiki.net/wiki/RWPCL
                            */
                            
                            package sheldor.micro;
                            
                            import robocode.*;
                            import robocode.util.Utils;
                            import java.awt.geom.*;
                            
                            public class EpeeistMicro extends AdvancedRobot
                            {
                            	//Constants.
                            	static final int    GUESS_FACTORS = 25;
                            	static final int    MIDDLE_FACTOR = (GUESS_FACTORS - 1) / 2;
                            	static final double MAXIMUM_ESCAPE_ANGLE = 0.72727272727272727272727272727273; //8 / 11
                            	static final double FACTOR_ANGLE = MAXIMUM_ESCAPE_ANGLE / MIDDLE_FACTOR;
                            	
                            	//Global variables.
                            	static double averageLateralVelocity;
                            	static double direction = 1;
                            	static double enemyBulletSpeed;
                            	static double enemyEnergy;
                            	static double enemyHeading;
                            	static double enemyVelocity;
                            	static double enemyX;
                            	static double enemyY;
                            	static double hits;
                            	static int    absoluteEnemyLateralVelocity;
                            	static int    movementMode;
                            	static int    timeSinceVelocityChange;
                            	
                            	static int ticks;
                            	
                            	//Array to store the number of times the enemy has visited each guess factor.
                            	//Segmented on acceleration, time since velocity change, absolute enemy lateral velocity, near wall, and distance.
                            	static int[][][][][][] guessFactors = new int[3][4][5][2][5][GUESS_FACTORS];
                            	
                            	//En garde!
                            	public void run()
                            	{
                            		//Set the radar and gun to turn independently.
                            		setAdjustRadarForGunTurn(true);
                            		setAdjustGunForRobotTurn(true);
                            	}
                            	
                            	public void onStatus(StatusEvent e)
                            	{
                            		//Turn the radar every tick.
                            		//Putting the code here instead of in the run() method saves one byte.
                            		//I believe Wompi discovered this.
                                	setTurnRadarRightRadians(1);
                            	}
                            	
                            	public void onScannedRobot(ScannedRobotEvent e)
                            	{
                            		//Local variables.	
                            		//Declare most used integer before most used double to save several bytes.
                            		int    antiRam;
                            		double enemyDistance;
                            		double absoluteBearing;
                            		double enemyDirection;
                            		double lateralVelocity;
                            		double offset;
                            		double theta;
                            		int    acceleration;
                            		
                            		ticks = (int)getTime();
                            		
                            		//Fire a wave.
                            		Wave wave;
                            		addCustomEvent(wave = new Wave());
                            		
                            		enemyX = (wave.sourceX = getX()) + Math.sin(wave.absoluteBearing = absoluteBearing = 
                            			(e.getBearingRadians() + getHeadingRadians())) * (enemyDistance = e.getDistance());
                            		enemyY = (wave.sourceY = getY()) + Math.cos(absoluteBearing) * enemyDistance;
                            		
                            		/*********************************************
                            		 *---------------MOVEMENT CODE---------------*
                            		 *********************************************/
                            				
                            		//Retreat very heavily when the enemy is ramming.
                            		offset = 2 + (antiRam = (int)(100 / (wave.enemyDistance = enemyDistance = e.getDistance())));
                            		
                            		//Wall smoothing based on Toorkild's.
                            		//Subtract current coordinates from lower wall bounds instead of adding 
                            		//current coordinates to every fieldRectangle.contains() projection to save six bytes.  Thanks go to Skilgannon.
                            		Rectangle2D.Double fieldRectangle;
                            		while(!(fieldRectangle = new Rectangle2D.Double(18 - getX(), 18 - getY(), 764, 564)).
                            			contains(160 * Math.sin(theta = (wave.absoluteBearing = absoluteBearing = 
                            			(e.getBearingRadians() + getHeadingRadians())) + direction * (offset -= .02)), 160 * Math.cos(theta)));
                            		setTurnRightRadians(Math.tan(theta -= getHeadingRadians()));
                            			
                            		//Stop and Go movement based on Toorkild's.
                            		//Move when the enemy fires, or when the robot is moving randomly, or when the enemy is ramming.
                            		double energyDelta;
                            		if ((energyDelta = (enemyEnergy - (enemyEnergy = e.getEnergy()))) > movementMode - antiRam)
                            		{			
                            			//Calculate the length of Stop and Go movement based on enemy bullet power.
                            			setAhead(((3 + (int)(energyDelta / 0.5000001)) << 3) * Math.signum(Math.cos(theta)));
                            		}
                            		
                            		//Random movement from Toorkild.
                            		//Don't move randomly if the enemy is ramming, or if the bot is in Stop and Go mode.
                            		//Reverse direction if the bot gets too close to a wall.
                            		if (Math.random() + antiRam < (-0.6 * Math.sqrt(enemyBulletSpeed / enemyDistance) + 0.04) * movementMode || offset < Math.PI/3.5)
                            		{
                            			direction = -direction;
                            		}
                            		
                            		/********************************************
                            		 *--------------TARGETING CODE--------------*
                            		 ********************************************/
                            		
                            		//Determine the enemy's lateral velocity and movement direction.
                            		//Use a simple rolling average to store the previous lateral direction
                            		//if enemy lateral velocity == 0.  Inspired by LittleBlackBook.
                            		wave.enemyDirection = enemyDirection = (averageLateralVelocity = ((averageLateralVelocity * .01) +
                            			(lateralVelocity = ((enemyVelocity = e.getVelocity()) * Math.sin((enemyHeading = e.getHeadingRadians()) - absoluteBearing))))) < 0 ? -FACTOR_ANGLE : FACTOR_ANGLE;
                            		
                            		//Determine if the enemy is accelerating or decelerating.
                            		if ((acceleration = (int)Math.signum(absoluteEnemyLateralVelocity - (absoluteEnemyLateralVelocity = (int)Math.abs(lateralVelocity)))) != 0)
                            		{
                            			timeSinceVelocityChange = 0;
                            		}
                            					
                            		//Determine the current situation.
                            		//Declaring a local array saves two bytes.
                            		double angle;
                            		int[] guessFactorsLocal = wave.guessFactors = guessFactors
                            			[1 + acceleration] //Acceleration.
                            			[Math.min(3, (int)(Math.pow(280 * timeSinceVelocityChange++ / enemyDistance, .7)))] //Ticks since velocity change.
                            			[absoluteEnemyLateralVelocity / 2] //Absolute enemy lateral velocity.
                            			[(int)Math.signum(fieldRectangle.outcode(Math.sin(angle = (absoluteBearing +
                            				enemyDirection * MIDDLE_FACTOR)) * enemyDistance, Math.cos(angle) * enemyDistance))] //Near wall.  Many thanks go to Skilgannon for the outcode trick.
                            			[(int)enemyDistance / 200]; //Distance.
                            
                            		//Find the most visited guess factor for the current situation.
                            		//Looping like this is ugly, but it saves two bytes over the proper way.
                            		int mostVisited = MIDDLE_FACTOR;
                            		int i = 0;
                            		try
                            		{
                            			while (true)
                            			{
                            				if (guessFactorsLocal[i] > guessFactorsLocal[mostVisited])
                            				{
                            					mostVisited = i;
                            				}
                            				i++;
                            			}			
                            		}
                            		catch(Exception ex)
                            		{
                            		}
                            		
                            		//Turn the gun to the most visited guess factor.
                            		//The slight offset helps to defeat simple bullet shielding.
                            		setTurnGunRightRadians(0.0005 + Utils.normalRelativeAngle(absoluteBearing - getGunHeadingRadians()
                            			+ (enemyDirection * (mostVisited - MIDDLE_FACTOR))));
                            		
                            		//Fire medium power bullets most of the time, but use full power at very close range.
                            		//If the enemy is weak, fire the minimum power needed to destroy them.
                            		setFire(Math.min(2 + antiRam, enemyEnergy / 4));
                            		
                            		//Narrow lock radar.
                            		setTurnRadarRightRadians(2 * Utils.normalRelativeAngle(absoluteBearing - getRadarHeadingRadians()));
                            	}
                            	
                            	public void onBulletHit(BulletHitEvent e)
                            	{
                            		//Adjust enemy energy variable when the bot hits the enemy.
                            		//This makes a big difference against linear targeting.
                            		enemyEnergy -= 10;
                            	}
                            	
                            	public void onHitByBullet(HitByBulletEvent e)
                            	{
                            		//Adjust enemy energy variable when the bot gets hit.
                            		//Store the velocity of the enemy bullet for the random movement.
                            		enemyEnergy += 20 - (enemyBulletSpeed = e.getVelocity());	
                            		
                            		//If the bot takes a lot of damage on average in Stop and Go mode, switch to Random Movement.
                            		//Thanks go to Skilgannon.
                            		if ((hits += (4.25 / enemyBulletSpeed)) > getRoundNum() + 2)
                            		{
                            			movementMode = -1;
                            		}
                                }	
                            	
                            	static class Wave extends Condition
                            	{
                            		//Global variables.
                            		double absoluteBearing;
                            		double bearingOffset;
                            		double enemyDirection;
                            		double enemyDistance;
                            		double sourceX;
                            		double sourceY;	
                            		double waveDistanceTraveled;
                            		double distanceTraveled;
                            		int[]  guessFactors;
                            		
                            		public boolean test()
                            		{
                            			//Update the bearing offset with angular velocities.
                            			bearingOffset += (enemyVelocity * Math.sin(enemyHeading -= absoluteBearing)) / (enemyDistance += (enemyVelocity * Math.cos(enemyHeading/* - absoluteBearing*/)));
                            			
                            			//Check if the wave has passed the enemy's current location.
                            			if (Math.abs((waveDistanceTraveled += 14) - enemyDistance) <= 7)
                            			{
                            				//Calculate the guess factor that would have hit the enemy.
                            				//Increment the bin that represents that guess factor.
                            				guessFactors[(int)Math.round((bearingOffset / enemyDirection) + MIDDLE_FACTOR)]++;
                            				
                            				System.out.println("New Method - Tick: " + ticks + " - "  + bearingOffset);
                            			}
                            			
                            			if (Math.abs((distanceTraveled += 14) - Point2D.distance(sourceX, sourceY, enemyX, enemyY)) <= 7)
                            			{
                            				//Calculate the guess factor that would have hit the enemy.
                            				//Increment the bin that represents that guess factor.
                            				System.out.println("Old Method - Tick: " + ticks + " - "  + Utils.normalRelativeAngle(Math.atan2(enemyX - sourceX,
                            					enemyY - sourceY) - absoluteBearing));
                            			}
                            			return false;
                            		}
                            	}
                            }

                            Thanks

                              Sheldor17:22, 2 May 2013
                               

                              Doing enemyHeading -= absoluteBearing in the test() method breaks things because many waves are evaluated each tick, but even after fixing that I'm seeing very different values for Point2D.distance(sourceX, sourceY, enemyX, enemyY) and enemyDistance, which is where I suspect the errors are creeping in. Of course, I can't see anything wrong with what you are doing :-/ Maybe a step-by-step printing/debugging with only one wave in the air would let you see how enemyDistance is deviating from the old value on a per-tick basis?

                                Skilgannon17:51, 2 May 2013
                                 

                                For some reason, enemyDistance is always 20-40 pixels less than the Point2D.distance() calculation.

                                  Sheldor04:32, 3 May 2013

                                  OK, it seems that was just some bad debug code.

                                  Here is the output of some better code from another match against Aristocles:

                                  enemyDistance:      421.8353598250484 | 0.3262547699680305
                                  Point2D.distance(): 448.53557664288616 | 0.3287244704708572
                                  enemyDistance:      426.5898450566982 | 0.3110026475866431
                                  Point2D.distance(): 451.0228395307428 | 0.31181919800128544
                                  enemyDistance:      431.3303591738597 | 0.29589636808079267
                                  Point2D.distance(): 453.62120158823615 | 0.2950913052555979
                                  enemyDistance:      436.0839893680426 | 0.28097853037196463
                                  Point2D.distance(): 456.36030020768567 | 0.27857098989436047
                                  enemyDistance:      440.669495490207 | 0.2659461287692405
                                  Point2D.distance(): 459.0287365459099 | 0.26209282925475996
                                  enemyDistance:      445.23723962496933 | 0.2510420373849656
                                  Point2D.distance(): 461.8001101783056 | 0.2457928442753019
                                  enemyDistance:      449.7727243115645 | 0.23624072152954914
                                  Point2D.distance(): 464.6562034767721 | 0.2296605866669701
                                  enemyDistance:      454.2613816205908 | 0.22151755013472293
                                  Point2D.distance(): 467.57918268154947 | 0.21368391942304665
                                  enemyDistance:      458.51682597099244 | 0.20660476164365077
                                  Point2D.distance(): 470.36143375505645 | 0.19768990433137024
                                  enemyDistance:      462.6968603513805 | 0.19172833220073712
                                  Point2D.distance(): 473.1799462825239 | 0.18181955296537122
                                  enemyDistance:      466.7884043134722 | 0.1768707910183386
                                  Point2D.distance(): 476.0201003737446 | 0.16606105657547676
                                  enemyDistance:      470.7783059278863 | 0.1620160438410283
                                  Point2D.distance(): 478.8676357225633 | 0.15040230638997265
                                  enemyDistance:      474.8451730591144 | 0.14738247912452332
                                  Point2D.distance(): 481.91348493399096 | 0.13500317678637241
                                  enemyDistance:      478.8129467294319 | 0.132753059182493
                                  Point2D.distance(): 484.96690248720176 | 0.11970764580503435
                                  enemyDistance:      482.7073423251047 | 0.11815840346102317
                                  Point2D.distance(): 488.0550460940423 | 0.10453833109284627
                                  enemyDistance:      486.3719972703192 | 0.10342632992633781
                                  Point2D.distance(): 491.0142422498307 | 0.08935517795886572
                                  enemyDistance:      490.0128959796447 | 0.08878019020539497
                                  Point2D.distance(): 494.0606637930172 | 0.07433630902046406
                                  enemyDistance:      493.47091559293216 | 0.07405808563663252
                                  Point2D.distance(): 497.0292146865964 | 0.059344841810967885
                                  enemyDistance:      496.7290105812168 | 0.059251759263135195
                                  Point2D.distance(): 499.90429310070715 | 0.04436768149464321
                                  enemyDistance:      499.9603447350002 | 0.044518643713827896
                                  Point2D.distance(): 502.8631109133297 | 0.029543056890399377
                                  enemyDistance:      502.96094897125784 | 0.029685559228334657
                                  Point2D.distance(): 505.69898691442023 | 0.014708881978805266
                                  enemyDistance:      505.90648427680526 | 0.014897137740659604
                                  Point2D.distance(): 508.58981891261766 | -0.0
                                  
                                  Wave# 49:
                                  enemyDistance:      389.652074900973 | 0.42019101436150297
                                  Point2D.distance(): 432.67348017611505 | 0.43410156310463144
                                  enemyDistance:      394.76426122913375 | 0.40439872303833824
                                  Point2D.distance(): 434.79214023370037 | 0.4163153132883899
                                  enemyDistance:      399.8042178947086 | 0.3886607324825147
                                  Point2D.distance(): 436.95740410317904 | 0.3986461821461038
                                  enemyDistance:      404.75784458928865 | 0.37294842832525327
                                  Point2D.distance(): 439.1518964167109 | 0.38108387564541246
                                  enemyDistance:      409.77245512550263 | 0.3575484251106345
                                  Point2D.distance(): 441.5547421841489 | 0.3637551952075846
                                  enemyDistance:      414.68933254663483 | 0.342148046311834
                                  Point2D.distance(): 443.97051550094255 | 0.3465300335127832
                                  enemyDistance:      419.5081162618981 | 0.32674888229342
                                  Point2D.distance(): 446.3994165098057 | 0.3294079685071214
                                  enemyDistance:      424.25670545150444 | 0.31140177185180345
                                  Point2D.distance(): 448.87485465438704 | 0.3124131787149427
                                  enemyDistance:      428.9632635766217 | 0.29615386430161383
                                  Point2D.distance(): 451.42931739281096 | 0.2955714740872937
                                  enemyDistance:      433.65577444964003 | 0.2810494849740932
                                  Point2D.distance(): 454.0940515833997 | 0.27891088762452476
                                  enemyDistance:      438.36147286764685 | 0.26613061890949785
                                  Point2D.distance(): 456.8985597161345 | 0.26246194710477777
                                  enemyDistance:      442.89815391119197 | 0.25109902079569935
                                  Point2D.distance(): 459.6320923932965 | 0.2460552620043206
                                  enemyDistance:      447.41698142400645 | 0.23619372053869206
                                  Point2D.distance(): 462.4676903870144 | 0.22982986410209705
                                  enemyDistance:      451.9033845789699 | 0.22138961483559907
                                  Point2D.distance(): 465.38716672612065 | 0.21377480497397716
                                  enemyDistance:      456.3427240471944 | 0.2066624770112274
                                  Point2D.distance(): 468.37272542983663 | 0.19787748471527689
                                  enemyDistance:      460.5477261608859 | 0.1917488400094281
                                  Point2D.distance(): 471.2174248217063 | 0.18196148689867453
                                  enemyDistance:      464.67697279794953 | 0.17687099531137696
                                  Point2D.distance(): 474.09768326295455 | 0.16617070810233248
                                  enemyDistance:      468.7173344314597 | 0.16201176288288033
                                  Point2D.distance(): 476.99891706253374 | 0.15049301311847607
                                  enemyDistance:      472.6556146130359 | 0.1471553195958354
                                  Point2D.distance(): 479.9069031972826 | 0.13491599686292677
                                  enemyDistance:      476.6711914347358 | 0.1325163597358948
                                  Point2D.distance(): 483.01194412931414 | 0.11960225140579794
                                  enemyDistance:      480.5872500434403 | 0.11788154730950084
                                  Point2D.distance(): 486.1238964154333 | 0.1043927608339068
                                  enemyDistance:      484.42962504582266 | 0.10328097708738215
                                  Point2D.distance(): 489.26982271459724 | 0.08931045709449492
                                  enemyDistance:      488.04135073469956 | 0.08854548738576205
                                  Point2D.distance(): 492.28657860116044 | 0.07421299819077731
                                  enemyDistance:      491.629230270297 | 0.07389442741002242
                                  Point2D.distance(): 495.3896453612583 | 0.05928143964294286
                                  enemyDistance:      495.03356308857764 | 0.059168877231874785
                                  Point2D.distance(): 498.4144417990766 | 0.04437664606007807
                                  enemyDistance:      498.23728985674074 | 0.044360803525827115
                                  Point2D.distance(): 501.34540432759763 | 0.029485362336786558
                                  enemyDistance:      501.4141683159546 | 0.02962451423529522
                                  Point2D.distance(): 504.35921634033 | 0.014748039944415758
                                  enemyDistance:      504.3595982636573 | 0.01479038967854867
                                  Point2D.distance(): 507.24979703667464 | -0.0
                                  
                                  Wave# 50:
                                  enemyDistance:      387.4846505535087 | 0.4203999289986841
                                  Point2D.distance(): 430.4341063847221 | 0.4347774644980591
                                  enemyDistance:      392.6207672232136 | 0.4045708132132716
                                  Point2D.distance(): 432.57788385647285 | 0.4169155123516388
                                  enemyDistance:      397.6982237925255 | 0.38882486340712474
                                  Point2D.distance(): 434.7853323326794 | 0.39918465884096754
                                  enemyDistance:      402.7031179578982 | 0.3731318680462723
                                  Point2D.distance(): 437.03879058905903 | 0.3815751743264846
                                  enemyDistance:      407.6212947228206 | 0.3574636545067727
                                  Point2D.distance(): 439.3209089912862 | 0.36407616386125063
                                  enemyDistance:      412.60072786633026 | 0.3421028053240593
                                  Point2D.distance(): 441.81014223175526 | 0.34681879832902496
                                  enemyDistance:      417.4819937439589 | 0.3267411343661304
                                  Point2D.distance(): 444.3117031935182 | 0.3296677669300596
                                  enemyDistance:      422.26474393811213 | 0.311380229702149
                                  Point2D.distance(): 446.8257706670681 | 0.3126225361612791
                                  enemyDistance:      426.9770058471701 | 0.29607022936798755
                                  Point2D.distance(): 449.3856093401777 | 0.2957079638396687
                                  enemyDistance:      431.64706398982224 | 0.28085764002746594
                                  Point2D.distance(): 452.0235558628228 | 0.2789504556901994
                                  enemyDistance:      436.3030176874337 | 0.26578619865580944
                                  Point2D.distance(): 454.77069772265014 | 0.262378547225242
                                  enemyDistance:      440.97221261517177 | 0.25089735734911023
                                  Point2D.distance(): 457.65636860366965 | 0.24602316174408667
                                  enemyDistance:      445.47171929338975 | 0.23589706099003602
                                  Point2D.distance(): 460.47065183806336 | 0.22971002979642918
                                  enemyDistance:      449.9533037109324 | 0.22102098840415962
                                  Point2D.distance(): 463.3858758118037 | 0.2135818790941464
                                  enemyDistance:      454.40233996749504 | 0.20624442165283044
                                  Point2D.distance(): 466.3838956826631 | 0.1976271414037205
                                  enemyDistance:      458.8041351543362 | 0.1915434967747327
                                  Point2D.distance(): 469.44696617445084 | 0.18183264526798837
                                  enemyDistance:      462.97074935315305 | 0.17665849777201953
                                  Point2D.distance(): 472.36900273384674 | 0.1660177194235244
                                  enemyDistance:      467.0613489797617 | 0.1618085323626487
                                  Point2D.distance(): 475.3256972057598 | 0.15032979363484955
                                  enemyDistance:      471.0627677902255 | 0.1469766823260782
                                  Point2D.distance(): 478.3025135922399 | 0.13475633273876397
                                  enemyDistance:      474.9617760776511 | 0.13214736871284322
                                  Point2D.distance(): 481.28527765962787 | 0.11928456986512703
                                  enemyDistance:      478.9383291421153 | 0.11753211359791224
                                  Point2D.distance(): 484.4634942944353 | 0.10408040836209409
                                  enemyDistance:      482.81504570663805 | 0.10292076857477911
                                  Point2D.distance(): 487.64778619555693 | 0.08898117864798927
                                  enemyDistance:      486.6178497925696 | 0.08834298747528273
                                  Point2D.distance(): 490.8650969051406 | 0.07401019590866831
                                  enemyDistance:      490.1893243132479 | 0.07363220105550412
                                  Point2D.distance(): 493.9529524662961 | 0.05902233893678677
                                  enemyDistance:      493.7368854034367 | 0.05900435873395718
                                  Point2D.distance(): 497.12595959558814 | 0.04420223235065279
                                  enemyDistance:      497.1004004932433 | 0.04430307705770034
                                  Point2D.distance(): 500.22018942536016 | 0.029408004279542155
                                  enemyDistance:      500.26280041431465 | 0.02952051682009638
                                  Point2D.distance(): 503.2201270188375 | 0.014626209541868107
                                  enemyDistance:      503.3982867112673 | 0.014808368331270211
                                  Point2D.distance(): 506.3017883395013 | -0.0
                                  
                                  Wave# 51:
                                  enemyDistance:      385.15060907151144 | 0.4201247543960749
                                  Point2D.distance(): 428.15233454131607 | 0.4351078493431446
                                  enemyDistance:      390.309475598363 | 0.4042493619385357
                                  Point2D.distance(): 430.3224844934704 | 0.41716869294564596
                                  enemyDistance:      395.42304857642256 | 0.388486621843811
                                  Point2D.distance(): 432.57322461603445 | 0.3993751482070227
                                  enemyDistance:      400.47778332059744 | 0.3728052427820432
                                  Point2D.distance(): 434.88683366300023 | 0.3817183731284297
                                  enemyDistance:      405.4597400344883 | 0.357175408185234
                                  Point2D.distance(): 437.24567815695656 | 0.3641878707784496
                                  enemyDistance:      410.354728320097 | 0.3415693091036985
                                  Point2D.distance(): 439.6324443792351 | 0.34677202374275407
                                  enemyDistance:      415.31114956527534 | 0.32626635203817445
                                  Point2D.distance(): 442.22475602691907 | 0.32960716866843676
                                  enemyDistance:      420.1691222614358 | 0.31096190522307887
                                  Point2D.distance(): 444.828627403079 | 0.31255181435913393
                                  enemyDistance:      424.928305930827 | 0.29565756821602485
                                  Point2D.distance(): 447.4442135347911 | 0.2956052919364103
                                  enemyDistance:      429.6168110599043 | 0.2804029405720947
                                  Point2D.distance(): 450.1046024346513 | 0.278793257242703
                                  enemyDistance:      434.2630005840818 | 0.2652440354620127
                                  Point2D.distance(): 452.84194761427636 | 0.2621428114641997
                                  enemyDistance:      438.8950486283361 | 0.25022413690982
                                  Point2D.distance(): 455.68714402465935 | 0.24568307181357962
                                  enemyDistance:      443.54037266611476 | 0.2353842842729466
                                  Point2D.distance(): 458.6693224637761 | 0.2294454137900983
                                  enemyDistance:      448.0155741064073 | 0.2204337133464419
                                  Point2D.distance(): 461.5795955518273 | 0.21324982842683493
                                  enemyDistance:      452.4728087970372 | 0.20560549735036668
                                  Point2D.distance(): 464.58941675673714 | 0.1972433842188206
                                  enemyDistance:      456.8974151932714 | 0.19087522544229973
                                  Point2D.distance(): 467.6806971607651 | 0.1814137780468652
                                  enemyDistance:      461.27466571636455 | 0.17621932383165909
                                  Point2D.distance(): 470.83575722412166 | 0.165747163615797
                                  enemyDistance:      465.4161894255864 | 0.16138099773030162
                                  Point2D.distance(): 473.84956491118317 | 0.1500578931681389
                                  enemyDistance:      469.4815309939153 | 0.14657690342015592
                                  Point2D.distance(): 476.89692212643627 | 0.1344975353476645
                                  enemyDistance:      473.4575004717402 | 0.13179033282138297
                                  Point2D.distance(): 479.9633535155015 | 0.11905308698139816
                                  enemyDistance:      477.3308467016577 | 0.11700590295549135
                                  Point2D.distance(): 483.03474643656256 | 0.10371135950961552
                                  enemyDistance:      481.2818981088572 | 0.10243271091776633
                                  Point2D.distance(): 486.29963410075555 | 0.08864211333713179
                                  enemyDistance:      485.1329072759097 | 0.08786305225397936
                                  Point2D.distance(): 489.5695781009957 | 0.07367841689996357
                                  enemyDistance:      488.90985605790166 | 0.07332625166295863
                                  Point2D.distance(): 492.8713784361479 | 0.05884403275174588
                                  enemyDistance:      492.455035867368 | 0.0586577198235711
                                  Point2D.distance(): 496.04337899300384 | 0.04399061334031806
                                  enemyDistance:      495.97625880642425 | 0.04407083916252802
                                  Point2D.distance(): 499.29912196112525 | 0.02930693506440285
                                  enemyDistance:      499.3131134775056 | 0.029411146123528888
                                  Point2D.distance(): 502.47547408010206 | 0.014647950424095058
                                  enemyDistance:      502.44852459322374 | 0.014670951178170633
                                  Point2D.distance(): 505.5569799748665 | -0.0
                                  
                                  Wave# 54:
                                  enemyDistance:      383.628209817036 | 0.4018303368413147
                                  Point2D.distance(): 423.3647986201156 | 0.41684219193319816
                                  enemyDistance:      388.8065537304753 | 0.38593491993939677
                                  Point2D.distance(): 425.69997623422495 | 0.39881829006613234
                                  enemyDistance:      393.96618539125006 | 0.3702104642337615
                                  Point2D.distance(): 428.14865183535005 | 0.3809786707816256
                                  enemyDistance:      399.09394816459684 | 0.3546240373696175
                                  Point2D.distance(): 430.69271581372107 | 0.36331572066546336
                                  enemyDistance:      404.1762254381392 | 0.339143410545862
                                  Point2D.distance(): 433.3139733661452 | 0.3458193176522144
                                  enemyDistance:      409.19941939150885 | 0.3237383553009885
                                  Point2D.distance(): 435.9948076235071 | 0.3284777727175099
                                  enemyDistance:      414.14953867801967 | 0.30838004979117656
                                  Point2D.distance(): 438.7177278257046 | 0.31127789059256106
                                  enemyDistance:      419.0123442477055 | 0.2930416028545948
                                  Point2D.distance(): 441.4655888171755 | 0.29420553765954516
                                  enemyDistance:      423.93682565823786 | 0.2779949838725762
                                  Point2D.distance(): 444.412886648231 | 0.27741445621675265
                                  enemyDistance:      428.7624716372235 | 0.2629439559848812
                                  Point2D.distance(): 447.3687303870382 | 0.2607421347217036
                                  enemyDistance:      433.48895269677564 | 0.2478902014219436
                                  Point2D.distance(): 450.33320743295695 | 0.2441874310372807
                                  enemyDistance:      438.1444936259084 | 0.2328821169661521
                                  Point2D.distance(): 453.3387631360754 | 0.22777866082914677
                                  enemyDistance:      442.7575651956281 | 0.21796461575622958
                                  Point2D.distance(): 456.41689239769045 | 0.21154521178431018
                                  enemyDistance:      447.3564443730751 | 0.2031799675502207
                                  Point2D.distance(): 459.59780588762635 | 0.19551807937326426
                                  enemyDistance:      451.968647333714 | 0.18856827687958386
                                  Point2D.distance(): 462.9099218076666 | 0.17973006009609893
                                  enemyDistance:      456.41013068768297 | 0.17384643079070766
                                  Point2D.distance(): 466.1482008083585 | 0.16398203441142112
                                  enemyDistance:      460.8335861541128 | 0.15924155907441107
                                  Point2D.distance(): 469.48086918910303 | 0.14843549123598443
                                  enemyDistance:      465.2243032107267 | 0.14472998373076038
                                  Point2D.distance(): 472.8900771107752 | 0.13307564819097095
                                  enemyDistance:      469.56750665051464 | 0.13028882806805794
                                  Point2D.distance(): 476.3584142770431 | 0.117886403614472
                                  enemyDistance:      473.67423352848243 | 0.11566797301966585
                                  Point2D.distance(): 479.68472774498514 | 0.10266574641911674
                                  enemyDistance:      477.7045481773917 | 0.10107859509452341
                                  Point2D.distance(): 483.04055525137585 | 0.08757891838769094
                                  enemyDistance:      481.6452281509794 | 0.08650449328933135
                                  Point2D.distance(): 486.41166059213947 | 0.07261138423264857
                                  enemyDistance:      485.4829929158686 | 0.07193075717298464
                                  Point2D.distance(): 489.7841705520529 | 0.0577485872585175
                                  enemyDistance:      489.39868299708525 | 0.05756114908766319
                                  Point2D.distance(): 493.34309616425594 | 0.043172877804712684
                                  enemyDistance:      493.2140484811843 | 0.04319337303118382
                                  Point2D.distance(): 496.9034440898901 | 0.02870338932002614
                                  enemyDistance:      496.95515064152727 | 0.0288560653167099
                                  Point2D.distance(): 500.4915054796334 | 0.014365359302923153
                                  enemyDistance:      500.46388119058514 | 0.014388979073293234
                                  Point2D.distance(): 503.9485953153811 | -0.0
                                  
                                  Wave# 55:
                                  enemyDistance:      381.27195377300626 | 0.40339296720681894
                                  Point2D.distance(): 421.07767445697243 | 0.41854843856240187
                                  enemyDistance:      386.41264326121984 | 0.3873159721918108
                                  Point2D.distance(): 423.35314096493636 | 0.4003830666233643
                                  enemyDistance:      391.54810838162047 | 0.3714415306004865
                                  Point2D.distance(): 425.76030537299107 | 0.3824128173968582
                                  enemyDistance:      396.66475065002106 | 0.3557351733787074
                                  Point2D.distance(): 428.28020179470053 | 0.3646316916592731
                                  enemyDistance:      401.7493372486454 | 0.34016453326447565
                                  Point2D.distance(): 430.89473061354784 | 0.34703146633162607
                                  enemyDistance:      406.7881751617802 | 0.3246979150813549
                                  Point2D.distance(): 433.58571825791245 | 0.32960143356651805
                                  enemyDistance:      411.76759375747577 | 0.30930557778285495
                                  Point2D.distance(): 436.33557635178755 | 0.3123293596244938
                                  enemyDistance:      416.6735310832441 | 0.29395915478251056
                                  Point2D.distance(): 439.12684946743974 | 0.2952015378342807
                                  enemyDistance:      421.4916814968214 | 0.2786321747537381
                                  Point2D.distance(): 441.94243214134127 | 0.27820336192856665
                                  enemyDistance:      426.3718405932179 | 0.2635925212843566
                                  Point2D.distance(): 444.9561880929483 | 0.26149176056609846
                                  enemyDistance:      431.15263410339395 | 0.2485484697611953
                                  Point2D.distance(): 447.977865159523 | 0.24490034461099164
                                  enemyDistance:      435.8337477320614 | 0.23350168026889856
                                  Point2D.distance(): 451.00754063957703 | 0.22842788426864669
                                  enemyDistance:      440.443562941189 | 0.2184998174110351
                                  Point2D.distance(): 454.07753359700087 | 0.2121031787583867
                                  enemyDistance:      445.0106982324726 | 0.20358711944254482
                                  Point2D.distance(): 457.21921079687786 | 0.19595602631990605
                                  enemyDistance:      449.563571415286 | 0.18880523681677489
                                  Point2D.distance(): 460.46265115354737 | 0.18001775407755805
                                  enemyDistance:      454.1298338214034 | 0.17419371330786057
                                  Point2D.distance(): 463.83613709226216 | 0.1643214030100184
                                  enemyDistance:      458.5245592957379 | 0.15947372068086368
                                  Point2D.distance(): 467.13540279517 | 0.14866439705323842
                                  enemyDistance:      462.9011732058717 | 0.14486892028317028
                                  Point2D.distance(): 470.52803285816935 | 0.13321083078943108
                                  enemyDistance:      467.2448980075383 | 0.13035601796605267
                                  Point2D.distance(): 473.9962303038815 | 0.117945469324364
                                  enemyDistance:      471.5408933380339 | 0.11591249821462345
                                  Point2D.distance(): 477.52264267326166 | 0.10285180299783914
                                  enemyDistance:      475.59938661276084 | 0.10129213046136078
                                  Point2D.distance(): 480.906887544785 | 0.08772489546025053
                                  enemyDistance:      479.5811531100277 | 0.08670275419065532
                                  Point2D.distance(): 484.3198566600783 | 0.07273244631119091
                                  enemyDistance:      483.4729260610956 | 0.07212843033988936
                                  Point2D.distance(): 487.747363776143 | 0.05785964866344173
                                  enemyDistance:      487.26138492269394 | 0.05755449358064989
                                  Point2D.distance(): 491.1755851558824 | 0.043091705439194605
                                  enemyDistance:      491.12806984369684 | 0.04318134329366577
                                  Point2D.distance(): 494.7888417027615 | 0.028613204869047948
                                  enemyDistance:      494.8940444413517 | 0.028810047560079037
                                  Point2D.distance(): 498.4028217760007 | 0.014240802019815924
                                  enemyDistance:      498.5854785732572 | 0.014468763618823575
                                  Point2D.distance(): 502.04371860568017 | -0.0
                                  
                                  Wave# 56:
                                  enemyDistance:      378.6051184072665 | 0.4066568750168591
                                  Point2D.distance(): 418.9018467142781 | 0.42159610370339085
                                  enemyDistance:      383.6730201143045 | 0.3903073285020906
                                  Point2D.distance(): 421.06373491476575 | 0.40325609911855675
                                  enemyDistance:      388.7488017301679 | 0.3741905784677061
                                  Point2D.distance(): 423.37550577673693 | 0.38511663975191723
                                  enemyDistance:      393.8193131175118 | 0.35827314168836266
                                  Point2D.distance(): 425.818574396249 | 0.36717499543408305
                                  enemyDistance:      398.8708370818898 | 0.3425212613718305
                                  Point2D.distance(): 428.3739760475242 | 0.34942483976244887
                                  enemyDistance:      403.8900274705151 | 0.3269032108499098
                                  Point2D.distance(): 431.023617394551 | 0.33185764364509307
                                  enemyDistance:      408.8630776439352 | 0.311387898254189
                                  Point2D.distance(): 433.7493367122483 | 0.31446240613269527
                                  enemyDistance:      413.7762087454563 | 0.29594613181748386
                                  Point2D.distance(): 436.5335610173933 | 0.2972266216874502
                                  enemyDistance:      418.61525395097334 | 0.28055005779625825
                                  Point2D.distance(): 439.3588536166958 | 0.28013632917771414
                                  enemyDistance:      423.36580880442057 | 0.2651736780026864
                                  Point2D.distance(): 442.2081298723648 | 0.26317668778774284
                                  enemyDistance:      428.17886711081326 | 0.2500799097058013
                                  Point2D.distance(): 445.25493355258226 | 0.246506196988995
                                  enemyDistance:      432.89177181049126 | 0.2349824696246637
                                  Point2D.distance(): 448.30933742277534 | 0.22995655202139975
                                  enemyDistance:      437.5042314829644 | 0.2198829614595108
                                  Point2D.distance(): 451.3714141434601 | 0.21352647992748608
                                  enemyDistance:      442.04486055945387 | 0.20482812753983004
                                  Point2D.distance(): 454.47341936303104 | 0.1972450179282026
                                  enemyDistance:      446.5424970421342 | 0.18986135326776504
                                  Point2D.distance(): 457.64665567403915 | 0.18114216552363693
                                  enemyDistance:      451.02576790098124 | 0.17502350722926802
                                  Point2D.distance(): 460.9211361867022 | 0.16524941150663697
                                  enemyDistance:      455.52252514914267 | 0.16035342904945749
                                  Point2D.distance(): 464.325075700978 | 0.14959991494195268
                                  enemyDistance:      459.8465322933524 | 0.14557754607708132
                                  Point2D.distance(): 467.6545992323779 | 0.13398940275360083
                                  enemyDistance:      464.1523037212795 | 0.13091520264375464
                                  Point2D.distance(): 471.07696809804696 | 0.11858324849593416
                                  enemyDistance:      468.42496247237506 | 0.11634356386932047
                                  Point2D.distance(): 474.57441266150767 | 0.1033659944275298
                                  enemyDistance:      472.649571579889 | 0.10184054467392865
                                  Point2D.distance(): 478.1296101798854 | 0.08832093053056855
                                  enemyDistance:      476.63515853139626 | 0.08716475724209985
                                  Point2D.distance(): 481.5425662900484 | 0.07324168979905199
                                  enemyDistance:      480.54355280594626 | 0.07251982330445908
                                  Point2D.distance(): 484.9838477320971 | 0.058297176098651704
                                  enemyDistance:      484.3614222128913 | 0.05789011613158117
                                  Point2D.distance(): 488.4392937558694 | 0.04347245004152889
                                  enemyDistance:      488.0753872770291 | 0.04326126333441768
                                  Point2D.distance(): 491.89510580112625 | 0.028752597626358956
                                  enemyDistance:      491.86802340172375 | 0.028829361093870968
                                  Point2D.distance(): 495.53525854204224 | 0.014323299278037993
                                  enemyDistance:      495.5593784898155 | 0.014399764565170947
                                  Point2D.distance(): 499.17578325987097 | -0.0
                                  
                                  Wave# 57:
                                  enemyDistance:      376.046754560444 | 0.41145309153271314
                                  Point2D.distance(): 416.8540615424325 | 0.42577965467830303
                                  enemyDistance:      381.04823832205966 | 0.39484927917872714
                                  Point2D.distance(): 418.9018467142781 | 0.40727280442535285
                                  enemyDistance:      386.02696167447493 | 0.37841573349287705
                                  Point2D.distance(): 421.06373491476575 | 0.38893279984051876
                                  enemyDistance:      391.0136566503927 | 0.3622105770009695
                                  Point2D.distance(): 423.37550577673693 | 0.37079334047387924
                                  enemyDistance:      395.99502003070677 | 0.3462012289790274
                                  Point2D.distance(): 425.818574396249 | 0.35285169615604506
                                  enemyDistance:      400.9571757859101 | 0.3303547913700057
                                  Point2D.distance(): 428.3739760475242 | 0.3351015404844109
                                  enemyDistance:      405.8866261648047 | 0.31464030821953326
                                  Point2D.distance(): 431.023617394551 | 0.3175343443670551
                                  enemyDistance:      410.7694126192672 | 0.29902741319521425
                                  Point2D.distance(): 433.7493367122483 | 0.3001391068546573
                                  enemyDistance:      415.59161171397074 | 0.28348757461556884
                                  Point2D.distance(): 436.5335610173933 | 0.2829033224094122
                                  enemyDistance:      420.3389166707679 | 0.2679935554594733
                                  Point2D.distance(): 439.3588536166958 | 0.26581302989967615
                                  enemyDistance:      424.9967913519145 | 0.2525199271511413
                                  Point2D.distance(): 442.2081298723648 | 0.24885338850970484
                                  enemyDistance:      429.71783054201364 | 0.23732342075957197
                                  Point2D.distance(): 445.25493355258226 | 0.23218289771095701
                                  enemyDistance:      434.3376633689631 | 0.22212450820566373
                                  Point2D.distance(): 448.30933742277534 | 0.21563325274336176
                                  enemyDistance:      438.85602954148874 | 0.20692470792705864
                                  Point2D.distance(): 451.3714141434601 | 0.19920318064944809
                                  enemyDistance:      443.3018549033775 | 0.19176959546437347
                                  Point2D.distance(): 454.47341936303104 | 0.1829217186501646
                                  enemyDistance:      447.7042705311046 | 0.17670147491186478
                                  Point2D.distance(): 457.64665567403915 | 0.16681886624559894
                                  enemyDistance:      452.0921824589422 | 0.1617602231743724
                                  Point2D.distance(): 460.9211361867022 | 0.15092611222859897
                                  enemyDistance:      456.4937103825974 | 0.14698378813365648
                                  Point2D.distance(): 464.325075700978 | 0.1352766156639147
                                  enemyDistance:      460.720870769676 | 0.13210518437355287
                                  Point2D.distance(): 467.6545992323779 | 0.11966610347556284
                                  enemyDistance:      464.92963001688906 | 0.11733831067015965
                                  Point2D.distance(): 471.07696809804696 | 0.10425994921789616
                                  enemyDistance:      469.10497874763183 | 0.10266090151037933
                                  Point2D.distance(): 474.57441266150767 | 0.08904269514949181
                                  enemyDistance:      473.2318514104417 | 0.08805140482670842
                                  Point2D.distance(): 478.1296101798854 | 0.07399763125253056
                                  enemyDistance:      477.1176792988135 | 0.0732745509432684
                                  Point2D.distance(): 481.5425662900484 | 0.058918390521014
                                  enemyDistance:      480.9256952932001 | 0.05852860065483865
                                  Point2D.distance(): 484.9838477320971 | 0.04397387682061371
                                  enemyDistance:      484.6424806959998 | 0.04379831485154948
                                  Point2D.distance(): 488.4392937558694 | 0.029149150763490894
                                  enemyDistance:      488.2545783506524 | 0.02906968535262087
                                  Point2D.distance(): 491.89510580112625 | 0.014429298348320962
                                  enemyDistance:      491.9459376274789 | 0.014533303597659739
                                  Point2D.distance(): 495.53525854204224 | -0.0
                                  
                                  Wave# 58:
                                  enemyDistance:      373.5274415972566 | 0.41631121556611494
                                  Point2D.distance(): 414.88376999899697 | 0.4299949590898411
                                  enemyDistance:      378.4922463645331 | 0.3995172293228793
                                  Point2D.distance(): 416.8540615424325 | 0.41135035632998207
                                  enemyDistance:      383.40311880168514 | 0.38283174838372025
                                  Point2D.distance(): 418.9018467142781 | 0.3928435060770319
                                  enemyDistance:      388.2909711160015 | 0.36631347182443774
                                  Point2D.distance(): 421.06373491476575 | 0.3745035014921978
                                  enemyDistance:      393.1868857935778 | 0.35001917555346873
                                  Point2D.distance(): 423.37550577673693 | 0.3563640421255583
                                  enemyDistance:      398.07740816031907 | 0.33391717071172305
                                  Point2D.distance(): 425.818574396249 | 0.3384223978077241
                                  enemyDistance:      402.9485050546776 | 0.3179754092669894
                                  Point2D.distance(): 428.3739760475242 | 0.3206722421360908
                                  enemyDistance:      407.7865288051462 | 0.3021636992721022
                                  Point2D.distance(): 431.023617394551 | 0.3031050460187341
                                  enemyDistance:      412.57737072632307 | 0.2864523947550774
                                  Point2D.distance(): 433.7493367122483 | 0.2857098085063363
                                  enemyDistance:      417.30696462259874 | 0.2708136204197235
                                  Point2D.distance(): 436.5335610173933 | 0.2684740240610912
                                  enemyDistance:      421.960865693875 | 0.25522075347814466
                                  Point2D.distance(): 439.3588536166958 | 0.2513837315513552
                                  enemyDistance:      426.52440816161334 | 0.2396489335814434
                                  Point2D.distance(): 442.2081298723648 | 0.23442409016138477
                                  enemyDistance:      431.15176798348386 | 0.22434872350965998
                                  Point2D.distance(): 445.25493355258226 | 0.21775359936263605
                                  enemyDistance:      435.6768818892931 | 0.20904733094603345
                                  Point2D.distance(): 448.30933742277534 | 0.2012039543950408
                                  enemyDistance:      440.0995210013315 | 0.19374619069870264
                                  Point2D.distance(): 451.3714141434601 | 0.18477388230112712
                                  enemyDistance:      444.4489188801207 | 0.17848971412171366
                                  Point2D.distance(): 454.47341936303104 | 0.16849242030184364
                                  enemyDistance:      448.7544958023305 | 0.16331912486896946
                                  Point2D.distance(): 457.64665567403915 | 0.15238956789727798
                                  enemyDistance:      453.04543293543173 | 0.148273307588613
                                  Point2D.distance(): 460.9211361867022 | 0.136496813880278
                                  enemyDistance:      457.3501138054843 | 0.13338931669447215
                                  Point2D.distance(): 464.325075700978 | 0.12084731731559373
                                  enemyDistance:      461.478833907563 | 0.11840675820989621
                                  Point2D.distance(): 467.6545992323779 | 0.10523680512724187
                                  enemyDistance:      465.5889900391305 | 0.10353408040930702
                                  Point2D.distance(): 471.07696809804696 | 0.0898306508695752
                                  enemyDistance:      469.665442541143 | 0.08874958712996472
                                  Point2D.distance(): 474.57441266150767 | 0.07461339680117085
                                  enemyDistance:      473.6929994510464 | 0.07403225991240603
                                  Point2D.distance(): 478.1296101798854 | 0.0595683329042096
                                  enemyDistance:      477.4775240022302 | 0.05915296511278922
                                  Point2D.distance(): 481.5425662900484 | 0.044489092172693034
                                  enemyDistance:      481.1836290012336 | 0.044304588149034874
                                  Point2D.distance(): 484.9838477320971 | 0.02954457847229186
                                  enemyDistance:      484.7978113868785 | 0.02947227925478494
                                  Point2D.distance(): 488.4392937558694 | 0.014719852415169932
                                  enemyDistance:      488.30653853791085 | 0.014642396542997881
                                  Point2D.distance(): 491.89510580112625 | -0.0
                                  

                                  Notice that enemyDistance starts at about 40 pixels less than the distance calculation, but usually ends up about the same.

                                    Sheldor02:26, 7 May 2013