Re: Debugging a Robot
"flemmingnlarsen" <[email protected]>
| Newsgroups | gmane.comp.java.robocode |
|---|---|
| Message-ID | <[email protected]> |
You are right. You just have to call a command that executes immediately like e.g. ahead(), turnLeft() etc. If you are only calling set methods like setAhead(), setTurnLeft() etc., you need to call execute() in order to execute all pending commands. :-) --- In [email protected], "icyjj10" <icyjj10@...> wrote: > > I managed to fix it, I had copied one of my formulas for the tracking wrong, so a NaN had probably come into most of the calculations. I put a purposeful runtime error, and can see that they do indeed get put into the player console. > > Your second point is interesting, becuase I am currently using an AdvancedRobot but don't call execute(). It might be because I am still using, for example, ahead instead of setAhead and turnRightRadians instead of setTurnRightRadians. > > --- In [email protected], "flemmingnlarsen" flemming.n.larsen@ wrote: > > > > If you got a runtime error from the JavaVM, it would show up in the main console running the game. If so, please tell me what it writes. > > > > If your robot freezes, it could be that you are developing on an AdvancedRobot, and have not called execute() during your main loop. > > > > E.g.: > > > > public void run() { > > // perform initialization > > ... > > > > while (true) { > > setAhead(some value); > > setTurnLeft(some value); > > ... > > // execute() is not called > > } > > } > > > > --- In [email protected], "icyjj10" <icyjj10@> wrote: > > > > > > Hello > > > I have been building a robot, but have found that it freezes a few seconds after it runs. I am pretty sure that this is because of a runtime error in the javavm, but I don't know how I can see the error output. How would I go about debugging the robot and seeing the runtime error? I'm pretty sure the error comes from a division by zero somewhere, but I would really like to know the line it occurs on. > > > > > > I am not using eclipse by the way, so I might need to do it the manual way, using System.out.println to print to the robot window. Is there a better way? > > > > > >