Back in college, when one of my CS courses had an RPS tournament, the strategies to beat were:
Kill the process running the opponent’s code. This looks like the opponent crashed, resulting in a win.
Use gdb to get access to the opponent’s random number generator. Then, run opponent’s code with the RNG set to match, in order to perfectly predict what they’ll do.
Obviously this is not in the spirit of the game, but seems worth noting.
Back in college, when one of my CS courses had an RPS tournament, the strategies to beat were:
Kill the process running the opponent’s code. This looks like the opponent crashed, resulting in a win.
Use gdb to get access to the opponent’s random number generator. Then, run opponent’s code with the RNG set to match, in order to perfectly predict what they’ll do.
Obviously this is not in the spirit of the game, but seems worth noting.
Yeah I thought about including randomness exploits for bots too (instead of just noting it for humans) but decided it’d be distracting.
Hopefully if I ever run that contest I’ll be able to catch problems like randomness exploits and forced crashes!