Yeah, I settled on a card game early on so that I could spend most of my time on training the AIs instead of on game design. (Which isn't normally a good idea but that's what I wanted to get out of this jam.) I had ten groups of neural networks play thousands of games against eachother each round, replacing the worst scoring ones with mutations and combinations of the better ones, and repeating that for thousands of rounds. Each cheat ability has its own pool of neural network because I wanted them to learn to use it to their advantage. For example the Spy can always see all players' cards and I wanted its neural network to be trained to use that information. But structurally all NNs have the same shape, the main difference lies in their starting hand; so one cheater always starts with a Twelve of Hearts, but other NNs can learn to pick it up if it's on the table.
The code I wrote for it is open source, if your interested: https://github.com/SLiV9/MegaNaiadsTrainer