Frequently asked questions

Collected and answered by Dennis C. Bemmann

Note: For questions concerning Multitasking, please look at the Multitasking FAQ.

Q: How does the transfer of code banks work? Are the instructions transfered one by one or in a block?
A:The whole bank is transfered in a single block. Thus, it is not possible that a robot gets half a bank or that two different banks "mix up". Either the transfer succeeds 100%, or it doesn't at all.
 
Q: When is an instruction actually executed? Immediately or after the execution time?
A:The effects of an instruction execution happen when all the cycles needed to execute the instruction are over. For example, if a robot executes a MOVE instruction which takes 18 cycles, he moves onto the next field AFTER all 18 cycles have passed.
 
Q: How do I (un)subscribe to the mailing-list?
A: The simple method:
Look at our Mailing List page and follow the instructions to (un)subscribe.

The hard-core method:

  1. Send an eMail to robocom-request@cyty.com
  2. The message body (not subject) should only contain the word SUBSCRIBE (of course, if you want to unsubscribe: UNSUBSCRIBE)
  3. If you wish to subscribe under another mail address, include a "Reply-to:" header in your mail message.
Q: Doesn't a BJUMP to a non-existent bank cause an "Invalid bank" error?
A:No, it doesn't. It causes the robot to perform an auto-reboot. The "Invalid bank" error occurs if you try to build a bot with >50 banks.
 
Q: What happens if a robot is currently executing a bank and now gets another bank transfered from outside? Does the robot reboot or start from the beginning of the bank, or does it just continue with the next instruction?
A:The robot will first complete the execution of its current instruction and then just continue with the instruction at the position that would usually be next. Only if there is no instruction at this position (because the new bank contains less or no instructions), the robot will try to auto-reboot.
 
Q: How does the server calculate the score of a program?
A:The formula is Wins*3 + Ties. However, this does only include simulations against programs that are in the charts. When a new program is submitted, it only plays against the Top 10. It's not possible to simulate against every other program, since that would take much too long. On the other hand, you cannot compare programs that have played against different opponents. Thus, only the simulations against programs in the charts count for score calculation. This is also the reason when, for example, two programs change place in the charts (after the score was re-calculated).
 
Q: Can I upload RBI files to the server?
A:No, you cannot. This is because of two reasons. First, RBI files are not being checked in any way when loaded. This could cause the server to crash if somebody uploads an invalid RBI. We don't have that problem with ROB sources, since they are assembled by the server and rejected if erroneous. Second, RoboCom programs uploaded to the server are distributed to the public once they are out-dated. Everyone should be given the possibility to learn from the strategies, so we need the source.
 
Q: Exactly when is a simulation declared a tie?
A:A simulation is declared a tie when after 80000 cycles (the standard timeout) no program has won yet.
 
Q: What happens if two robots try to move to the same field at the same time?
A:The older robot has priority and will move to the field. The other robot will not do anything.