Skip to content
CS 233 // Spimbot
Pages

Tournament rules

The tournament command and the tournament site play every match under tournament rules. --tournament turns them on in the debugger and in run. Under tournament rules:

  • Every syscall does nothing and changes no register. exit does not stop the bot, and sbrk allocates nothing, so keep buffers in .data or on the stack. Print with PRINT_INT, PRINT_HEX and PRINT_FLOAT.
  • Any exception other than an interrupt crashes the bot, and its exception handler does not run. A data bus error from a bad MMIO access is a crash too.
  • A crash forfeits the match. The match ends at the end of the cycle of the crash, and the other bot wins whatever the scores. When both bots crash in that cycle, the match is a tie.

Determinism

#

The seed fixes the map and each bot's puzzles. A bot's puzzles depend only on the seed and its own requests, whatever the other bot does. Under tournament rules, the same programs as the same bots, with the same seed, mode and cycle limit, play the same match on every platform.

The tournament site plays each pair of submissions on seeds computed from both programs, each seed once with each submission as bot 0. To play a tournament locally, see Run a local tournament.