individual agents-whether programming modules , or processors , or as in this case , actual micro-robots-could be programmed to cooperate under certain circumstances , and to compete under other circumstances .