After playing my tenth game in a row against a bot where I got a free win because of a certain card that causes it to play horribly, I had a revelation. Why isn't there a list of cards we can ban from games with bots?
First, this would provide an immediate solution that actually works for all of the cards that cause the game to hang whenever the bot tries to play them. I know it's probably in the bot's code to never buy these cards, and the hope is that this is enough that the bot never has to play that card and figure out how to make a decision that it's not coded to make, but as we can see there are cards like Swindler and Masquerade and whatever that get around this.
The severity of the bot hanging in this situation is HUGE -- it makes the software completely unusable in the worst possible way when it does happen, and I realize that some of these issues can be hard to track down and fix, so having a list of cards that will just never appear in the kingdom when a bot is in the game will solve this problem immediately so this kind of thing doesn't have to exist in your software where users can suffer from it. I guess this doesn't completely the case where "continue with bots" is used.
Second, it provides a more elegant solution to the fact that the presence of some cards in the kingdom means that the bot will fall flat on its face and it is absolutely no fun at all to play against the bot. Whenever I see one of these cards in the kingdom in a bot game I just resign and re-roll at this point. Sure, for some of them it would be easier to just change the code to "never buy Counterfeit ever" and it would be a huge improvement, but other cases are probably more difficult to code and just having them not appear at all fixes the problem for all of them. Here's a starter list of cards that I will see and just re-roll the kingdom when I see (with Lurker and Torturer sometimes I can get away with promising myself I won't buy the card but that's super lame):
This list doesn't even have to be visible to the user, it can just happen behind the scenes, at least it shouldn't be configurable for the cards that have AI bugs. Maybe a little warning could pop up when you specify a kingdom with one of the bugged cards in it, warning the user or something? I don't really know or care about the details. I just know that banned cards lists are already implemented and this would almost certainly be very very easy to code and would greatly improve the user experience AND solve several huge huge huge problems with the AI that are causing the software to crash.
EDIT: Looks like reddit has a thread about this. Maybe this list is a bit more complete? https://www.reddit.com/r/dominion/comments/iwrgca/lord_rattingtons_biggest_weaknesses/