I win most of my games against the bot. But at least some of them are due to puzzling "decisions" made by your algorithms. One that really has me bemused is that, in games with Bank, Lord Rat played the Bank card first, before any other coins. Even more annoyingly (if one wants a fair game), the bot sometimes has 2 Banks, and will play one first, then a coin, and then a second Bank, and then more coins. Or played the 2 Banks first and second. This, obviously has a huge impact on the money Lord Rat has to buy on that turn. LR ends up with much less money, and therefore, can't but Prov/Colonies when she should be able to, if Bank(s) had been played last.
It should be an easy re-coding to say, "Lord Rat will always play Bank(s) last, after all other coins have been." 99% of the time, that would be the correct play, right? There might be some edge cases when one would not play Bank last, but those are pretty rare, I think. (Just off the top of my head: If you have Counterfeit, then I could see not playing Bank last, if that would mean doubling-then-trashing if Bank were played directly after Counterfeit. And maybe there are a few other examples that more-experienced players can easily think of.)
But even if there are a handful of cases where playing Bank last is bad strategy; doesn't it make more sense to have this as the default, so that Lord Rat plays it correctly in the vast majority of games?