How do you choose the number of neurons, synapses, and hidden layers of an ANN (in NEAT)?
To find the number of neurons and layers that you will use is not that straightforward. The best way to do this is through experimentation however you will be able to better estimate the number of layers and neurons needed through experience. One of the common rules is that more neurons are better for more complex datasets. However, you do not want too many or you will get an overfitted model. 

As for NEAT, that stands for neuron evolution of augmenting topologies. This is a genetic algorithm that works fairly well, however, I would recommend that you use a different algorithm like Q-learning. If you wish to learn more about Q-learning, then I would definitely recommend that you check out Google's DeepMind research on training deep neural networks to play the game of Go using Q-learning.