Talk:XanderFramework

From Robowiki
Revision as of 19:28, 7 June 2011 by Skotty (talk | contribs) (Added a note about the effects of having CompoundGuns and CompoundDrives)
Jump to navigation Jump to search

A ran a new test tonight on static data handling. Tonight it appears as though static variables are not shared -- as if each robot runs on it's own JVM. This is fascinating, as I sware I have had problems with this before, and I even ran a test not that long ago that seemed to confirm the issue. I will need to do more testing to fully understand what is going on. Maybe it was an issue for an older version of Robocode. Not sure. I will have to run more tests. Skotty 05:10, 2 June 2011 (UTC)

I suppose it's time to dig deeper into Java class loading. Not something I've ever had to dig too deep into in the past, but Robocode seems to be doing some strange things with it, presumably to isolate robots from each other. Again, I can sware I've seen static variable sharing problems before. The last version of Robocode I used before 1.7.x was 1.1.3 -- could that particular version have had some bugs related to this? (note: I tried version 1.0.7 and couldn't duplicate the issue; version 1.1.3 is not available for download, and I no longer have a copy of it on my system to try). If indeed Robocode manages to completely sandbox every robot, it would seem I have wasted a lot of time working on a problem that doesn't really exist. Robocode informational pages should state this upfront, as it is atypical behavior for a Java-based system. Skotty 06:21, 2 June 2011 (UTC)

A little note on drives and guns in the Xander framework -- a CompoundDrive or a CompoundGun allow multiple drives or guns to be chosen between using a DriveSelector or GunSelector respectively. It should be noted that CompoundDrives or CompoundGuns can be nested. What this does is creates a decision tree, with CompoundDrives or CompoundGuns being the branches. This might look something like the following (and is the general plan for drives for XanderCat 3.2). (Although I don't show it in the example, a CompoundDrive or CompoundGun can have any number of drives or guns immediately below; it is not limited to only having two)

             __________________
            [  Compound Drive  ] 
            [                  ]
            [ [Drive Selector] ]
            [__________________]
          ____________|____________
 ________|_________        ________|_________
[  Ideal Position  ]      [  Compound Drive  ] 
[     Drive        ]      [                  ]
[__________________]      [ [Drive Selector] ]
                          [__________________]
                        ___________|____________
               ________|_________       ________|_________
              [   Anti-Mirror    ]     [    Stat Drive    ]
              [     Drive        ]     [                  ]
              [__________________]     [__________________]