A Bully Bot could actually do pretty well here (even without attempting simulation) - you get to exploit all the Silly bots, get the most you can out of the Clone army (more than 50% at the beginning when they are willing to back down, 40% once you have to be Fold Bot against them) and still cooperate or cooperate+ against everyone else (especially if you can trick simulators or pseudo-simulators into folding to you)
The clones do not fold; in the early game they play an EquityBot-ish strategy that gives attackers less than cooperation would have gotten them. Only a couple of players were willing to fold in the early game, and usually only after ten or more turns of attack. Attacking for tens of turns to find out whether your opponent is a FoldBot will destroy you in a pool of mostly not FoldBots.
Simulation would be able to tell you who to bully without having to go through that—run the opponent for 100 turns and see if they eventually fold against all 3s. But as always, simulation runs the risk of MeasureBot-style malware.
If there’s a time limit on running, a quick “loop until 75% of the time limit is used up” will stop any simulator from running more than 1 turn of simulation.
Having now looked over the codes, it looks like no-one expected so many silly bots that would play 0 every round is simulated correctly. So, a bot that did some checking and cooperated with complex things, simulated and crushed silly bots, and folded to the clone army would probably have gotten a superior early lead, and possibly held onto it.
Especially if luser was re-loading the source code from the original file each round, and you took advantage of the rules loophole that prohibited:
Hacking your opponent’s source file (but not your own)
Looking at the game engine stuff
Saving any “information” from one round to another.
But, crucially, not replacing your own source code file deterministically after a particular round. So, after you finish exploiting the silly bots for the first 10-20 rounds, replace your source code with a compliant Clone Bot with an aggressive payload to win after round 90.
I mean I did include an explicit “if they seem to be playing 0 then don’t be an idiot and play 5” line and a similar one to play 4 if they kept playing 1. I had complexity restrictions that prevented me from doing more than that, but I’m confident those lines of codes did good work.
A Bully Bot could actually do pretty well here (even without attempting simulation) - you get to exploit all the Silly bots, get the most you can out of the Clone army (more than 50% at the beginning when they are willing to back down, 40% once you have to be Fold Bot against them) and still cooperate or cooperate+ against everyone else (especially if you can trick simulators or pseudo-simulators into folding to you)
The clones do not fold; in the early game they play an EquityBot-ish strategy that gives attackers less than cooperation would have gotten them. Only a couple of players were willing to fold in the early game, and usually only after ten or more turns of attack. Attacking for tens of turns to find out whether your opponent is a FoldBot will destroy you in a pool of mostly not FoldBots.
Simulation would be able to tell you who to bully without having to go through that—run the opponent for 100 turns and see if they eventually fold against all 3s. But as always, simulation runs the risk of MeasureBot-style malware.
Ah, right, I misread that code.
If there’s a time limit on running, a quick “loop until 75% of the time limit is used up” will stop any simulator from running more than 1 turn of simulation.
Having now looked over the codes, it looks like no-one expected so many silly bots that would play 0 every round is simulated correctly. So, a bot that did some checking and cooperated with complex things, simulated and crushed silly bots, and folded to the clone army would probably have gotten a superior early lead, and possibly held onto it. Especially if luser was re-loading the source code from the original file each round, and you took advantage of the rules loophole that prohibited:
Hacking your opponent’s source file (but not your own)
Looking at the game engine stuff
Saving any “information” from one round to another. But, crucially, not replacing your own source code file deterministically after a particular round. So, after you finish exploiting the silly bots for the first 10-20 rounds, replace your source code with a compliant Clone Bot with an aggressive payload to win after round 90.
I mean I did include an explicit “if they seem to be playing 0 then don’t be an idiot and play 5” line and a similar one to play 4 if they kept playing 1. I had complexity restrictions that prevented me from doing more than that, but I’m confident those lines of codes did good work.