I'm working on a Pokemonesque game mixed with Hearthstone and I'm stuck when it comes to the battle.

Overview:
Each Pokemon will get its own turn determined by the speed which puts it in a queue. On that pokemon's turn it can use a move (card) from the players hand. If you don't use a move you can use an item, attempt to run or just end the turn for that Chaomon.

My first issue:
I have two situations a Trainer Battle and a Random Encounter. The Trainer battles I want to allow for up to three Pokemon at a time while the random encounter only allows one. Should I just use if statements to load the correct info when I initialize the battle? Would a state machine be better?

I have a lot of questions trying to think of the whole system but I'll just start here for now. Try to do it one step at a time.

I'm working on a turn based battle. I start with two characters, a player and an enemy. Right now I just move the player around and click on it and it takes damage, and by move around I mean click on a spot and the character appears there. Animations, etc, will come later. I'll just keep expanding on it from there. Add a health bar instead of printing out the damage, the UI kind of comes last, just call the functions I have written, or states. I'll probably do some rewrites, but so what? For one thing, when you see it and play around with it, you'll find a lot of ideas don't work.