So is anyone going to help me out with the playing interface? I'm a bit stuck there...
I've been looking at the code here and there. Programming in my spare time will be so much easier when Isotropic shuts down
. I think there are two things that make the play interface challenging, one legal/ethical and one technical.
On the legal/ethical side, writing a play interface that could be an alternative to the official app is begging for a cease and desist letter. Currently the simulators will almost certainly be allowed to stick around because they don't compete with the official product but supplement it. Transforming one into a single-player game seems like it crosses a line.
On the technical side, looking through the code, it seems like it's pretty hard to do. The problem is that the card definitions are very tightly coupled with how they're played. So, for instance, the ApprenticeCard class not only defines what Apprentice does but it also picks a card to trash. It needs to give +1 action, ask the current player to pick a card to trash, then give +cards. The current player would be a Java interface that could be implemented by a bot containing the current trashing logic or some code that prompts a human player for a card to trash. Implementing this would mean gutting the code, though.
I don't think you should add a playing interface on account of the legal/ethical point; however, I do think that separating card definitions from play decisions is a good thing to do for other reasons (maintainability, interop, ability to swap out play styles, user-defined AIs, etc).