This looks like it's bound to result in a messy spiral of infinite second guessing. Curious what the winning strategy will be!
How does bot A simulate bot B that must simulate bot A to determine its answer? Seems like infinite trampoline recursion.
EDIT: it seems you run the simulation against a different bot implementation than the running one and attempt to determine its characteristics given the responses and the known behaviour of the other implementation.