My next big hurdle is figuring out how to simulate playing a game.
You should read some about AI design... in a few words, you need to firmly define what are the individual actions--namely "states"--a player would do, the less actions the more reactive would the AI look like at a first glance. Actions are localized through some UID (unique identifier). A second important bunch of definitions is the so-called "inputs" each individual player would receive--actually in a FIFO order--those are e.g. other team is holding the ball, an opponent is very close to the player, etc. but in a really "live" fashion so that you think it is in the real game. Those "inputs" also have their UID.
With those 2 sets of UID, try to find out a game strategy/tactic. THE BEST WAY IS TO OUTPUT A LOGICAL SCHEME that tells when the player changes from state A to state B and how it goes from B to A back, thus depending on inputs (notice that the fewer inputs, the lesser smart the player can react).
From such a scheme, there are various wayd of implementing it... I do prefer a sequential digital design which offers best performance result over complexity of the schemes (like robots would be designed).