Yeah, I also noticed this. Robocode seems to give every robot a certain amount of time to do calculations. Whenever I activate debug graphics, the skipped turns become less. Maybe because Robocode provides more time in that case. When the window is minimized, battles run faster. Maybe the time for painting the battlefield is added to the regular bot calculation time, but I am not sure.
Does anybody know whether there is a way for the robot to know how much time he can spend before it would lead to a skipped turn?
I would say simply try and save data ;)
e.g. just run your code like normal, but with time recorded. when skipped turn recorded, try to limit run time and save that. Only when skipped turns are not happening, the time limit will not decrease, then you know it.
However if the skipped turns are happening occasionally, you may end up limiting yourself too strict ;)
Skipping turns is disabled when debugging graphics is enabled. This is so you can do extra work in your debugging compared to regular without skipping turns.
The permitted amount of time per tic for a robot is given by "cpuConstant" (see the source). On a modern computer it is about 5 -- 6 mS. You can check/recalculate it via the menu in GUI, see under options. It is reported in nano seconds.
If you want to time your bot, I would recomment to use nanoTime() call for profiling. You can see how a bit more fancy profiling done via a special class at [] I am using it in EvBotNG. If you look at console, you will see profiler info at the end of every round.