You're talking about external forces affecting the fish (robot) itself. In Robocode, sample.Interactive and sample.Interactive v2 are really the only instances of that happening. The robot can decide to change its colors when certain variables reach certain thresholds, and change the thresholds when it needs to. The few robots that have the ability to edit their own code can even decide to get rid of the color-changing code altogether.
I still don't understand why it matters whether the environment is controlled by us or not. Take a minnow from a stream, put it in a heavily controlled environment, it's still a minnow. Take minnow DNA from a wild minnow, grow one in a lab, release it, it's still a minnow.