При постройке слоя:
- определить сколько строк в этом слое (N)
- родить min(N, 40) ботов, выдать каждому по строке, поставить каждого в левый (правый) конец строки
- двигать ботов и красить параллельно. Если бот уже дошёл до конца своей строки, пусть ждёт.
- перейти к следующей пачке строк
- собрать ботов
Для сборки, видимо, понадобится pathfinding.