while true loop

Jump to navigation Jump to search
Revision as of 28 September 2011 at 23:36.
The highlighted comment was created in this revision.

while true loop

How is the while (true) loop actually broken down? Does robocode executes the code there 1 iteration per turn? Or..?

    Ultimatebuster20:49, 28 September 2011

    Generally, yes - when you call execute(), the Robocode engine processes one tick, including firing all the events on your bot, and then your run() method continues executing. So most of us have an infinite loop that calls execute() at the end, and each iteration is one tick.

    But there's no magic to it - you could have a run method that goes:

    public void run() {
      turnRight(20);
      ahead(100);
      fire(3);
    }

    And that would be perfectly valid. Or you could call execute() every third iteration of your loop. In Dookious, my run method used to have a loop that was while (notWonYet) ..., then a victory dance.

      Voidious22:00, 28 September 2011
       

      The timing thing for me is very confusing...

      For example, if i want to fire at a certain angle, i have to rotate to it.. by the time i do.. i have another angle... which requires more rotation.. etc..

      Same thing for turning the robot and going ahead.. I never know how to correctly time them. (Effectively stuck)

        Ultimatebuster00:36, 29 September 2011