Your features must be decomposed into parts that can be represented as real numbers. The magic of a Neural Net is it's a black box, the correct associations will be made (with internal weights) during the training
Inputs
Choose as few features as are needed to accurately describe the situation, then decompose each into a set of real valued numbers.
- Weather: [temp today, humidity today, temp yesterday, humidity yesterday...] the association between today's temp and today's humidity is made internally
- Team stats: [ave height, ave weight, max height, top score,...]
- Dice: not sure I understand this one, do you mean how to encode discrete values?*
- Complex number: [a,ai,b,bi,...]
* Discrete valued features are tricky, but can still still be encoded as (0.0,1.0). The problem is they don't provide a gradient to learn the threshold on.
Outputs
You decide what you want the output to mean, and then encode your training examples in that format. The fewer output values, the easier to train.
- Weather: [tomorrow's chance of rain, tomorrow's temp,...] **
- Team stats: [chance of winning, chance of winning by more than 20,...]
- Complex number: [x,xi,...]
** Here your training vectors would be: 1.0 if it rained the next day, 0.0 if it didn't
Of course, whether or not the problem can actually be modeled by a neural net is a different question.