Well, I think that, realistically, you're going to have to have some function that knows the rules of pokemon anyway. I suppose it's possible to do it completely through learning, and observing others games, but I know for the method I'm using I'm going to have to write most of a pokemon rules...