Each player controls a team of robots.
Robots are deployed in a field of abandoned electronics, their purpose is to refurbish patches of this field into functional tech.
The robots are also capable of self-disassembly and self-replication, but they need raw materials from structures called Recyclers which the robots can build.
The structures will recycle everything around them into raw matter, essentially removing the patches of electronics and revealing the Grass below.
Players control a team of these robots in the midst of a playful competition to see which team can control the most patches of a given scrap field. They do so by marking patches with their team's color, all with the following constraints:
If robots of both teams end up on the same patch, they must disassemble themselves one for one. The robots are therefore removed from the game, only leaving at most one team on that patch. The robots may not cross the grass, robots that are still on a patch when it is completely recycled must therefore disassemble themselves too. Once the games are over, the robots will dutifully re-assemble and go back to work as normal.
In the beginning and because of the perfect input information I thought that going with a heuristic approach would work for this game, but when leagues progressed and the code got complicated more and more I found myself unable to make any improvements.
Then one of my colleagues (