Hi There,
To clarify, you have multiple emitters? emitting different particles? Or one emitter with multiple particle systems?
What do you want to have happen with the color?
Each particle can be given a rgbPP - for your color. Each particle object can be assigned 1 color.
make a creation expression rgbPP = rand(1);
To get particles to interact with each other you use a radial field.
1 particle object - you create 1 radial field and make the particle object a "source"
Select the field, select the particle system -> FX menu > Fields/Solvers > Use Selected Field as Source (1/3 way downish menu)
2 or more particle objects, you need to turn each particle system into a source field - for 2 you need 2 radial fields, for 3 particle systems, you need 3 radial fields...
In the dynamic connection editor, you link the all radial field to all the particle systems.
The settings on the radial field - Use Radius - i.e. Max Distance - set to the radius of the particle.
Attenuation = 0
apply per vertex = On
Adjust Magnitude to make them look like they are colliding.
Make floor/boxes/walls rigid bodies by nCloth > create passive collider...
Have fun.
C